Модуль Float
module Float: sig .. end
Арифметика с плавающей запятой.
Числа с плавающей запятой OCaml следуют стандарту IEEE 754, используя числа двойной точности (64 бита). Операции с плавающей запятой никогда не генерируют исключение при переполнении, потере точности, делении на ноль и т.д. Вместо этого возвращаются соответствующие специальные числа IEEE, такие как infinity для 1.0 /. 0.0, neg_infinity для -1.0 /. 0.0, и nan ('не число') для 0.0 /. 0.0. Эти специальные числа затем распространяются через вычисления с плавающей запятой, как ожидается: например, 1.0 /. infinity равно 0.0, основные арифметические операции (+., -., *., /.) с nan в качестве аргумента возвращают nan, ...
- Since 4.07.0
val zero : float
Ноль с плавающей запятой.
- Since 4.08.0
val one : float
Число 1 с плавающей запятой.
- Since 4.08.0
val minus_one : float
Число -1 с плавающей запятой.
- Since 4.08.0
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, если важна производительность.
- Since 4.08.0
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.
- Since 4.08.0
val pred : float -> float
pred x возвращает число с плавающей запятой, непосредственно предшествующее x, т.е. наибольшее число с плавающей запятой, меньшее чем x. См. также Float.next_after.
- Since 4.08.0
val abs : float -> float
abs f возвращает абсолютное значение f.
val infinity : float
Положительная бесконечность.
val neg_infinity : float
Отрицательная бесконечность.
val nan : float
Специальное значение с плавающей запятой, обозначающее результат неопределенной операции, такой как 0.0 /. 0.0. Обозначает 'не число'. Любая операция с плавающей запятой, имеющая nan в качестве аргумента, возвращает nan в качестве результата. Что касается сравнений чисел с плавающей запятой, =, <, <=, > и >= возвращают false, а <> возвращает true если один или оба аргумента являются nan.
val pi : float
Постоянная пи.
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 равно true тогда и только тогда, когда x конечно, т.е. не бесконечно и не Float.nan.
- Since 4.08.0
val is_infinite : float -> bool
is_infinite x равно true тогда и только тогда, когда x равно Float.infinity или Float.neg_infinity.
- Since 4.08.0
val is_nan : float -> bool
is_nan x равно true тогда и только тогда, когда x не является числом (см. Float.nan).
- Since 4.08.0
val is_integer : float -> bool
is_integer x равно true тогда и только тогда, когда x является целым числом.
- Since 4.08.0
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 обозначает десятичную цифру. В обоих случаях должна быть указана хотя бы одна из целой и дробной частей; показатель степени необязателен. Символ _ (подчеркивание) может появляться в строке и игнорируется. В зависимости от платформы выполнения, могут приниматься и другие представления чисел с плавающей запятой, но полагаться на них не следует.
-
Raises
Failureесли данная строка не является корректным представлением числа с плавающей запятой.
val of_string_opt : string -> float option
Аналогично of_string, но возвращает None вместо повышения исключения.
val to_string : float -> string
Возвращает строковое представление числа с плавающей запятой.
type fpclass = 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
Кубический корень.
- Since 4.13.0
val exp : float -> float
Экспонента.
val exp2 : float -> float
Функция возведения в степень по основанию 2.
- Since 4.13.0
val log : float -> float
Натуральный логарифм.
val log10 : float -> float
Логарифм по основанию 10.
val log2 : float -> float
Логарифм по основанию 2.
- Since 4.13.0
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.
- Since 4.13.0
val asinh : float -> float
Гиперболический арксинус. Аргумент и результат охватывают всю вещественную прямую. Результат в радианах.
- Since 4.13.0
val atanh : float -> float
Гиперболический арктангенс. Аргумент должен находиться в диапазоне [-1.0, 1.0]. Результат в радианах и охватывает всю вещественную прямую.
- Since 4.13.0
val erf : float -> float
Функция ошибок. Аргумент охватывает всю вещественную прямую. Результат всегда находится в [-1.0, 1.0].
- Since 4.13.0
val erfc : float -> float
Дополнительная функция ошибок (erfc x = 1 - erf x). Аргумент охватывает всю вещественную прямую. Результат всегда находится в [-1.0, 1.0].
- Since 4.13.0
val trunc : float -> float
trunc x округляет x до ближайшего целого числа, модуль которого меньше или равен x.
- Since 4.08.0
val round : float -> float
round x округляет x до ближайшего целого, при этом дробные значения 0,5 округляются от нуля, независимо от текущего направления округления. Если x — целое число, +0., -0., nan, или бесконечность, возвращается само x.
На 64-битной mingw-w64 эта функция может быть эмулирована из-за ошибки в библиотеке времени выполнения C (CRT) на этой платформе.
- Since 4.08.0
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.
- Since 4.08.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 является true, если и только если бит знака x установлен. Например, sign_bit 1. и signbit 0. являются false, в то время как sign_bit (-1.) и sign_bit (-0.) являются true.
- Since 4.08.0
val frexp : float -> float * int
frexp f возвращает пару значащих цифр и показателя степени f. Когда f равно нулю, значащая часть x и показатель степени n f равны нулю. Когда 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.
type t = float
Псевдоним для типа чисел с плавающей запятой.
val compare : t -> t -> int
compare x y возвращает 0 если x равно y, отрицательное целое число, если 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 . Возвращает nan когда x или y равно nan. Кроме того min (-0.) (+0.) = -0.
- Since 4.08.0
val max : float -> float -> float
max x y возвращает максимум из x и y. Возвращает nan когда x или y равно nan. Кроме того max (-0.) (+0.) = +0.
- Since 4.08.0
val min_max : float -> float -> float * float
min_max x y является (min x y, max x y), просто более эффективным.
- Since 4.08.0
val min_num : t -> t -> t
min_num x y возвращает минимальное значение из x и y, рассматривая nan как пропущенные значения. Если оба x и y являются nan, возвращается nan. Кроме того min_num (-0.) (+0.) = -0.
- Since 4.08.0
val max_num : t -> t -> t
max_num x y возвращает максимальное значение из x и y, рассматривая nan как пропущенные значения. Если оба x и y являются nan nan возвращается. Кроме того max_num (-0.) (+0.) = +0.
- Since 4.08.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).
- Since 4.08.0
val hash : t -> int
Функция хеширования для чисел с плавающей точкой.
module Array: sig .. end
Массивы чисел с плавающей точкой с упакованным представлением.
module ArrayLabels: sig .. end
Массивы чисел с плавающей точкой с упакованным представлением (функции с метками).
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Float.html