OCaml自带的数据类型是有点单薄
不过好在我们可以借助第三方类库来实现高精度数学计算。接下来给大家介绍一下:
ocaml/Zarith
该库在任意精度整数上实现算术和逻辑运算。
该模块仅命名为Z. 它的接口类似于OCaml 标准库中的Int32,Int64和模块的接口,但有一些附加功能。Nativeint有关文档,请参阅z.mli文件。
该实现使用 GMP(GNU 多精度算术库)来计算大整数。但是,小整数表示为未装箱的 Caml 整数,以节省空间并提高性能。大整数在 Caml 堆中分配,绕过 GMP 的内存管理并实现比 MLGMP 库更好的 GC 行为。对小整数的计算使用一种特殊的、更快的路径(在 C 或 OCaml 中)避开对 GMP 的调用,而对大整数的计算使用来自 GMP 的低级 MPN 函数。
可以使用 OCaml 的多态比较运算符(=、<、>等)正确比较任意精度整数。
其他功能包括:
| 留言与评论(共有 0 条评论) “” |