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 です。


Arithmetic operations


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
2 つの巨大整数をかけ算します。
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 a a の平方根を返します。つまり r * r <= a を満たす巨大整数 r のうち最大のものを返します。 a が負だったら Invalid_argument を返します。
val quomod_big_int : big_int -> big_int -> big_int * big_int
2 つの巨大整数の整数除算です。結果の 1 つ目が商、2 つ目が余りです。(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
2 つの巨大整数の整数除算です。上記の q of quomod_big_int の結果の 1 つ目と同じです。
val mod_big_int : big_int -> big_int -> big_int
2 つの巨大整数の整数剰余です。上記の q of quomod_big_int の結果の 2 つ目と同じです。
val gcd_big_int : big_int -> big_int -> big_int
2 つの巨大整数の最大公約数を返します。
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 を発生します。


Comparisons and tests


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
2 つの巨大整数を比較して真偽値を返します。
val max_big_int : big_int -> big_int -> big_int
2 つの引数のうち大きい方を返します。
val min_big_int : big_int -> big_int -> big_int
2 つの引数のうち小さい方を返します。
val num_digits_big_int : big_int -> int
与えられた巨大整数を保存するのに必要なマシンワードの数を返します。


Conversions to and from strings


val string_of_big_int : big_int -> string
与えられた巨大整数を 10 進表示して返します。
val big_int_of_string : string -> big_int
10 進表示された文字列を巨大整数に変換します。文字列はオプションで - or + と、それに続く数字がいくつかで構成されます。


Conversions to and from other numerical types


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 ビットプラットフォームでは is_int_big_int aa が -262 から 262-1 までのときに限り true を返します。
val int_of_big_int : big_int -> int
巨大整数を通常の整数 (int 型) に変換します。 巨大整数が通常の整数で表せなかったら例外 Failure "int_of_big_int" を発生します。
val float_of_big_int : big_int -> float
与えられた巨大整数を浮動小数点小数で近似して返します。