贡献者: addis
GMP 可能是最常用的大整数库。Boost 的 Multiprecision 库也提供 C++ 的 wrapper(可以选择后台用 GMP 或者其他库),封装得更为友好。
mpz_t
大整数(z
表示整数),mpq_t
大分数,浮点数 mpf_t
mp_limb_t
。
_mp_size
limb 的个数(至少是 1),类型是 mp_size_t
(long
或者 int
)。负数的 _mp_size
代表 mpz 是负的,零代表 mpz 为零,此时 _mp_d
无定义。
_mp_d
limb 的指针(little endian),_mp_d[0]
是最不重要的 limb,_mp_d[ABS(_mp_size)-1]
最重要的 limb。
_mp_alloc
和 vector.capacity()
类似。有 _mp_alloc >= ABS(_mp_size)
,如果需要更多会重新 allocate。
友情链接: 超理论坛 | ©小时科技 保留一切权利