我在网上和文档上搜索了几个小时,但没有看到有人提到创建MPFR (GMP)对象的数组/列表。我使用的是C,而不是C++。我请你帮我,我只需要从数组和数组中获取和设置值,也许还有一次"malloc“。
发布于 2020-05-07 12:31:13
在这个GNU MPFR 4.0.2中,我发现:
这些对象的C数据类型是mpfr_t,内部定义为结构的一个单元素数组(因此,当作为参数传递给函数时,实际上传递的是指针),而mpfr_ptr是表示指向该结构的指针的C数据类型。
在5.1初始化函数
在存储第一个值之前,必须对mpfr_t对象进行初始化。mpfr_init和mpfr_init2函数就是为此目的而使用的。
Function: void mpfr_init2 (mpfr_t x, mpfr_prec_t prec)初始化x,将其精度设置为精确的prec位,并将其值设置为NaN。(警告:相应的强积金功能被初始化为零。) 通常,一个变量应该只初始化一次,或者至少在初始化之间使用mpfr_clear清除一次。若要更改已初始化的变量的精度,请使用mpfr_set_prec。精度prec必须是MPFR_PREC_MIN和MPFR_PREC_MAX之间的整数(否则行为是未定义的)。
Function: void mpfr_inits2 (mpfr_prec_t prec, mpfr_t x, ...)初始化给定变量参数va_list的所有mpfr_t变量,将它们的精度设置为精确的prec位,并将它们的值设置为NaN。有关更多详细信息,请参阅mpfr_init2。假定va_list仅由mpfr_t类型(或等效的mpfr_ptr)组成。它从x开始,当它遇到空指针(其类型也必须是mpfr_ptr)时结束。
一个例子是:
{
mpfr_t x, y;
mpfr_init (x); /* use default precision */
mpfr_init2 (y, 256); /* precision exactly 256 bits */
…
/* When the program is about to exit, do ... */
mpfr_clear (x);
mpfr_clear (y);
mpfr_free_cache (); /* free the cache for constants like pi */
}希望它能帮到你。
https://stackoverflow.com/questions/61657440
复制相似问题