mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-05-05 17:04:52 -04:00
2 lines
21 KiB
HTML
2 lines
21 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Optint (optint.Optint)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 3.1.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">Index</a> » <a href="../index.html">optint</a> » Optint</nav><header class="odoc-preamble"><h1>Module <code><span>Optint</span></code></h1></header><div class="odoc-tocs"><nav class="odoc-toc odoc-local-toc"><ul><li><a href="#encoding-functions">Encoding functions</a></li><li><a href="#other-modules">Other modules</a></li></ul></nav></div><div class="odoc-content"><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></code></div><div class="spec-doc"><p>The type of integers with <i>at least</i> 32 bits. For 63-bit integers, see <a href="Int63/index.html"><code>Int63</code></a>.</p></div></div><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 : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Integer 0.</p></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 : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Integer 1.</p></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 : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Integer (-1).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-neg"><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>Unary negation.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add"><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>Addition.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sub"><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>Subtraction.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mul"><a href="#val-mul" class="anchor"></a><code><span><span class="keyword">val</span> mul : <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>Mulitplication.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-div"><a href="#val-div" class="anchor"></a><code><span><span class="keyword">val</span> div : <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>Integer division. Raise <code>Division_by_zero</code> if the second argument is zero. This division rounds the real quotient of its arguments towrds zero.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-rem"><a href="#val-rem" class="anchor"></a><code><span><span class="keyword">val</span> rem : <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>Integer remainder. If <code>y</code> is not zero, the result of <code>rem x y</code> satisfies the following property: <code>x = add (mul (div x y) y) (rem x y)</code>. if <code>y = 0</code>, <code>rem x y</code> raises <code>Division_by_zero</code>.</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><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>Successor. <code>succ x</code> is <code>add x one</code>.</p></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><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>Predecessor. <code>pred x</code> is <code>sub x one</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-abs"><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>Return the absolute value its argument.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max_int"><a href="#val-max_int" class="anchor"></a><code><span><span class="keyword">val</span> max_int : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>The greatest representable integer.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_int"><a href="#val-min_int" class="anchor"></a><code><span><span class="keyword">val</span> min_int : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>The smallest representable integer.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-logand"><a href="#val-logand" class="anchor"></a><code><span><span class="keyword">val</span> logand : <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>Bitwise logical and.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-logor"><a href="#val-logor" class="anchor"></a><code><span><span class="keyword">val</span> logor : <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>Bitwise logical or.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-logxor"><a href="#val-logxor" class="anchor"></a><code><span><span class="keyword">val</span> logxor : <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>Bitwise logical exclusive or.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lognot"><a href="#val-lognot" class="anchor"></a><code><span><span class="keyword">val</span> lognot : <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>Bitwise logical negation.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shift_left"><a href="#val-shift_left" class="anchor"></a><code><span><span class="keyword">val</span> shift_left : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>shift_left x y</code> shifts <code>x</code> to the left by <code>y</code> bits. The result is unspecified if <code>y < 0</code> or <code>y >= (32 || 63)</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shift_right"><a href="#val-shift_right" class="anchor"></a><code><span><span class="keyword">val</span> shift_right : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>shift_right x y</code> shifts <code>x</code> to the right by <code>y</code> bits. This is an arithmetic shift: the sign bit of <code>x</code> is replicated and inserted in the vacated bits. The result is unspecified if <code>y < 0</code> or <code>y >= (32 || 63)</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shift_right_logical"><a href="#val-shift_right_logical" class="anchor"></a><code><span><span class="keyword">val</span> shift_right_logical : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>shift_right_logical x y</code> shifts <code>x</code> to the right by <code>y</code> bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of <code>x</code> / The result is unspecified if <code>y < 0</code> or <code>y >= (32 || 63)</code>.</p></div></div><div class="odoc-spec"><div class="spec value 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> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Convert the given integer (type <code>int</code> ) to <a href="#type-t"><code>t</code></a>. It's an unsafe function whose semantic is different from architecture.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_int"><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>Convert the given <a href="#type-t"><code>t</code></a> integer to an integer (type <code>int</code> ). On 64-bit platforms, the conversion is exact. On 32-bit platforms, the 32-bit integer is taken modulo 2 <sup>31</sup>, i.e. the high-order bit is lost during the conversion.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_int32"><a href="#val-of_int32" class="anchor"></a><code><span><span class="keyword">val</span> of_int32 : <span>int32 <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Convert the given 32-bit integer (type <code>int32</code>) to <a href="#type-t"><code>t</code></a> integer. It's an unsafe function whose semantic is different from architecture.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_int32"><a href="#val-to_int32" class="anchor"></a><code><span><span class="keyword">val</span> to_int32 : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Convert the given <a href="#type-t"><code>t</code></a> integer to a 32-bit integer.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_int64"><a href="#val-of_int64" class="anchor"></a><code><span><span class="keyword">val</span> of_int64 : <span>int64 <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Convert the given 64-bit integer (type <code>int64</code>) to <a href="#type-t"><code>t</code></a> integer.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_int64"><a href="#val-to_int64" class="anchor"></a><code><span><span class="keyword">val</span> to_int64 : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Covert the given <a href="#type-t"><code>t</code></a> integer to a 64-bit integer.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_float"><a href="#val-of_float" class="anchor"></a><code><span><span class="keyword">val</span> of_float : <span>float <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Convert the given floating-point number to a <a href="#type-t"><code>t</code></a> integer, discarding the fractional part (truncate towards 0). The result of the conversion is undefined if, after truncation, the number is outside the range <a href="#val-min_int"><code>min_int</code></a>, <a href="#val-max_int"><code>max_int</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_float"><a href="#val-to_float" class="anchor"></a><code><span><span class="keyword">val</span> to_float : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Convert the given <a href="#type-t"><code>t</code></a> integer to a floating-point number.</p></div></div><div class="odoc-spec"><div class="spec value 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> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Convert the given string to a <a href="#type-t"><code>t</code></a> integer. The string is read in decimal (by default, or if the string begins with <code>0u</code>) or in hexadecimal, octal or binary if the string begins with <code>0x</code>, <code>0o</code> or <code>0b</code> respectively.</p><p>The <code>0u</code> prefix reads the input as an unsigned integer in the range <code>[0, 2 * max_int + 1]</code>. If the input exceeds <a href="#val-max_int"><code>max_int</code></a> it is converted to the signed integer <code>min_int + input - max_int - 1</code>.</p><p>The <code>_</code> (underscore) character can appear anywhere in the string is ignored. Raise <code>Failure _</code> if the given string is not a valid representation of an integer, or if the integer represented exceeds the range of integer, or if the integer represented exceeds the range of integers representable in type <a href="#type-t"><code>t</code></a>.</p></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><a href="#type-t">t</a> option</span></span></code></div><div class="spec-doc"><p>Same as <code>of_string</code>, but return <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><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Return the string representation of its argument, in decimal.</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>The comparison function for <a href="#type-t"><code>t</code></a> integers, with the same specification as <a href="../../ocaml/Stdlib/index.html#val-compare"><code>Stdlib.compare</code></a>. Along with the type <code>t</code>, this function <code>compare</code> allows the module <code>Optint</code> to be passed as argument to the functors <code>Set.Make</code> and <code>Map.Make</code>.</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 <a href="#type-t"><code>t</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>The pretty-printer for <a href="#type-t"><code>t</code></a>.</p></div></div><h3 id="encoding-functions"><a href="#encoding-functions" class="anchor"></a>Encoding functions</h3><p>Efficient fixed-length big-endian encoding functions for <a href="#type-t"><code>t</code></a> integers:</p><div class="odoc-spec"><div class="spec value anchored" id="val-encode"><a href="#val-encode" class="anchor"></a><code><span><span class="keyword">val</span> encode : <span>bytes <span class="arrow">-></span></span> <span><span class="label">off</span>:int <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-decode"><a href="#val-decode" class="anchor"></a><code><span><span class="keyword">val</span> decode : <span>string <span class="arrow">-></span></span> <span><span class="label">off</span>:int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-encoded_size"><a href="#val-encoded_size" class="anchor"></a><code><span><span class="keyword">val</span> encoded_size : int</span></code></div><div class="spec-doc"><p>The number of bytes in the <a href="#val-encode" title="encode">encoded</a> form of <a href="#type-t"><code>t</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_unsigned_int32"><a href="#val-to_unsigned_int32" class="anchor"></a><code><span><span class="keyword">val</span> to_unsigned_int32 : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int32</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_unsigned_int32"><a href="#val-of_unsigned_int32" class="anchor"></a><code><span><span class="keyword">val</span> of_unsigned_int32 : <span>int32 <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_unsigned_int"><a href="#val-to_unsigned_int" class="anchor"></a><code><span><span class="keyword">val</span> to_unsigned_int : <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 anchored" id="val-of_unsigned_int"><a href="#val-of_unsigned_int" class="anchor"></a><code><span><span class="keyword">val</span> of_unsigned_int : <span>int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Infix"><a href="#module-Infix" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Infix/index.html">Infix</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><h2 id="other-modules"><a href="#other-modules" class="anchor"></a>Other modules</h2><div class="odoc-spec"><div class="spec module anchored" id="module-Conditional"><a href="#module-Conditional" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Conditional/index.html">Conditional</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A conditional type equality, used for revealing that a type <code>t</code> has one of two possible implementation types <code>u</code> and <code>v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_immediate"><a href="#val-is_immediate" class="anchor"></a><code><span><span class="keyword">val</span> is_immediate : <span><span>(<a href="#type-t">t</a>, int, int32)</span> <a href="Conditional/index.html#type-t">Conditional.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Int63"><a href="#module-Int63" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Int63/index.html">Int63</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>63-bit integers.</p></div></div></div></body></html>
|