Spec-Zone.ru › OCaml 5.0

Модуль 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

Число 0 с плавающей запятой.

  • 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

Возвращает строковое представление числа с плавающей запятой.

Это преобразование может привести к потере точности. Для более тонкого управления способом вывода числа см. Printf.

Эта функция является псевдонимом для string_of_float.

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

Десятичный логарифм.

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. Результат возвращается как float.

val floor : float -> float

Округление вниз до целого значения. floor f возвращает наибольшее целое значение, меньшее или равное f. Результат возвращается как float.

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 возвращает float, модуль которого равен 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 как равное самому себе и меньше любого другого значения float. Такое обращение с 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/5.0/htmlman/libref/Float.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API