ocaml-containers/3.7/containers/CCFloat/index.html
2022-05-09 10:16:54 -04:00

2 lines
No EOL
22 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCFloat (containers.CCFloat)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.0.2"/><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">containers</a> &#x00BB; CCFloat</nav><header class="odoc-preamble"><h1>Module <code><span>CCFloat</span></code></h1><p>Basic operations on floating-point numbers</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.6.1</li></ul></header><nav class="odoc-toc"><ul><li><a href="#infix-operators">Infix Operators</a></li></ul></nav><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = float</span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-fpclass" class="anchored"><a href="#type-fpclass" class="anchor"></a><code><span><span class="keyword">type</span> fpclass</span><span> = <span class="xref-unresolved">CCShims_</span>.Stdlib.fpclass</span><span> = </span></code><table><tr id="type-fpclass.FP_normal" class="anchored"><td class="def variant constructor"><a href="#type-fpclass.FP_normal" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_normal</span></span></code></td></tr><tr id="type-fpclass.FP_subnormal" class="anchored"><td class="def variant constructor"><a href="#type-fpclass.FP_subnormal" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_subnormal</span></span></code></td></tr><tr id="type-fpclass.FP_zero" class="anchored"><td class="def variant constructor"><a href="#type-fpclass.FP_zero" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_zero</span></span></code></td></tr><tr id="type-fpclass.FP_infinite" class="anchored"><td class="def variant constructor"><a href="#type-fpclass.FP_infinite" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_infinite</span></span></code></td></tr><tr id="type-fpclass.FP_nan" class="anchored"><td class="def variant constructor"><a href="#type-fpclass.FP_nan" class="anchor"></a><code><span>| </span><span><span class="constructor">FP_nan</span></span></code></td></tr></table></div></div><div class="odoc-spec"><div class="spec value" id="val-nan" class="anchored"><a href="#val-nan" class="anchor"></a><code><span><span class="keyword">val</span> nan : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>nan</code> is Not a Number (NaN). Equal to <code>Stdlib</code>.nan.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-max_value" class="anchored"><a href="#val-max_value" class="anchor"></a><code><span><span class="keyword">val</span> max_value : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>max_value</code> is Positive infinity. Equal to <code>Stdlib</code>.infinity.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-min_value" class="anchored"><a href="#val-min_value" class="anchor"></a><code><span><span class="keyword">val</span> min_value : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>min_value</code> is Negative infinity. Equal to <code>Stdlib</code>.neg_infinity.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-max_finite_value" class="anchored"><a href="#val-max_finite_value" class="anchor"></a><code><span><span class="keyword">val</span> max_finite_value : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>max_finite_value</code> is the largest finite float value. Equal to <code>Stdlib</code>.max_float.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-epsilon" class="anchored"><a href="#val-epsilon" class="anchor"></a><code><span><span class="keyword">val</span> epsilon : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>epsilon</code> is the smallest positive float x such that <code>1.0 +. x &lt;&gt; 1.0</code>. Equal to <code>Stdlib</code>.epsilon_float.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-pi" class="anchored"><a href="#val-pi" class="anchor"></a><code><span><span class="keyword">val</span> pi : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>pi</code> is the constant pi. The ratio of a circumference to its diameter.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-is_nan" class="anchored"><a href="#val-is_nan" class="anchor"></a><code><span><span class="keyword">val</span> is_nan : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>is_nan f</code> returns <code>true</code> if f is NaN, <code>false</code> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-add" class="anchored"><a href="#val-add" class="anchor"></a><code><span><span class="keyword">val</span> add : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>add x y</code> is equal to <code>x +. y</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-sub" class="anchored"><a href="#val-sub" class="anchor"></a><code><span><span class="keyword">val</span> sub : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>sub x y</code> is equal to <code>x -. y</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-neg" class="anchored"><a href="#val-neg" class="anchor"></a><code><span><span class="keyword">val</span> neg : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>neg x</code> is equal to <code>~-. x</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-abs" class="anchored"><a href="#val-abs" class="anchor"></a><code><span><span class="keyword">val</span> abs : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>abs x</code> is the absolute value of the floating-point number <code>x</code>. Equal to <code>Stdlib</code>.abs_float.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-scale" class="anchored"><a href="#val-scale" class="anchor"></a><code><span><span class="keyword">val</span> scale : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>scale x y</code> is equal to <code>x *. y</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-min" class="anchored"><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">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>min x y</code> returns the min of the two given values <code>x</code> and <code>y</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-max" class="anchored"><a href="#val-max" class="anchor"></a><code><span><span class="keyword">val</span> max : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>max x y</code> returns the max of the two given values <code>x</code> and <code>y</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-equal" class="anchored"><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">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>equal x y</code> is <code>true</code> if <code>x</code> and <code>y</code> are the same.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-compare" class="anchored"><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">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p><code>compare x y</code> is <code>Stdlib</code>.comparexy.</p></div></div><div class="odoc-spec"><div class="spec type" id="type-printer" class="anchored"><a href="#type-printer" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a printer</span></span><span> = <span><span class="xref-unresolved">Stdlib</span>.Format.formatter <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-random_gen" class="anchored"><a href="#type-random_gen" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a random_gen</span></span><span> = <span><span class="xref-unresolved">Stdlib</span>.Random.State.t <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-pp" class="anchored"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="#type-t">t</a> <a href="#type-printer">printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-hash" class="anchored"><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">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-random" class="anchored"><a href="#val-random" class="anchor"></a><code><span><span class="keyword">val</span> random : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <a href="#type-random_gen">random_gen</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-random_small" class="anchored"><a href="#val-random_small" class="anchor"></a><code><span><span class="keyword">val</span> random_small : <span><a href="#type-t">t</a> <a href="#type-random_gen">random_gen</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-random_range" class="anchored"><a href="#val-random_range" class="anchor"></a><code><span><span class="keyword">val</span> random_range : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <a href="#type-random_gen">random_gen</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-fsign" class="anchored"><a href="#val-fsign" class="anchor"></a><code><span><span class="keyword">val</span> fsign : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>fsign x</code> is one of <code>-1., -0., +0., +1.</code>, or <code>nan</code> if <code>x</code> is NaN.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.7</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-round" class="anchored"><a href="#val-round" class="anchor"></a><code><span><span class="keyword">val</span> round : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>round x</code> returns the closest integer value, either above or below. For <code>n + 0.5</code>, <code>round</code> returns <code>n</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.20</li></ul></div></div><div class="odoc-spec"><div class="spec exception" id="exception-TrapNaN" class="anchored"><a href="#exception-TrapNaN" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">TrapNaN</span> <span class="keyword">of</span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-sign_exn" class="anchored"><a href="#val-sign_exn" class="anchor"></a><code><span><span class="keyword">val</span> sign_exn : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p><code>sign_exn x</code> will return the sign of <code>x</code> as <code>1, 0</code> or <code>-1</code>, or raise an exception <code>TrapNaN</code> if <code>x</code> is NaN. Note that infinities have defined signs in OCaml.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.7</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-to_int" class="anchored"><a href="#val-to_int" class="anchor"></a><code><span><span class="keyword">val</span> to_int : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p>Alias to <code>int_of_float</code>. Unspecified if outside of the range of integers.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-of_int" class="anchored"><a href="#val-of_int" class="anchor"></a><code><span><span class="keyword">val</span> of_int : <span>int <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Alias to <code>float_of_int</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-to_string" class="anchored"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-of_string_exn" class="anchored"><a href="#val-of_string_exn" class="anchor"></a><code><span><span class="keyword">val</span> of_string_exn : <span>string <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Alias to <code>float_of_string</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Failure</span> <p>in case of failure.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_string_opt" class="anchored"><a href="#val-of_string_opt" class="anchor"></a><code><span><span class="keyword">val</span> of_string_opt : <span>string <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> option</span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-equal_precision" class="anchored"><a href="#val-equal_precision" class="anchor"></a><code><span><span class="keyword">val</span> equal_precision : <span>epsilon:<a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Equality with allowed error up to a non negative epsilon value.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-classify" class="anchored"><a href="#val-classify" class="anchor"></a><code><span><span class="keyword">val</span> classify : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-fpclass">fpclass</a></span></code></div><div class="spec-doc"><p><code>classify x</code> returns the class of the given floating-point number <code>x</code>: normal, subnormal, zero, infinite or nan (not a number).</p></div></div><h3 id="infix-operators"><a href="#infix-operators" class="anchor"></a>Infix Operators</h3><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul><div class="odoc-spec"><div class="spec module" id="module-Infix" class="anchored"><a href="#module-Infix" class="anchor"></a><code><span><span class="keyword">module</span> </span><span><a href="Infix/index.html">Infix</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <a href="Infix/index.html">Infix</a></span></code></summary><div class="odoc-spec"><div class="spec value" id="val-(=)" class="anchored"><a href="#val-(=)" class="anchor"></a><code><span><span class="keyword">val</span> (=) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(&lt;&gt;)" class="anchored"><a href="#val-(&lt;&gt;)" class="anchor"></a><code><span><span class="keyword">val</span> (&lt;&gt;) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(&lt;)" class="anchored"><a href="#val-(&lt;)" class="anchor"></a><code><span><span class="keyword">val</span> (&lt;) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(&gt;)" class="anchored"><a href="#val-(&gt;)" class="anchor"></a><code><span><span class="keyword">val</span> (&gt;) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(&lt;=)" class="anchored"><a href="#val-(&lt;=)" class="anchor"></a><code><span><span class="keyword">val</span> (&lt;=) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(&gt;=)" class="anchored"><a href="#val-(&gt;=)" class="anchor"></a><code><span><span class="keyword">val</span> (&gt;=) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(+)" class="anchored"><a href="#val-(+)" class="anchor"></a><code><span><span class="keyword">val</span> (+) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Addition.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.1</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(-)" class="anchored"><a href="#val-(-)" class="anchor"></a><code><span><span class="keyword">val</span> (-) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Subtraction.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.1</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(~-)" class="anchored"><a href="#val-(~-)" class="anchor"></a><code><span><span class="keyword">val</span> (~-) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Unary negation.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.1</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(*)" class="anchored"><a href="#val-(*)" class="anchor"></a><code><span><span class="keyword">val</span> (*) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Multiplication.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.1</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(/)" class="anchored"><a href="#val-(/)" class="anchor"></a><code><span><span class="keyword">val</span> (/) : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Division.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.1</li></ul></div></div></details></div></div></body></html>