module Float: Float
val zero : float
浮点数 0。
val one : float
浮点数 1。
val minus_one : float
浮点数 -1。
val neg : float -> float
一元取反。
val add : float -> float -> float
浮点数加法。
val sub : float -> float -> float
浮点数减法。
val mul : float -> float -> float
浮点数乘法。
val div : float -> float -> float
浮点数除法。
val fma : float -> float -> float -> float
fma x y z
返回 x * y + z
,尽力使用单个舍入计算此表达式,使用硬件指令(提供完整的 IEEE 兼容性)或软件模拟。
在 64 位 Cygwin、64 位 mingw-w64 和 MSVC 2017 及更早版本上,由于这些平台上已知的错误或限制,此函数可能会被模拟。注意:由于 fma 的软件模拟成本很高,因此请确保您正在使用硬件 fma 支持(如果性能很重要)。
val rem : float -> float -> float
rem a b
返回 a
对 b
的余数。返回值为 a -. n *. b
,其中 n
是商 a /. b
向零舍入为整数。
val succ : float -> float
succ x
返回紧随 x
之后的浮点数,即大于 x
的最小浮点数。另请参见 Float.next_after
。
val pred : float -> float
pred x
返回紧接 x
之前的浮点数,即小于 x
的最大浮点数。另请参见 Float.next_after
。
val abs : float -> float
abs f
返回 f
的绝对值。
val infinity : float
正无穷大。
val neg_infinity : float
负无穷大。
val nan : float
一个特殊的浮点值,表示未定义操作的结果,例如 0.0 /. 0.0
。代表“非数字”。任何以 nan
作为参数的浮点运算都会返回 nan
作为结果,除非 IEEE 754 标准中另有说明。对于浮点数比较,=
、<
、<=
、>
和 >=
如果一个或两个参数为 nan
,则返回 false
,而 <>
返回 true
。
nan
自 5.1 版起为 quiet_nan
;之前是信号 NaN。
val signaling_nan : float
信号 NaN。相应的信号不会引发 OCaml 异常,但该值对于与 C 库的互操作性很有用。
val quiet_nan : float
静默 NaN。
val pi : float
常数 pi。
val max_float : float
类型 float
的最大正有限值。
val min_float : float
类型 float
的最小正非零非规格化值。
val epsilon : float
介于 1.0
和大于 1.0
的最小精确表示浮点数之间的差值。
val is_finite : float -> bool
is_finite x
当且仅当 x
是有限的(即不是无限的且不是 Float.nan
)时为 true
。
val is_infinite : float -> bool
is_infinite x
当且仅当 x
是 Float.infinity
或 Float.neg_infinity
时为 true
。
val is_nan : float -> bool
is_nan x
当且仅当 x
不是数字(参见 Float.nan
)时为 true
。
val is_integer : float -> bool
is_integer x
当且仅当 x
是整数时为 true
。
val of_int : int -> float
将整数转换为浮点数。
val to_int : float -> int
将给定的浮点数截断为整数。如果参数为 nan
或超出可表示整数的范围,则结果未指定。
val of_string : string -> float
将给定的字符串转换为浮点数。字符串以十进制(默认)或十六进制(以 0x
或 0X
标记)读取。十进制浮点数的格式为 [-] dd.ddd (e|E) [+|-] dd
,其中 d
代表十进制数字。十六进制浮点数的格式为 [-] 0(x|X) hh.hhh (p|P) [+|-] dd
,其中 h
代表十六进制数字,d
代表十进制数字。在这两种情况下,都必须给出整数部分和分数部分中的至少一个;指数部分是可选的。 _
(下划线)字符可以出现在字符串中的任何位置,并且会被忽略。根据执行平台的不同,可以接受其他浮点数表示形式,但不应依赖于这些表示形式。
Failure
。val of_string_opt : string -> float option
与 of_string
相同,但返回 None
而不是引发异常。
val to_string : float -> string
typefpclass =
fpclass
=
| |
FP_normal |
(* | 普通数字,不属于以下任何一种 | *) |
| |
FP_subnormal |
(* | 非常接近 0.0 的数字,精度降低 | *) |
| |
FP_zero |
(* | 数字为 0.0 或 -0.0 | *) |
| |
FP_infinite |
(* | 数字为正无穷大或负无穷大 | *) |
| |
FP_nan |
(* | 非数字:未定义操作的结果 | *) |
浮点数的五种类别,由 Float.classify_float
函数确定。
val classify_float : float -> fpclass
返回给定浮点数的类别:普通、次正规、零、无限或非数字。
val pow : float -> float -> float
求幂。
val sqrt : float -> float
平方根。
val cbrt : float -> float
立方根。
val exp : float -> float
指数。
val exp2 : float -> float
以 2 为底的指数函数。
val log : float -> float
自然对数。
val log10 : float -> float
以 10 为底的对数。
val log2 : float -> float
以 2 为底的对数。
val expm1 : float -> float
expm1 x
计算 exp x -. 1.0
,即使 x
接近 0.0
,也能提供数值精确的结果。
val log1p : float -> float
log1p x
计算 log(1.0 +. x)
(自然对数),即使 x
接近 0.0
,也能提供数值精确的结果。
val cos : float -> float
余弦。参数以弧度为单位。
val sin : float -> float
正弦。参数以弧度为单位。
val tan : float -> float
正切。参数以弧度为单位。
val acos : float -> float
反余弦。参数必须在 [-1.0, 1.0]
范围内。结果以弧度为单位,介于 0.0
和 pi
之间。
val asin : float -> float
反正弦。参数必须在 [-1.0, 1.0]
范围内。结果以弧度为单位,介于 -pi/2
和 pi/2
之间。
val atan : float -> float
反正切。结果以弧度为单位,介于 -pi/2
和 pi/2
之间。
val atan2 : float -> float -> float
atan2 y x
返回 y /. x
的反正切。 x
和 y
的符号用于确定结果的象限。结果以弧度为单位,介于 -pi
和 pi
之间。
val hypot : float -> float -> float
hypot x y
返回 sqrt(x *. x +. y *. y)
,即边长分别为 x
和 y
的直角三角形的斜边长度,或者等效地,点 (x,y)
到原点的距离。如果 x
或 y
之一为无穷大,则返回 infinity
,即使另一个为 nan
。
val cosh : float -> float
双曲余弦。参数以弧度为单位。
val sinh : float -> float
双曲正弦。参数以弧度为单位。
val tanh : float -> float
双曲正切。参数以弧度为单位。
val acosh : float -> float
双曲反余弦。参数必须在 [1.0, inf]
范围内。结果以弧度为单位,介于 0.0
和 inf
之间。
val asinh : float -> float
双曲反正弦。参数和结果范围遍及整个实数线。结果以弧度为单位。
val atanh : float -> float
双曲反正切。参数必须在 [-1.0, 1.0]
范围内。结果以弧度为单位,范围遍及整个实数线。
val erf : float -> float
误差函数。参数范围遍及整个实数线。结果始终在 [-1.0, 1.0]
范围内。
val erfc : float -> float
互补误差函数(erfc x = 1 - erf x
)。参数范围遍及整个实数线。结果始终在 [-1.0, 1.0]
范围内。
val trunc : float -> float
trunc x
将 x
舍入到绝对值小于或等于 x
的最接近的整数。
val round : float -> float
round x
将 x
舍入到最接近的整数,并将相等情况(0.5 的小数部分)舍入到远离零的方向,而不管当前的舍入方向如何。如果 x
是整数、+0.
、-0.
、nan
或无穷大,则返回 x
本身。
在 64 位 mingw-w64 上,由于此平台上的 C 运行时库 (CRT) 中存在错误,此函数可能会被模拟。
val ceil : float -> float
向上舍入到整数值。 ceil f
返回大于或等于 f
的最小整数值。结果以浮点数形式返回。
val floor : float -> float
向下舍入到整数值。 floor f
返回小于或等于 f
的最大整数值。结果以浮点数形式返回。
val next_after : float -> float -> float
next_after x y
返回 x
之后紧随其后的、朝着 y
方向的下一个可表示浮点值。更准确地说,如果 y
大于(分别为小于)x
,则返回大于(分别为小于)x
的最小(分别为最大)可表示数。如果 x
等于 y
,则该函数返回 y
。如果 x
或 y
为 nan
,则返回 nan
。请注意,next_after max_float infinity = infinity
,并且 next_after 0. infinity
是最小的非规格化正数。如果 x
是最小的非规格化正数,则 next_after x 0. = 0.
val copy_sign : float -> float -> float
copy_sign x y
返回一个浮点数,其绝对值与 x
相同,符号与 y
相同。如果 x
是 nan
,则返回 nan
。如果 y
是 nan
,则返回 x
或 -. x
,但未指定具体是哪个。
val sign_bit : float -> bool
sign_bit x
当且仅当 x
的符号位被设置时,返回 true
。例如,sign_bit 1.
和 signbit 0.
为 false
,而 sign_bit (-1.)
和 sign_bit (-0.)
为 true
。
val frexp : float -> float * int
frexp f
返回 f
的有效数和指数对。当 f
为零时,f
的有效数 x
和指数 n
都等于零。当 f
不为零时,它们由 f = x *. 2 ** n
和 0.5 <= x < 1.0
定义。
val ldexp : float -> int -> float
ldexp x n
返回 x *. 2 ** n
。
val modf : float -> float * float
modf f
返回 f
的小数部分和整数部分对。
typet =
float
浮点数类型的别名。
val compare : t -> t -> int
compare x y
如果 x
等于 y
,则返回 0
;如果 x
小于 y
,则返回负整数;如果 x
大于 y
,则返回正整数。compare
将 nan
视为等于自身,并且小于任何其他浮点值。这种对 nan
的处理确保 compare
定义了一个全序关系。
val equal : t -> t -> bool
浮点数的相等函数,使用 Float.compare
进行比较。
val min : t -> t -> t
min x y
返回 x
和 y
中的最小值。当 x
或 y
为 nan
时,它返回 nan
。此外,min (-0.) (+0.) = -0.
val max : float -> float -> float
max x y
返回 x
和 y
中的最大值。当 x
或 y
为 nan
时,它返回 nan
。此外,max (-0.) (+0.) = +0.
val min_max : float -> float -> float * float
min_max x y
等于 (min x y, max x y)
,只是效率更高。
val min_num : t -> t -> t
min_num x y
返回 x
和 y
中的最小值,将 nan
视为缺失值。如果 x
和 y
都为 nan
,则返回 nan
。此外,min_num (-0.) (+0.) = -0.
val max_num : t -> t -> t
max_num x y
返回 x
和 y
中的最大值,将 nan
视为缺失值。如果 x
和 y
都为 nan
,则返回 nan
。此外,max_num (-0.) (+0.) = +0.
val min_max_num : float -> float -> float * float
min_max_num x y
等于 (min_num x y, max_num x y)
,只是效率更高。请注意,特别是 min_max_num x nan = (x, x)
和 min_max_num nan y = (y, y)
。
val seeded_hash : int -> t -> int
浮点数的带种子哈希函数,输出值与 Hashtbl.seeded_hash
相同。此函数允许将此模块作为参数传递给函子 Hashtbl.MakeSeeded
。
val hash : t -> int
浮点数的无种子哈希函数,输出值与 Hashtbl.hash
相同。此函数允许将此模块作为参数传递给函子 Hashtbl.Make
。
module Array:sig
..end
具有打包表示的浮点数组。
module ArrayLabels:sig
..end
具有打包表示的浮点数组(带标签的函数)。