mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
2 lines
No EOL
23 KiB
HTML
2 lines
No EOL
23 KiB
HTML
<!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.0"/><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> » CCFloat</nav><header class="odoc-preamble"><h1>Module <code><span>CCFloat</span></code></h1></header><nav class="odoc-toc"><ul><li><a href="#basic-operations-on-floating-point-numbers">Basic operations on floating-point numbers</a><ul><li><a href="#infix-operators">Infix Operators</a></li></ul></li></ul></nav><div class="odoc-content"><h2 id="basic-operations-on-floating-point-numbers"><a href="#basic-operations-on-floating-point-numbers" class="anchor"></a>Basic operations on floating-point numbers</h2><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.6.1</li></ul><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 <> 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">-></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">-></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>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">-></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>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">-></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">-></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">-></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>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">-></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 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">-></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 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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></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">-></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> is <code>Stdlib</code>.compare x y.</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">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></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">-></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">-></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">-></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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></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">-></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">-></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">-></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">-></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">-></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">-></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">-></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">-></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">-></span></span> <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>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">-></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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></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">-></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>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">-></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>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">-></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">-></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>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">-></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>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> |