module Big_int:任意精度整数の演算sig..end
多倍長整数(big_int 型)は任意の大きさの符号付き整数です。
type big_int
val zero_big_int : big_int0。val unit_big_int : big_int1。val minus_big_int : big_int -> big_intval abs_big_int : big_int -> big_intval add_big_int : big_int -> big_int -> big_intval succ_big_int : big_int -> big_intval add_int_big_int : int -> big_int -> big_intval sub_big_int : big_int -> big_int -> big_intval pred_big_int : big_int -> big_intval mult_big_int : big_int -> big_int -> big_intval mult_int_big_int : int -> big_int -> big_intval square_big_int : big_int -> big_intval sqrt_big_int : big_int -> big_intsqrt_big_int a は a の整数の平方根、すなわち、
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_intquomod_big_int の戻り値の最初の要素 q です。val mod_big_int : big_int -> big_int -> big_intquomod_big_int の戻り値の二番目の要素 r です。val gcd_big_int : big_int -> big_int -> big_intval power_int_positive_int : int -> int -> big_intval power_big_int_positive_int : big_int -> int -> big_intval power_int_positive_big_int : int -> big_int -> big_intval power_big_int_positive_big_int : big_int -> big_int -> big_inta の第二引数 b 乗を表す多倍長整数を返します。
関数ごとに a、 b が通常の整数か多倍長整数かは異なります。
b が負の場合には Invalid_argument 例外が発生します。val sign_big_int : big_int -> int0 を返し、正であれば 1 を返し、負であれば
-1 を返します。val compare_big_int : big_int -> big_int -> intcompare_big_int a b は a と b が等しければ 0 を返し、
a が b よりも大きければ 1 を返し、 a が b より小さければ -1 を返します。val eq_big_int : big_int -> big_int -> boolval le_big_int : big_int -> big_int -> boolval ge_big_int : big_int -> big_int -> boolval lt_big_int : big_int -> big_int -> boolval gt_big_int : big_int -> big_int -> boolval max_big_int : big_int -> big_int -> big_intval min_big_int : big_int -> big_int -> big_intval num_digits_big_int : big_int -> intval string_of_big_int : big_int -> stringval big_int_of_string : string -> big_int- または + の符号から始まり、それに十進数字がひとつ以上続きます。val big_int_of_int : int -> big_intval is_int_big_int : big_int -> boolint 型の通常の整数で精度を失わずに表現できる程度に小さいか検査します。
32 ビットプラットフォームでは
is_int_big_int a は a が -230 から 230 - 1 の範囲にある場合、かつその場合に限り true を返し、
64 ビットプラットフォームでは a が -262 から 262 - 1 の範囲にある場合、かつその場合に限り true を返します。val int_of_big_int : big_int -> intint 型の通常の整数に変換します。
引数が通常の整数で表現できない場合には Failure "int_of_big_int" 例外が発生します。val big_int_of_int32 : int32 -> big_intval big_int_of_nativeint : nativeint -> big_intval big_int_of_int64 : int64 -> big_intval int32_of_big_int : big_int -> int32Failure 例外が発生します。val nativeint_of_big_int : big_int -> nativeint
val int64_of_big_int : big_int -> int64Failure 例外が発生します。val float_of_big_int : big_int -> floatval and_big_int : big_int -> big_int -> big_intval or_big_int : big_int -> big_int -> big_intval xor_big_int : big_int -> big_int -> big_intval shift_left_big_int : big_int -> int -> big_intshift_left_big_int b n は b を左に n ピットシフトしたものを返します。
これは 2^n を掛けることと等価です。val shift_right_big_int : big_int -> int -> big_intshift_right_big_int b n は b を右に n ビットシフトしたものを返します。
これは 2^n で割り、結果を負の無限大に向かって丸めることと等価です。val shift_right_towards_zero_big_int : big_int -> int -> big_intshift_right_towards_zero_big_int b n は
b を右に n ビットシフトしたものを返します。
シフト処理は b の絶対値に対して行なわれ、戻り値は b と同じ符号になります。
これは、 2^n で割り、結果を 0 に向かって丸めることと等価です。val extract_big_int : big_int -> int -> int -> big_intextract_big_int bi ofs n は多倍長整数 bi の二進表現の ofs ビット目から
ofs + n - 1 ビット目に対応する非負の数値を返します。
bi が負の場合、二の補数表現が使われます。