Module Num


module Num: sig .. end
任意精度の数値演算

num 型の数は任意精度の実数に、特別な要素として 1/0 (無限大)と 0/0 (未定義)を加えたものです。



type num =
| Int of int
| Big_int of Big_int.big_int
| Ratio of Ratio.ratio
数の型。

算術演算


val (+/) : num -> num -> num
Num.add_num と同じです。
val add_num : num -> num -> num
加算。
val minus_num : num -> num
単項の符号反転。
val (-/) : num -> num -> num
Num.sub_num と同じです。
val sub_num : num -> num -> num
減算。
val ( */ ) : num -> num -> num
Num.mult_num と同じです。
val mult_num : num -> num -> num
乗算。
val square_num : num -> num
平方。
val (//) : num -> num -> num
Num.div_num と同じです。
val div_num : num -> num -> num
除算。
val quo_num : num -> num -> num
ユークリッド除算の商。
val mod_num : num -> num -> num
ユークリッド除算の余り。
val ( **/ ) : num -> num -> num
Num.power_num と同じです。
val power_num : num -> num -> num
累乗。
val abs_num : num -> num
絶対値。
val succ_num : num -> num
succ nn + 1 になります。
val pred_num : num -> num
pred nn - 1 になります。
val incr_num : num ref -> unit
r を数へのリファレンスとしたとき、 incr rr := !r + 1 になります。
val decr_num : num ref -> unit
r を数へのリファレンスとしたとき、 decr rr := !r - 1 になります。
val is_integer_num : num -> bool
ある数が整数かどうか検査します。

以下のよっつの関数は数を整数で近似するものです。
val integer_num : num -> num
integer_numn に最も近い整数を返します。ふたつの整数の中間にある場合には 0 に向って丸めます。
val floor_num : num -> num
floor_num nn 以下の最大の整数を返します。
val round_num : num -> num
integer_numn に最も近い整数を返します。ふたつの整数の中間にある場合には 0 に向って丸めます。
val ceiling_num : num -> num
ceiling_num nn 以上の最小の整数を返します。
val sign_num : num -> int
引数の符号に応じて -101 を返します。

数の比較


val (=/) : num -> num -> bool
val (</) : num -> num -> bool
val (>/) : num -> num -> bool
val (<=/) : num -> num -> bool
val (>=/) : num -> num -> bool
val (<>/) : num -> num -> bool
val eq_num : num -> num -> bool
val lt_num : num -> num -> bool
val le_num : num -> num -> bool
val gt_num : num -> num -> bool
val ge_num : num -> num -> bool
val compare_num : num -> num -> int
第一引数がより小さい、第二引数と等しい、より大きい場合にそれぞれ -101 を返します。
val max_num : num -> num -> num
引数のうちより大きい方を返します。
val min_num : num -> num -> num
引数のうちより小さい方を返します。

文字列との変換


val string_of_num : num -> string
数を分数表記の文字列に変換します。
val approx_num_fix : int -> num -> string
Num.approx_num_exp を参照してください。
val approx_num_exp : int -> num -> string
数を十進数で近似します。 第一引数は必要な精度で、第二引数は近似する数です。 Num.approx_num_fix は十進表記を使い、第一引数は小数点の後に続く数字の個数になります。 approx_num_exp は科学(指数)表記を使い、第一引数は仮数部の数字の個数になります。
val num_of_string : string -> num
文字列を数に変換します。

数値型との変換


val int_of_num : num -> int
val num_of_int : int -> num
val nat_of_num : num -> Nat.nat
val num_of_nat : Nat.nat -> num
val num_of_big_int : Big_int.big_int -> num
val big_int_of_num : num -> Big_int.big_int
val ratio_of_num : num -> Ratio.ratio
val num_of_ratio : Ratio.ratio -> num
val float_of_num : num -> float