bigfloat包-高精度浮点算法
发布v0.3.0。
这个大浮动包是用于GNU MPFR库对于任意精度浮点可靠算术。MPFR库是一个著名的可移植C库,用于浮点数字的任意精度运算。它提供了精确的控制精度和舍入模式,并给出正确的舍入可复制的平台相关结果。
这个大浮动套餐旨在提供方便和友好MPFR提供的操作和功能的Python接口库。主要班级,BigFloat公司,给出一个不可变的可以与自由混合的多精度浮点类型Python整数和浮点。这个上下文类,在中使用时与Python的具有语句,提供了一种简单的方法控制精度和舍入模式。附加模块级别函数提供各种标准的数学运算。有完全支持IEEE 754有符号零、nan、无穷大和低于正常值。
特征
- 支持Python 2(版本2.6或更高版本)和Python3(版本3.2或更高)。
- 跨平台准确再现正确的结果;精确定义的语义与IEEE 754-2008标准兼容。
- 支持使用Python整数和浮点的混合类型操作。
- 支持在任何IEEE二进制文件中模拟IEEE 754算法IEEE 754-2008中描述的交换格式。无穷大、NaN、,支持有符号零和次法线。
- 通过轻松控制舍入模式和精度上下文物体和Python的具有声明。
介绍
这里有一个快速游览:
>>>从 大浮动 进口 *
>>>平方英尺(2, 精度(100)) #用100位精度计算sqrt(2)
BigFloat.exact('1.4142135623730950488081687242092',精度=100)
>>>具有 精度(100): #获得相同结果的另一种方法
... 平方英尺(2)
...
BigFloat.exact('1.4142135623730950488081687242092',精度=100)
>>>我的上下文(_C) = 精度(100) + 向正舍入
>>>我的上下文(_C)
上下文(精度=100,舍入=“RoundTowardPositive”)
>>>平方英尺(2, 我的上下文(_C)) #另一个,这次四舍五入
BigFloat.exact('1.4142135623730950488016887242108',精度=100)
>>>具有 向负舍入: #zeta的下限(2)
... 总和(1/平方米(n个) 对于 n个 在里面 范围(1, 10000))
...
BigFloat.exact('1.6448340618469506',精度=53)
>>>泽塔(2) #实际值,用于比较
BigFloat.exact('1.6449340668482264',精度=53)
>>>常量pi()**2/6 #双重校验值
BigFloat.exact('1.6449340668482264',精度=53)
>>>四倍精度 #上下文实现IEEE 754二进制128格式
上下文(精度=113,emax=16384,emin=-16493,亚规范化=True)
>>>下一个(_U)(0, 四倍精度) #二进制文件的最小次正规128
BigFloat.精确('6.47517511943802511092443895822764655e-4966',精度=113)
>>>日志2(_)
BigFloat.exact('-16494.0000000000',精度=53)
安装
前提条件
为了使用大浮动包装需要同时具备GMP和已安装在系统上的MPFR库,以及包括这些库的文件。请参阅MPFR主页和这个GMP主页有关这些的更多信息库。目前需要MPFR 2.3.0或更高版本。
这个大浮动该包适用于Python 2(2.6或更高版本)或Python 3(3.2或更高版本)方言。
安装
与大多数第三方Python库一样大浮动程序包是通过设置.py脚本包含在分配。在许多系统上,安装应该简单到正在执行:
在未打包分发版的顶级目录中。你可能需要安装库的超级用户权限,例如:
MPFR和GMP库需要在安装大浮动以及任何必要的开发标题文件夹。在Linux上,查找一个名为libmpfr-dev软件或mpfr-电平以及相应命名的GMP包装。如果库和/或包含文件安装在一个不寻常的位置,可能是需要使用命令上的环境变量指定它们的位置行。例如,在我的OS X 10.9系统上,安装了MPFR和GMP/opt/local/,我需要做:
LIBRARY_PATH=/opt/local/lib CPATH=/opt/local/include python setup.py安装
类似地,如果使用易于安装或pip(点阵),您可能还需要先添加必要的环境变量。