package batteries
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
Install
Dune Dependency
Authors
Maintainers
Sources
md5=d02c4f044e53edca010de46f9139ce00
sha512=99a5afa3604c4cf0c849c670111d617f7f255acb0da043b73ddffdf0e299948bce52516ee31921f269de6088156c4e0a187e0b931543c6819c6b25966b303281
doc/batteries.unthreaded/BatFloat/Safe_float/index.html
Module BatFloat.Safe_float
Source
Operations on floating-point numbers, with exceptions raised in case of error.
The operations implemented in this module are the same as the operations implemented in module Float
, with the exception that no operation returns nan
, infinity
or neg_infinity
. In case of overflow, instead of returning infinity
or neg_infinity
, operations raise exception Number.Overflow
. In case of nan
, operations raise exception Number.NaN
.
OCaml's floating-point numbers follow the IEEE 754 standard, using double precision (64 bits) numbers. Floating-point operations never raise an exception on overflow, underflow, division by zero, etc. Instead, special IEEE numbers are returned as appropriate, such as infinity
for 1.0 /. 0.0
, neg_infinity
for -1.0 /. 0.0
, and nan
(``not a number'') for 0.0 /. 0.0
. These special numbers then propagate through floating-point computations as expected: for instance, 1.0 /. infinity
is 0.0
, and any operation with nan
as argument returns nan
as result.
For more precision, see The Wikipedia entry on standard IEEE 754.
@documents Safe_float
The type of floating-point numbers.
Floating-point numbers are the default representation of real numbers by OCaml.
Usual operations
Floating number zero. This is the same thing as 0.
Floating number one. This is the same thing as 1.
Add 1.
to a floating number. Note that, as per IEEE 754, if x
is a large enough float number, succ x
might be equal to x
, due to rounding.
Subtract 1.
from a floating number. Note that, as per IEEE 754, if x
is a large enough float number, pred x
might be equal to x
, due to rounding.
The absolute value of a floating point number.
Operations specific to floating-point numbers
Exponential.
Natural logarithm.
Base 10 logarithm.
The usual trigonometric functions.
The usual hyperbolic trigonometric functions.
Round the given float to an integer value. floor f
returns the greatest integer value less than or equal to f
. ceil f
returns the least integer value greater than or equal to f
.
Positive infinity.
Negative infinity.
A special floating-point value denoting the result of an undefined operation such as 0.0 /. 0.0
. Stands for ``not a number''. Any floating-point operation with nan
as argument returns nan
as result. As for floating-point comparisons, =
, <
, <=
, >
and >=
return false
and <>
returns true
if one or both of their arguments is nan
.
is_nan f
returns true
if f
is nan
, false
otherwise.
The smallest positive float x
such that 1.0 +. x <> 1.0
.
The constant pi (3.14159...)
Operations on the internal representation of floating-point numbers
frexp f
returns the pair of the significant and the exponent of f
. When f
is zero, the significant x
and the exponent n
of f
are equal to zero. When f
is non-zero, they are defined by f = x *. 2 ** n
and 0.5 <= x < 1.0
.
ldexp x n
returns x *. 2 ** n
.
modf f
returns the pair of the fractional and integral part of f
.
Classes of floating point numbers
The five classes of floating-point numbers, as determined by the classify
function.
Return the class of the given floating-point number: normal, subnormal, zero, infinite, or not a number.
Boilerplate code
Printing