簡體   English   中英

如何創建 mpfr 數組?

[英]How to create a mpfr array?

我在互聯網上和通過文檔搜索了幾個小時,但我沒有看到提及創建 MPFR (GMP) 對象的數組/列表。 我使用的是 C,而不是 C++。 我請你幫助我,我只需要從該數組獲取和設置值,也許一次“malloc”..

在這個GNU MPFR 4.0.2中,我發現:

The C data type for such objects is mpfr_t, internally defined as a one-element array of a structure (so that when passed as an argument to a function, it is the pointer that is actually passed), and mpfr_ptr is the C data type表示指向此結構的指針。

並在5.1 初始化 function

mpfr_t object 必須在存儲第一個值之前進行初始化。 函數 mpfr_init 和 mpfr_init2 用於此目的。

Function: void mpfr_init2 (mpfr_t x, mpfr_prec_t prec)

初始化 x,將其精度設置為精確位,並將其值設置為 NaN。 (警告:相應的 MPF function 改為初始化為零。)

通常,一個變量應該只初始化一次,或者至少在初始化之間使用 mpfr_clear 清除一次。 要更改已初始化變量的精度,請使用 mpfr_set_prec。 精度 prec 必須是 MPFR_PREC_MIN 和 MPFR_PREC_MAX 之間的 integer(否則行為未定義)。

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 開始,並在遇到 null 指針(其類型也必須是 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 */
}

希望它可以幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM