Module Big_int


module Big_int: sig .. end
任意精度整数の演算

多倍長整数(big_int 型)は任意の大きさの符号付き整数です。


type big_int 
多倍長整数の型。
val zero_big_int : big_int
多倍長整数の 0
val unit_big_int : big_int
多倍長整数の 1

算術演算


val minus_big_int : big_int -> big_int
単項の符号反転。
val abs_big_int : big_int -> big_int
絶対値。
val add_big_int : big_int -> big_int -> big_int
加算。
val succ_big_int : big_int -> big_int
後者関数(足す 1)。
val add_int_big_int : int -> big_int -> big_int
通常の整数と多倍長整数の加算。
val sub_big_int : big_int -> big_int -> big_int
減算。
val pred_big_int : big_int -> big_int
前者関数(引く 1)。
val mult_big_int : big_int -> big_int -> big_int
多倍長整数同士の乗算。
val mult_int_big_int : int -> big_int -> big_int
通常の整数と多倍長整数の乗算。
val square_big_int : big_int -> big_int
与えられた多倍長整数の平方を返します。
val sqrt_big_int : big_int -> big_int
sqrt_big_int aa の整数の平方根、すなわち、 r * r <= a なる最大の r を返します。 a が負の場合には Invalid_argument 例外が発生します。
val quomod_big_int : big_int -> big_int -> big_int * big_int
多倍長整数同士のユークリッド除算。 戻り値の最初の要素は商で、二番目の要素は余りです。 (q, r) = quomod_big_int a b とすると、 a = q * b + r かつ 0 <= r < |b| となります。除数が 0 の場合には Division_by_zero 例外が発生します。
val div_big_int : big_int -> big_int -> big_int
多倍長整数同士のユークリッド除算における商。 これは上の quomod_big_int の戻り値の最初の要素 q です。
val mod_big_int : big_int -> big_int -> big_int
多倍長整数同士のユークリッド除算における余り。 これは上の quomod_big_int の戻り値の二番目の要素 r です。
val gcd_big_int : big_int -> big_int -> big_int
ふたつの多倍長整数の最大公約数。
val power_int_positive_int : int -> int -> big_int
val power_big_int_positive_int : big_int -> int -> big_int
val power_int_positive_big_int : int -> big_int -> big_int
val power_big_int_positive_big_int : big_int -> big_int -> big_int
累乗関数。 第一引数 a の第二引数 b 乗を表す多倍長整数を返します。 関数ごとに ab が通常の整数か多倍長整数かは異なります。 b が負の場合には Invalid_argument 例外が発生します。

比較と検査


val sign_big_int : big_int -> int
与えられた多倍長整数が 0 であれば 0 を返し、正であれば 1 を返し、負であれば -1 を返します。
val compare_big_int : big_int -> big_int -> int
compare_big_int a bab が等しければ 0 を返し、 ab よりも大きければ 1 を返し、 ab より小さければ -1 を返します。
val eq_big_int : big_int -> big_int -> bool
val le_big_int : big_int -> big_int -> bool
val ge_big_int : big_int -> big_int -> bool
val lt_big_int : big_int -> big_int -> bool
val gt_big_int : big_int -> big_int -> bool
多倍長整数同士の通常の比較述語。
val max_big_int : big_int -> big_int -> big_int
引数のうちより大きい方を返します。
val min_big_int : big_int -> big_int -> big_int
引数のうちより小さい方を返します。
val num_digits_big_int : big_int -> int
与えられた多倍長整数を格納するのに使っている計算機の語数を返します。

文字列との変換


val string_of_big_int : big_int -> string
与えられた多倍長整数の十進文字列表現を返します。
val big_int_of_string : string -> big_int
十進表現の文字列を多倍長整数に変換します。 文字列は省略可能な - または + の符号から始まり、それに十進数字がひとつ以上続きます。

数値型との変換


val big_int_of_int : int -> big_int
通常の整数から多倍長整数に変換します。
val is_int_big_int : big_int -> bool
与えられた多倍長整数が int 型の通常の整数で精度を失わずに表現できる程度に小さいか検査します。 32 ビットプラットフォームでは is_int_big_int aa が -230 から 230 - 1 の範囲にある場合、かつその場合に限り true を返し、 64 ビットプラットフォームでは a が -262 から 262 - 1 の範囲にある場合、かつその場合に限り true を返します。
val int_of_big_int : big_int -> int
多倍長整数を int 型の通常の整数に変換します。 引数が通常の整数で表現できない場合には Failure "int_of_big_int" 例外が発生します。
val big_int_of_int32 : int32 -> big_int
32 ビット整数を多倍長整数に変換します。
val big_int_of_nativeint : nativeint -> big_int
ネイティブ整数を多倍長整数に変換します。
val big_int_of_int64 : int64 -> big_int
64 ビット整数を多倍長整数に変換します。
val int32_of_big_int : big_int -> int32
多倍長整数を 32 ビット整数に変換します。 引数が [-231, 231-1] の区間にない場合には Failure 例外が発生します。
val nativeint_of_big_int : big_int -> nativeint
多倍長整数をネイティブ整数に変換します。 引数が [Nativeint.min_int, Nativeint.max_int] の区間にない場合には Failure 例外が発生します。
val int64_of_big_int : big_int -> int64
多倍長整数を 64 ビット整数に変換します。 引数が [-263, 263-1] の区間にない場合には Failure 例外が発生します。
val float_of_big_int : big_int -> float
与えられた多倍長整数を近似する浮動小数点数を返します。

ビット指向の演算


val and_big_int : big_int -> big_int -> big_int
ビットごとの論理積。 引数は 0 以上でなければなりません。
val or_big_int : big_int -> big_int -> big_int
ビットごとの論理和。 引数は 0 以上でなければなりません。
val xor_big_int : big_int -> big_int -> big_int
ビットごとの排他的論理和。 引数は 0 以上でなければなりません。
val shift_left_big_int : big_int -> int -> big_int
shift_left_big_int b nb を左に n ピットシフトしたものを返します。 これは 2^n を掛けることと等価です。
val shift_right_big_int : big_int -> int -> big_int
shift_right_big_int b nb を右に n ビットシフトしたものを返します。 これは 2^n で割り、結果を負の無限大に向かって丸めることと等価です。
val shift_right_towards_zero_big_int : big_int -> int -> big_int
shift_right_towards_zero_big_int b nb を右に n ビットシフトしたものを返します。 シフト処理は b の絶対値に対して行なわれ、戻り値は b と同じ符号になります。 これは、 2^n で割り、結果を 0 に向かって丸めることと等価です。
val extract_big_int : big_int -> int -> int -> big_int
extract_big_int bi ofs n は多倍長整数 bi の二進表現の ofs ビット目から ofs + n - 1 ビット目に対応する非負の数値を返します。 bi が負の場合、二の補数表現が使われます。