gpt4 book ai didi

c++ - 如何序列化GMP mpf类型?

转载 作者:可可西里 更新时间:2023-11-01 18:35:10 25 4
gpt4 key购买 nike

GMP好像只提供了mpf( float )类型的字符串序列化:

mpf_get_str(), mpf_class::get_str()

mpz(整数)类型有一个额外的原始字节接口(interface):mpz_out_raw()

http://gmplib.org/manual/Function-Index.html

我错过了什么吗?有谁知道另一个可以序列化 GMP float 的库?有谁知道另一个提供强大序列化的 bignum 库?

编辑:我也很乐意序列化 MPFR 的 mpfr_t,同样,它似乎只提供字符串输出:http://www.mpfr.org/mpfr-current/mpfr.html#Function-Index

最佳答案

这是很久以前的事了,但我最终做了类似 this 的事情:

int mpf_out_raw (FILE *f, mpf_t X) {
int expt; mpz_t Z; size_t nz;
expt = X->_mp_exp;
fwrite(&expt, sizeof(int), 1, f);
nz = X->_mp_size;
Z->_mp_alloc = nz;
Z->_mp_size = nz;
Z->_mp_d = X->_mp_d;
return (mpz_out_raw(f, Z) + sizeof(int));
}

void mpf_inp_raw (FILE *f, mpf_t X) {
int expt; mpz_t Z; size_t nz;
mpz_init (Z);
fread(&expt, sizeof(int), 1, f);
mpz_inp_raw (Z, f);
mpf_set_z (X, Z);
X->_mp_exp = expt;
mpz_clear (Z);
}

关于c++ - 如何序列化GMP mpf类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com