Next: Assigning Floats, Previous: Floating-point Functions, Up: Floating-point Functions [Index]
最小でもprec bit確保すべく,デフォルト精度をセットします。この関数を実行して以降の mpf_init
関数は,このデフォルト精度が使用されます。それ以前に初期化された変数は影響ありません。
現在使用されているデフォルト精度を返します。
mpf_t
オブジェクトは,値を最初に格納する前に初期化されている必要があります。mpf_init
関数やmpf_init2
関数を使って初期化して下さい。
変数xを初期化してゼロを格納します。通常は,変数の初期化と,mpf_clear
関数を使った解放は一度だけ行うようにして下さい。xの精度は,mpf_set_default_prec
関数でデフォルト精度がセットされていない限り,定義されません。
変数xを初期化してゼロを格納し,精度をprec bitに設定します。通常は,変数の初期化と,mpf_clear
関数を使った解放は一度だけ行うようにして下さい。
NULL終端子を持ったmpf_t
変数の列を初期化し,すべてにゼロをセットします。初期化された変数リストの精度は,mpf_set_default_prec
関数でデフォルト精度が設定されていない限り不定となります。
xが確保していたメモリスペースを解放します。 使用してたmpf_t
型変数すべてに対してこの関数で解放したか,しっかり確認して下さい。
NULL終端子付きのmpf_t
型変数リストが確保していたメモリスペースを全て解放します。
下記は,浮動小数点変数を初期化するサンプルプログラムです。
{ mpf_t x, y; mpf_init (x); /* デフォルト精度を使う */ mpf_init2 (y, 256); /* 精度は最小でも 256 bit */ … /* プログラムが中断されなければここを実行 ... */ mpf_clear (x); mpf_clear (y); }
以降の関数は,計算中に使用する精度を変更するために利用できます。良くある使用例としては,Newton-Raphon反復中の精度の調整や,有効桁数に合わせた計算精度の変更があります。
opの現在の精度桁をbit数で返します。
ropの精度をprec bitにセットします。ropに入っていた値は新しい精度に切り捨てられます。
この関数はrealloc
関数を使って実装されていますので,あまり繰り返し使わないで下さい。
ropの精度を prec bitにセットします。既に確保されたメモリはそのまま使用します。
precは,ropの精度,即ち初期化時の精度やmpf_set_prec
で設定した精度より大きくしてはいけません。
ropの値は変化せずに保持されます。prec bit以上の精度を持っていた時には,有効桁数の高い方が保持されます。新しい値はropに書きこまれ,prec bitの精度になります。
mpf_clear
関数やmpf_set_prec
関数を呼び出す前であれば, mpf_set_prec_raw
関数を呼び出して,元の精度でropに書き戻さなくてはなりません。これが失敗すると何が起こるかわかりません。
mpf_set_prec_raw
関数を呼び出す前であれば,mpf_get_prec
関数で元の精度を取り出すことができます。呼び出し後だと,prec精度の値になってしまいます。
mpf_set_prec_raw
関数は,計算の途中でもmpf_t
型変数の精度を素早く変更することができ,ループの中で精度を増やしたり,計算中に別の目的で様々な精度を設定したりするときに有用です。