mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-17 08:06:43 -05:00
2 lines
No EOL
41 KiB
HTML
2 lines
No EOL
41 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Float (ocaml.Stdlib.Float)</title><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">ocaml</a> » <a href="../index.html">Stdlib</a> » Float</nav><header class="odoc-preamble"><h1>Module <code><span>Stdlib.Float</span></code></h1><p>Floating-point arithmetic.</p><p>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 <code>infinity</code> for <code>1.0 /. 0.0</code>, <code>neg_infinity</code> for <code>-1.0 /. 0.0</code>, and <code>nan</code> ('not a number') for <code>0.0 /. 0.0</code>. These special numbers then propagate through floating-point computations as expected: for instance, <code>1.0 /. infinity</code> is <code>0.0</code>, basic arithmetic operations (<code>+.</code>, <code>-.</code>, <code>*.</code>, <code>/.</code>) with <code>nan</code> as an argument return <code>nan</code>, ...</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.07.0</li></ul></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-zero"><a href="#val-zero" class="anchor"></a><code><span><span class="keyword">val</span> zero : float</span></code></div><div class="spec-doc"><p>The floating point 0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-one"><a href="#val-one" class="anchor"></a><code><span><span class="keyword">val</span> one : float</span></code></div><div class="spec-doc"><p>The floating-point 1.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-minus_one"><a href="#val-minus_one" class="anchor"></a><code><span><span class="keyword">val</span> minus_one : float</span></code></div><div class="spec-doc"><p>The floating-point -1.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-neg"><a href="#val-neg" class="anchor"></a><code><span><span class="keyword">val</span> neg : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Unary negation.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-add"><a href="#val-add" class="anchor"></a><code><span><span class="keyword">val</span> add : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Floating-point addition.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-sub"><a href="#val-sub" class="anchor"></a><code><span><span class="keyword">val</span> sub : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Floating-point subtraction.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-mul"><a href="#val-mul" class="anchor"></a><code><span><span class="keyword">val</span> mul : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Floating-point multiplication.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-div"><a href="#val-div" class="anchor"></a><code><span><span class="keyword">val</span> div : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Floating-point division.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-fma"><a href="#val-fma" class="anchor"></a><code><span><span class="keyword">val</span> fma : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>fma x y z</code> returns <code>x * y + z</code>, with a best effort for computing this expression with a single rounding, using either hardware instructions (providing full IEEE compliance) or a software emulation.</p><p>On 64-bit Cygwin, 64-bit mingw-w64 and MSVC 2017 and earlier, this function may be emulated owing to known bugs on limitations on these platforms. Note: since software emulation of the fma is costly, make sure that you are using hardware fma support if performance matters.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-rem"><a href="#val-rem" class="anchor"></a><code><span><span class="keyword">val</span> rem : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>rem a b</code> returns the remainder of <code>a</code> with respect to <code>b</code>. The returned value is <code>a -. n *. b</code>, where <code>n</code> is the quotient <code>a /. b</code> rounded towards zero to an integer.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-succ"><a href="#val-succ" class="anchor"></a><code><span><span class="keyword">val</span> succ : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>succ x</code> returns the floating point number right after <code>x</code> i.e., the smallest floating-point number greater than <code>x</code>. See also <a href="#val-next_after"><code>next_after</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pred"><a href="#val-pred" class="anchor"></a><code><span><span class="keyword">val</span> pred : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>pred x</code> returns the floating-point number right before <code>x</code> i.e., the greatest floating-point number smaller than <code>x</code>. See also <a href="#val-next_after"><code>next_after</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span><span class="keyword">val</span> abs : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>abs f</code> returns the absolute value of <code>f</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-infinity"><a href="#val-infinity" class="anchor"></a><code><span><span class="keyword">val</span> infinity : float</span></code></div><div class="spec-doc"><p>Positive infinity.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-neg_infinity"><a href="#val-neg_infinity" class="anchor"></a><code><span><span class="keyword">val</span> neg_infinity : float</span></code></div><div class="spec-doc"><p>Negative infinity.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-nan"><a href="#val-nan" class="anchor"></a><code><span><span class="keyword">val</span> nan : float</span></code></div><div class="spec-doc"><p>A special floating-point value denoting the result of an undefined operation such as <code>0.0 /. 0.0</code>. Stands for 'not a number'. Any floating-point operation with <code>nan</code> as argument returns <code>nan</code> as result. As for floating-point comparisons, <code>=</code>, <code><</code>, <code><=</code>, <code>></code> and <code>>=</code> return <code>false</code> and <code><></code> returns <code>true</code> if one or both of their arguments is <code>nan</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pi"><a href="#val-pi" class="anchor"></a><code><span><span class="keyword">val</span> pi : float</span></code></div><div class="spec-doc"><p>The constant pi.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max_float"><a href="#val-max_float" class="anchor"></a><code><span><span class="keyword">val</span> max_float : float</span></code></div><div class="spec-doc"><p>The largest positive finite value of type <code>float</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_float"><a href="#val-min_float" class="anchor"></a><code><span><span class="keyword">val</span> min_float : float</span></code></div><div class="spec-doc"><p>The smallest positive, non-zero, non-denormalized value of type <code>float</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-epsilon"><a href="#val-epsilon" class="anchor"></a><code><span><span class="keyword">val</span> epsilon : float</span></code></div><div class="spec-doc"><p>The difference between <code>1.0</code> and the smallest exactly representable floating-point number greater than <code>1.0</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_finite"><a href="#val-is_finite" class="anchor"></a><code><span><span class="keyword">val</span> is_finite : <span>float <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_finite x</code> is <code>true</code> if and only if <code>x</code> is finite i.e., not infinite and not <a href="#val-nan"><code>nan</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_infinite"><a href="#val-is_infinite" class="anchor"></a><code><span><span class="keyword">val</span> is_infinite : <span>float <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_infinite x</code> is <code>true</code> if and only if <code>x</code> is <a href="#val-infinity"><code>infinity</code></a> or <a href="#val-neg_infinity"><code>neg_infinity</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_nan"><a href="#val-is_nan" class="anchor"></a><code><span><span class="keyword">val</span> is_nan : <span>float <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_nan x</code> is <code>true</code> if and only if <code>x</code> is not a number (see <a href="#val-nan"><code>nan</code></a>).</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_integer"><a href="#val-is_integer" class="anchor"></a><code><span><span class="keyword">val</span> is_integer : <span>float <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_integer x</code> is <code>true</code> if and only if <code>x</code> is an integer.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-of_int"><a href="#val-of_int" class="anchor"></a><code><span><span class="keyword">val</span> of_int : <span>int <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Convert an integer to floating-point.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-to_int"><a href="#val-to_int" class="anchor"></a><code><span><span class="keyword">val</span> to_int : <span>float <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Truncate the given floating-point number to an integer. The result is unspecified if the argument is <code>nan</code> or falls outside the range of representable integers.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-of_string"><a href="#val-of_string" class="anchor"></a><code><span><span class="keyword">val</span> of_string : <span>string <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Convert the given string to a float. The string is read in decimal (by default) or in hexadecimal (marked by <code>0x</code> or <code>0X</code>). The format of decimal floating-point numbers is <code> [-] dd.ddd (e|E) [+|-] dd </code>, where <code>d</code> stands for a decimal digit. The format of hexadecimal floating-point numbers is <code> [-] 0(x|X) hh.hhh (p|P) [+|-] dd </code>, where <code>h</code> stands for an hexadecimal digit and <code>d</code> for a decimal digit. In both cases, at least one of the integer and fractional parts must be given; the exponent part is optional. The <code>_</code> (underscore) character can appear anywhere in the string and is ignored. Depending on the execution platforms, other representations of floating-point numbers can be accepted, but should not be relied upon.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Failure</span> <p>if the given string is not a valid representation of a float.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_string_opt"><a href="#val-of_string_opt" class="anchor"></a><code><span><span class="keyword">val</span> of_string_opt : <span>string <span class="arrow">-></span></span> <span>float option</span></span></code></div><div class="spec-doc"><p>Same as <code>of_string</code>, but returns <code>None</code> instead of raising.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span>float <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Return a string representation of a floating-point number.</p><p>This conversion can involve a loss of precision. For greater control over the manner in which the number is printed, see <a href="../Printf/index.html"><code>Printf</code></a>.</p><p>This function is an alias for <a href="../index.html#val-string_of_float"><code>Stdlib.string_of_float</code></a>.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-fpclass"><a href="#type-fpclass" class="anchor"></a><code><span><span class="keyword">type</span> fpclass</span><span> = <a href="../index.html#type-fpclass">fpclass</a></span><span> = </span></code><ol><li id="type-fpclass.FP_normal" class="def variant constructor anchored"><a href="#type-fpclass.FP_normal" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_normal</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Normal number, none of the below</p><span class="comment-delim">*)</span></div></li><li id="type-fpclass.FP_subnormal" class="def variant constructor anchored"><a href="#type-fpclass.FP_subnormal" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_subnormal</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Number very close to 0.0, has reduced precision</p><span class="comment-delim">*)</span></div></li><li id="type-fpclass.FP_zero" class="def variant constructor anchored"><a href="#type-fpclass.FP_zero" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_zero</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Number is 0.0 or -0.0</p><span class="comment-delim">*)</span></div></li><li id="type-fpclass.FP_infinite" class="def variant constructor anchored"><a href="#type-fpclass.FP_infinite" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_infinite</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Number is positive or negative infinity</p><span class="comment-delim">*)</span></div></li><li id="type-fpclass.FP_nan" class="def variant constructor anchored"><a href="#type-fpclass.FP_nan" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_nan</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Not a number: result of an undefined operation</p><span class="comment-delim">*)</span></div></li></ol></div><div class="spec-doc"><p>The five classes of floating-point numbers, as determined by the <a href="#val-classify_float"><code>classify_float</code></a> function.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-classify_float"><a href="#val-classify_float" class="anchor"></a><code><span><span class="keyword">val</span> classify_float : <span>float <span class="arrow">-></span></span> <a href="#type-fpclass">fpclass</a></span></code></div><div class="spec-doc"><p>Return the class of the given floating-point number: normal, subnormal, zero, infinite, or not a number.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-pow"><a href="#val-pow" class="anchor"></a><code><span><span class="keyword">val</span> pow : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Exponentiation.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-sqrt"><a href="#val-sqrt" class="anchor"></a><code><span><span class="keyword">val</span> sqrt : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Square root.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-cbrt"><a href="#val-cbrt" class="anchor"></a><code><span><span class="keyword">val</span> cbrt : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Cube root.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-exp"><a href="#val-exp" class="anchor"></a><code><span><span class="keyword">val</span> exp : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Exponential.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-exp2"><a href="#val-exp2" class="anchor"></a><code><span><span class="keyword">val</span> exp2 : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Base 2 exponential function.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-log"><a href="#val-log" class="anchor"></a><code><span><span class="keyword">val</span> log : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Natural logarithm.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-log10"><a href="#val-log10" class="anchor"></a><code><span><span class="keyword">val</span> log10 : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Base 10 logarithm.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-log2"><a href="#val-log2" class="anchor"></a><code><span><span class="keyword">val</span> log2 : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Base 2 logarithm.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-expm1"><a href="#val-expm1" class="anchor"></a><code><span><span class="keyword">val</span> expm1 : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>expm1 x</code> computes <code>exp x -. 1.0</code>, giving numerically-accurate results even if <code>x</code> is close to <code>0.0</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-log1p"><a href="#val-log1p" class="anchor"></a><code><span><span class="keyword">val</span> log1p : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>log1p x</code> computes <code>log(1.0 +. x)</code> (natural logarithm), giving numerically-accurate results even if <code>x</code> is close to <code>0.0</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-cos"><a href="#val-cos" class="anchor"></a><code><span><span class="keyword">val</span> cos : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Cosine. Argument is in radians.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-sin"><a href="#val-sin" class="anchor"></a><code><span><span class="keyword">val</span> sin : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Sine. Argument is in radians.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-tan"><a href="#val-tan" class="anchor"></a><code><span><span class="keyword">val</span> tan : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Tangent. Argument is in radians.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-acos"><a href="#val-acos" class="anchor"></a><code><span><span class="keyword">val</span> acos : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Arc cosine. The argument must fall within the range <code>[-1.0, 1.0]</code>. Result is in radians and is between <code>0.0</code> and <code>pi</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-asin"><a href="#val-asin" class="anchor"></a><code><span><span class="keyword">val</span> asin : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Arc sine. The argument must fall within the range <code>[-1.0, 1.0]</code>. Result is in radians and is between <code>-pi/2</code> and <code>pi/2</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-atan"><a href="#val-atan" class="anchor"></a><code><span><span class="keyword">val</span> atan : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Arc tangent. Result is in radians and is between <code>-pi/2</code> and <code>pi/2</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-atan2"><a href="#val-atan2" class="anchor"></a><code><span><span class="keyword">val</span> atan2 : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>atan2 y x</code> returns the arc tangent of <code>y /. x</code>. The signs of <code>x</code> and <code>y</code> are used to determine the quadrant of the result. Result is in radians and is between <code>-pi</code> and <code>pi</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-hypot"><a href="#val-hypot" class="anchor"></a><code><span><span class="keyword">val</span> hypot : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>hypot x y</code> returns <code>sqrt(x *. x + y *. y)</code>, that is, the length of the hypotenuse of a right-angled triangle with sides of length <code>x</code> and <code>y</code>, or, equivalently, the distance of the point <code>(x,y)</code> to origin. If one of <code>x</code> or <code>y</code> is infinite, returns <code>infinity</code> even if the other is <code>nan</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-cosh"><a href="#val-cosh" class="anchor"></a><code><span><span class="keyword">val</span> cosh : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Hyperbolic cosine. Argument is in radians.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-sinh"><a href="#val-sinh" class="anchor"></a><code><span><span class="keyword">val</span> sinh : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Hyperbolic sine. Argument is in radians.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-tanh"><a href="#val-tanh" class="anchor"></a><code><span><span class="keyword">val</span> tanh : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Hyperbolic tangent. Argument is in radians.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-acosh"><a href="#val-acosh" class="anchor"></a><code><span><span class="keyword">val</span> acosh : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Hyperbolic arc cosine. The argument must fall within the range <code>[1.0, inf]</code>. Result is in radians and is between <code>0.0</code> and <code>inf</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-asinh"><a href="#val-asinh" class="anchor"></a><code><span><span class="keyword">val</span> asinh : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Hyperbolic arc sine. The argument and result range over the entire real line. Result is in radians.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-atanh"><a href="#val-atanh" class="anchor"></a><code><span><span class="keyword">val</span> atanh : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Hyperbolic arc tangent. The argument must fall within the range <code>[-1.0, 1.0]</code>. Result is in radians and ranges over the entire real line.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-erf"><a href="#val-erf" class="anchor"></a><code><span><span class="keyword">val</span> erf : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Error function. The argument ranges over the entire real line. The result is always within <code>[-1.0, 1.0]</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-erfc"><a href="#val-erfc" class="anchor"></a><code><span><span class="keyword">val</span> erfc : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Complementary error function (<code>erfc x = 1 - erf x</code>). The argument ranges over the entire real line. The result is always within <code>[-1.0, 1.0]</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-trunc"><a href="#val-trunc" class="anchor"></a><code><span><span class="keyword">val</span> trunc : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>trunc x</code> rounds <code>x</code> to the nearest integer whose absolute value is less than or equal to <code>x</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-round"><a href="#val-round" class="anchor"></a><code><span><span class="keyword">val</span> round : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>round x</code> rounds <code>x</code> to the nearest integer with ties (fractional values of 0.5) rounded away from zero, regardless of the current rounding direction. If <code>x</code> is an integer, <code>+0.</code>, <code>-0.</code>, <code>nan</code>, or infinite, <code>x</code> itself is returned.</p><p>On 64-bit mingw-w64, this function may be emulated owing to a bug in the C runtime library (CRT) on this platform.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-ceil"><a href="#val-ceil" class="anchor"></a><code><span><span class="keyword">val</span> ceil : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Round above to an integer value. <code>ceil f</code> returns the least integer value greater than or equal to <code>f</code>. The result is returned as a float.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-floor"><a href="#val-floor" class="anchor"></a><code><span><span class="keyword">val</span> floor : <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Round below to an integer value. <code>floor f</code> returns the greatest integer value less than or equal to <code>f</code>. The result is returned as a float.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-next_after"><a href="#val-next_after" class="anchor"></a><code><span><span class="keyword">val</span> next_after : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>next_after x y</code> returns the next representable floating-point value following <code>x</code> in the direction of <code>y</code>. More precisely, if <code>y</code> is greater (resp. less) than <code>x</code>, it returns the smallest (resp. largest) representable number greater (resp. less) than <code>x</code>. If <code>x</code> equals <code>y</code>, the function returns <code>y</code>. If <code>x</code> or <code>y</code> is <code>nan</code>, a <code>nan</code> is returned. Note that <code>next_after max_float infinity = infinity</code> and that <code>next_after 0. infinity</code> is the smallest denormalized positive number. If <code>x</code> is the smallest denormalized positive number, <code>next_after x 0. = 0.</code></p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-copy_sign"><a href="#val-copy_sign" class="anchor"></a><code><span><span class="keyword">val</span> copy_sign : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>copy_sign x y</code> returns a float whose absolute value is that of <code>x</code> and whose sign is that of <code>y</code>. If <code>x</code> is <code>nan</code>, returns <code>nan</code>. If <code>y</code> is <code>nan</code>, returns either <code>x</code> or <code>-. x</code>, but it is not specified which.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-sign_bit"><a href="#val-sign_bit" class="anchor"></a><code><span><span class="keyword">val</span> sign_bit : <span>float <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>sign_bit x</code> is <code>true</code> if and only if the sign bit of <code>x</code> is set. For example <code>sign_bit 1.</code> and <code>signbit 0.</code> are <code>false</code> while <code>sign_bit (-1.)</code> and <code>sign_bit (-0.)</code> are <code>true</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-frexp"><a href="#val-frexp" class="anchor"></a><code><span><span class="keyword">val</span> frexp : <span>float <span class="arrow">-></span></span> float * int</span></code></div><div class="spec-doc"><p><code>frexp f</code> returns the pair of the significant and the exponent of <code>f</code>. When <code>f</code> is zero, the significant <code>x</code> and the exponent <code>n</code> of <code>f</code> are equal to zero. When <code>f</code> is non-zero, they are defined by <code>f = x *. 2 ** n</code> and <code>0.5 <= x < 1.0</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-ldexp"><a href="#val-ldexp" class="anchor"></a><code><span><span class="keyword">val</span> ldexp : <span>float <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>ldexp x n</code> returns <code>x *. 2 ** n</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-modf"><a href="#val-modf" class="anchor"></a><code><span><span class="keyword">val</span> modf : <span>float <span class="arrow">-></span></span> float * float</span></code></div><div class="spec-doc"><p><code>modf f</code> returns the pair of the fractional and integral part of <code>f</code>.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = float</span></code></div><div class="spec-doc"><p>An alias for the type of floating-point numbers.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>compare x y</code> returns <code>0</code> if <code>x</code> is equal to <code>y</code>, a negative integer if <code>x</code> is less than <code>y</code>, and a positive integer if <code>x</code> is greater than <code>y</code>. <code>compare</code> treats <code>nan</code> as equal to itself and less than any other float value. This treatment of <code>nan</code> ensures that <code>compare</code> defines a total ordering relation.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p>The equal function for floating-point numbers, compared using <a href="#val-compare"><code>compare</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min"><a href="#val-min" class="anchor"></a><code><span><span class="keyword">val</span> min : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>min x y</code> returns the minimum of <code>x</code> and <code>y</code>. It returns <code>nan</code> when <code>x</code> or <code>y</code> is <code>nan</code>. Moreover <code>min (-0.) (+0.) = -0.</code></p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max"><a href="#val-max" class="anchor"></a><code><span><span class="keyword">val</span> max : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p><code>max x y</code> returns the maximum of <code>x</code> and <code>y</code>. It returns <code>nan</code> when <code>x</code> or <code>y</code> is <code>nan</code>. Moreover <code>max (-0.) (+0.) = +0.</code></p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_max"><a href="#val-min_max" class="anchor"></a><code><span><span class="keyword">val</span> min_max : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float * float</span></code></div><div class="spec-doc"><p><code>min_max x y</code> is <code>(min x y, max x y)</code>, just more efficient.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_num"><a href="#val-min_num" class="anchor"></a><code><span><span class="keyword">val</span> min_num : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>min_num x y</code> returns the minimum of <code>x</code> and <code>y</code> treating <code>nan</code> as missing values. If both <code>x</code> and <code>y</code> are <code>nan</code>, <code>nan</code> is returned. Moreover <code>min_num (-0.) (+0.) = -0.</code></p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max_num"><a href="#val-max_num" class="anchor"></a><code><span><span class="keyword">val</span> max_num : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>max_num x y</code> returns the maximum of <code>x</code> and <code>y</code> treating <code>nan</code> as missing values. If both <code>x</code> and <code>y</code> are <code>nan</code> <code>nan</code> is returned. Moreover <code>max_num (-0.) (+0.) = +0.</code></p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_max_num"><a href="#val-min_max_num" class="anchor"></a><code><span><span class="keyword">val</span> min_max_num : <span>float <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> float * float</span></code></div><div class="spec-doc"><p><code>min_max_num x y</code> is <code>(min_num x y, max_num x y)</code>, just more efficient. Note that in particular <code>min_max_num x nan = (x, x)</code> and <code>min_max_num nan y = (y, y)</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span><span class="keyword">val</span> hash : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>The hash function for floating-point numbers.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Array"><a href="#module-Array" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Array/index.html">Array</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Float arrays with packed representation.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-ArrayLabels"><a href="#module-ArrayLabels" class="anchor"></a><code><span><span class="keyword">module</span> <a href="ArrayLabels/index.html">ArrayLabels</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Float arrays with packed representation (labeled functions).</p></div></div></div></body></html> |