mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-17 08:06:43 -05:00
4 lines
No EOL
22 KiB
HTML
4 lines
No EOL
22 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Int64 (ocaml.Stdlib.Int64)</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> » Int64</nav><header class="odoc-preamble"><h1>Module <code><span>Stdlib.Int64</span></code></h1><p>64-bit integers.</p><p>This module provides operations on the type <code>int64</code> of signed 64-bit integers. Unlike the built-in <code>int</code> type, the type <code>int64</code> is guaranteed to be exactly 64-bit wide on all platforms. All arithmetic operations over <code>int64</code> are taken modulo 2<sup>64</sup></p><p>Performance notice: values of type <code>int64</code> occupy more memory space than values of type <code>int</code>, and arithmetic operations on <code>int64</code> are generally slower than those on <code>int</code>. Use <code>int64</code> only when the application requires exact 64-bit arithmetic.</p><p>Literals for 64-bit integers are suffixed by L:</p><pre class="language-ocaml"><code>let zero: int64 = 0L
|
||
let one: int64 = 1L
|
||
let m_one: int64 = -1L</code></pre></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 : int64</span></code></div><div class="spec-doc"><p>The 64-bit 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 : int64</span></code></div><div class="spec-doc"><p>The 64-bit 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 : int64</span></code></div><div class="spec-doc"><p>The 64-bit integer -1.</p></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>int64 <span class="arrow">-></span></span> int64</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>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>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>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>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>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>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>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Integer division.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Division_by_zero</span> <p>if the second argument is zero. This division rounds the real quotient of its arguments towards zero, as specified for <a href="../index.html#val-(/)"><code>Stdlib.(/)</code></a>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unsigned_div"><a href="#val-unsigned_div" class="anchor"></a><code><span><span class="keyword">val</span> unsigned_div : <span>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Same as <a href="#val-div"><code>div</code></a>, except that arguments and result are interpreted as <em>unsigned</em> 64-bit integers.</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>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Integer remainder. If <code>y</code> is not zero, the result of <code>Int64.rem x y</code> satisfies the following property: <code>x = Int64.add (Int64.mul (Int64.div x y) y) (Int64.rem x y)</code>. If <code>y = 0</code>, <code>Int64.rem x y</code> raises <code>Division_by_zero</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unsigned_rem"><a href="#val-unsigned_rem" class="anchor"></a><code><span><span class="keyword">val</span> unsigned_rem : <span>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Same as <a href="#val-rem"><code>rem</code></a>, except that arguments and result are interpreted as <em>unsigned</em> 64-bit integers.</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-succ"><a href="#val-succ" class="anchor"></a><code><span><span class="keyword">val</span> succ : <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Successor. <code>Int64.succ x</code> is <code>Int64.add x Int64.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>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Predecessor. <code>Int64.pred x</code> is <code>Int64.sub x Int64.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>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Return the absolute value of 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 : int64</span></code></div><div class="spec-doc"><p>The greatest representable 64-bit integer, 2<sup>63</sup> - 1.</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 : int64</span></code></div><div class="spec-doc"><p>The smallest representable 64-bit integer, -2<sup>63</sup>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-logand"><a href="#val-logand" class="anchor"></a><code><span><span class="keyword">val</span> logand : <span>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Bitwise logical and.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-logor"><a href="#val-logor" class="anchor"></a><code><span><span class="keyword">val</span> logor : <span>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Bitwise logical or.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-logxor"><a href="#val-logxor" class="anchor"></a><code><span><span class="keyword">val</span> logxor : <span>int64 <span class="arrow">-></span></span> <span>int64 <span class="arrow">-></span></span> int64</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>int64 <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Bitwise logical negation.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-shift_left"><a href="#val-shift_left" class="anchor"></a><code><span><span class="keyword">val</span> shift_left : <span>int64 <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p><code>Int64.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 >= 64</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-shift_right"><a href="#val-shift_right" class="anchor"></a><code><span><span class="keyword">val</span> shift_right : <span>int64 <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p><code>Int64.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 >= 64</code>.</p></div></div><div class="odoc-spec"><div class="spec value external 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>int64 <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p><code>Int64.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 >= 64</code>.</p></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> int64</span></code></div><div class="spec-doc"><p>Convert the given integer (type <code>int</code>) to a 64-bit integer (type <code>int64</code>).</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>int64 <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Convert the given 64-bit integer (type <code>int64</code>) to an integer (type <code>int</code>). On 64-bit platforms, the 64-bit integer is taken modulo 2<sup>63</sup>, i.e. the high-order bit is lost during the conversion. On 32-bit platforms, the 64-bit integer is taken modulo 2<sup>31</sup>, i.e. the top 33 bits are lost during the conversion.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unsigned_to_int"><a href="#val-unsigned_to_int" class="anchor"></a><code><span><span class="keyword">val</span> unsigned_to_int : <span>int64 <span class="arrow">-></span></span> <span>int option</span></span></code></div><div class="spec-doc"><p>Same as <a href="#val-to_int"><code>to_int</code></a>, but interprets the argument as an <em>unsigned</em> integer. Returns <code>None</code> if the unsigned value of the argument cannot fit into an <code>int</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-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> int64</span></code></div><div class="spec-doc"><p>Convert the given floating-point number to a 64-bit integer, discarding the fractional part (truncate towards 0). If the truncated floating-point number is outside the range [<a href="#val-min_int"><code>Int64.min_int</code></a>, <a href="#val-max_int"><code>Int64.max_int</code></a>], no exception is raised, and an unspecified, platform-dependent integer is returned.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-to_float"><a href="#val-to_float" class="anchor"></a><code><span><span class="keyword">val</span> to_float : <span>int64 <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Convert the given 64-bit integer to a floating-point number.</p></div></div><div class="odoc-spec"><div class="spec value external 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> int64</span></code></div><div class="spec-doc"><p>Convert the given 32-bit integer (type <code>int32</code>) to a 64-bit integer (type <code>int64</code>).</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-to_int32"><a href="#val-to_int32" class="anchor"></a><code><span><span class="keyword">val</span> to_int32 : <span>int64 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Convert the given 64-bit integer (type <code>int64</code>) to a 32-bit integer (type <code>int32</code>). The 64-bit integer is taken modulo 2<sup>32</sup>, i.e. the top 32 bits are lost during the conversion.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-of_nativeint"><a href="#val-of_nativeint" class="anchor"></a><code><span><span class="keyword">val</span> of_nativeint : <span>nativeint <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Convert the given native integer (type <code>nativeint</code>) to a 64-bit integer (type <code>int64</code>).</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-to_nativeint"><a href="#val-to_nativeint" class="anchor"></a><code><span><span class="keyword">val</span> to_nativeint : <span>int64 <span class="arrow">-></span></span> nativeint</span></code></div><div class="spec-doc"><p>Convert the given 64-bit integer (type <code>int64</code>) to a native integer. On 32-bit platforms, the 64-bit integer is taken modulo 2<sup>32</sup>. On 64-bit platforms, the conversion is exact.</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> int64</span></code></div><div class="spec-doc"><p>Convert the given string to a 64-bit 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*Int64.max_int+1]</code>. If the input exceeds <a href="#val-max_int"><code>Int64.max_int</code></a> it is converted to the signed integer <code>Int64.min_int + input - Int64.max_int - 1</code>.</p><p>The <code>_</code> (underscore) character can appear anywhere in the string and is ignored.</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 an integer, or if the integer represented exceeds the range of integers representable in type <code>int64</code>.</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>int64 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><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.05</li></ul></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>int64 <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 external anchored" id="val-bits_of_float"><a href="#val-bits_of_float" class="anchor"></a><code><span><span class="keyword">val</span> bits_of_float : <span>float <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p>Return the internal representation of the given float according to the IEEE 754 floating-point 'double format' bit layout. Bit 63 of the result represents the sign of the float; bits 62 to 52 represent the (biased) exponent; bits 51 to 0 represent the mantissa.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-float_of_bits"><a href="#val-float_of_bits" class="anchor"></a><code><span><span class="keyword">val</span> float_of_bits : <span>int64 <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Return the floating-point number whose internal representation, according to the IEEE 754 floating-point 'double format' bit layout, is the given <code>int64</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> = int64</span></code></div><div class="spec-doc"><p>An alias for the type of 64-bit integers.</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 64-bit integers, with the same specification as <a href="../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>Int64</code> to be passed as argument to the functors <a href="../Set/Make/index.html"><code>Set.Make</code></a> and <a href="../Map/Make/index.html"><code>Map.Make</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unsigned_compare"><a href="#val-unsigned_compare" class="anchor"></a><code><span><span class="keyword">val</span> unsigned_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>Same as <a href="#val-compare"><code>compare</code></a>, except that arguments are interpreted as <em>unsigned</em> 64-bit integers.</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-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 int64s.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.03.0</li></ul></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>Return the smaller of the two arguments.</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 anchored" id="val-max"><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>Return the greater of the two arguments.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div></div></body></html> |