Arb任意精度区间算法 C 库
Arb 是一个用于任意精度区间算法的 C 语言库,完全支持实数和复数。该库线程安全、可移植,且经过广泛测试。
特征
- 除了基本算术,Arb 还允许处理单变量多项式、截断幂级数以及实数和复数矩阵。
- 支持基本线性代数,包括矩阵乘法、行列式、逆、非奇异求解、矩阵指数以及特征值和特征向量的计算。
- 对多项式和幂级数的支持非常广泛,包括组合、回归、乘积树、多点评估和插值、复根隔离和幂级数的超越函数的方法。
- 其他功能包括实函数的根隔离、复杂函数的严格数值积分和离散傅立叶变换 (DFT)。
代码示例
以下程序评估 sin(pi + exp(-10000)),由于正弦函数的输入将根匹配到 4343 数位以内,因此至少需要 4343 个数位(14427-bit)精度才能获得准确的结果。程序以 64 bit、128 bit 、... 精度重复计算,仅在结果准确到至少 53 bit 时才停止:
#include "arb.h"
int main()
{
slong prec;
arb_t x, y;
arb_init(x); arb_init(y);
for (prec = 64; ; prec *= 2)
{
arb_const_pi(x, prec);
arb_set_si(y, -10000);
arb_exp(y, y, prec);
arb_add(x, x, y, prec);
arb_sin(y, x, prec);
arb_printn(y, 15, 0); printf("\n");
if (arb_rel_accuracy_bits(y) >= 53)
break;
}
arb_clear(x); arb_clear(y);
flint_cleanup();
}
输出:
[+/- 6.01e-19]
[+/- 2.55e-38]
[+/- 8.01e-77]
[+/- 8.64e-154]
[+/- 5.37e-308]
[+/- 3.63e-616]
[+/- 1.07e-1232]
[+/- 9.27e-2466]
[-1.13548386531474e-4343 +/- 3.91e-4358]
每一行都严格地包含了表达式的精确值,该程序演示了用户如何依靠 Arb 的自动错误边界跟踪来获得保证准确的输出—— 用户无需进行错误分析。
依赖项
Arb 依赖于
- FLINT ( http://flintlib.org/ )、
- GMP ( http://gmplib.org ) 或 MPIR ( http://mpir.org )
- MPFR ( http://mpfr.org )。
评论
Arb任意精度区间算法 C 库
Arb是一个用于任意精度区间算法的C语言库,完全支持实数和复数。该库线程安全、可移植,且经过广泛测试。特征除了基本算术,Arb还允许处理单变量多项式、截断幂级数以及实数和复数矩阵。支持基本线性代数,包
Arb任意精度区间算法 C 库
0
bignumber.js任意精度/进制计算库
bignumber.js是用于任意精度十进制和非十进制运算的JavaScript库。特性整数和小数简单的API,但功能齐全相比较于JavaScript的Java的BigDecimal版本更快,更小,也
bignumber.js任意精度/进制计算库
0
LibBF处理任意精度浮点数的小型库
LibBF是处理任意精度浮点数的小型库。它编译后的大小约为60KB(x86代码),并且不依赖于其他库。它不是最快也不是最小的库,但它使用渐近最优算法时会尽可能简单。基本的算术运算具有近似线性的运行时间
LibBF处理任意精度浮点数的小型库
0
GNU bc任意精度数值计算器
GNUbc是GNU项目之一,是一个支持任意精度数值计算的计算器,同时自带一种语法类似于C语言的编程语言,支持语句的交互式执行。在绝大多数linux发行版上都有自带bc,在windows用户可以在Gnu
GNU bc任意精度数值计算器
0