<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="Start" href="index.html"> <link rel="previous" href="Filename.html"> <link rel="next" href="Format.html"> <link rel="Up" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Arg" rel="Chapter" href="Arg.html"> <link title="Arg_helper" rel="Chapter" href="Arg_helper.html"> <link title="Array" rel="Chapter" href="Array.html"> <link title="ArrayLabels" rel="Chapter" href="ArrayLabels.html"> <link title="Ast_helper" rel="Chapter" href="Ast_helper.html"> <link title="Ast_invariants" rel="Chapter" href="Ast_invariants.html"> <link title="Ast_iterator" rel="Chapter" href="Ast_iterator.html"> <link title="Ast_mapper" rel="Chapter" href="Ast_mapper.html"> <link title="Asttypes" rel="Chapter" href="Asttypes.html"> <link title="Attr_helper" rel="Chapter" href="Attr_helper.html"> <link title="Bigarray" rel="Chapter" href="Bigarray.html"> <link title="Buffer" rel="Chapter" href="Buffer.html"> <link title="Build_path_prefix_map" rel="Chapter" href="Build_path_prefix_map.html"> <link title="Builtin_attributes" rel="Chapter" href="Builtin_attributes.html"> <link title="Bytes" rel="Chapter" href="Bytes.html"> <link title="BytesLabels" rel="Chapter" href="BytesLabels.html"> <link title="Callback" rel="Chapter" href="Callback.html"> <link title="CamlinternalFormat" rel="Chapter" href="CamlinternalFormat.html"> <link title="CamlinternalFormatBasics" rel="Chapter" href="CamlinternalFormatBasics.html"> <link title="CamlinternalLazy" rel="Chapter" href="CamlinternalLazy.html"> <link title="CamlinternalMod" rel="Chapter" href="CamlinternalMod.html"> <link title="CamlinternalOO" rel="Chapter" href="CamlinternalOO.html"> <link title="Ccomp" rel="Chapter" href="Ccomp.html"> <link title="Char" rel="Chapter" href="Char.html"> <link title="Clflags" rel="Chapter" href="Clflags.html"> <link title="Complex" rel="Chapter" href="Complex.html"> <link title="Condition" rel="Chapter" href="Condition.html"> <link title="Config" rel="Chapter" href="Config.html"> <link title="Consistbl" rel="Chapter" href="Consistbl.html"> <link title="Depend" rel="Chapter" href="Depend.html"> <link title="Digest" rel="Chapter" href="Digest.html"> <link title="Docstrings" rel="Chapter" href="Docstrings.html"> <link title="Dynlink" rel="Chapter" href="Dynlink.html"> <link title="Ephemeron" rel="Chapter" href="Ephemeron.html"> <link title="Event" rel="Chapter" href="Event.html"> <link title="Filename" rel="Chapter" href="Filename.html"> <link title="Float" rel="Chapter" href="Float.html"> <link title="Format" rel="Chapter" href="Format.html"> <link title="Gc" rel="Chapter" href="Gc.html"> <link title="Genlex" rel="Chapter" href="Genlex.html"> <link title="Graphics" rel="Chapter" href="Graphics.html"> <link title="GraphicsX11" rel="Chapter" href="GraphicsX11.html"> <link title="Hashtbl" rel="Chapter" href="Hashtbl.html"> <link title="Identifiable" rel="Chapter" href="Identifiable.html"> <link title="Int32" rel="Chapter" href="Int32.html"> <link title="Int64" rel="Chapter" href="Int64.html"> <link title="Lazy" rel="Chapter" href="Lazy.html"> <link title="Lexer" rel="Chapter" href="Lexer.html"> <link title="Lexing" rel="Chapter" href="Lexing.html"> <link title="List" rel="Chapter" href="List.html"> <link title="ListLabels" rel="Chapter" href="ListLabels.html"> <link title="Location" rel="Chapter" href="Location.html"> <link title="Longident" rel="Chapter" href="Longident.html"> <link title="Map" rel="Chapter" href="Map.html"> <link title="Marshal" rel="Chapter" href="Marshal.html"> <link title="Misc" rel="Chapter" href="Misc.html"> <link title="MoreLabels" rel="Chapter" href="MoreLabels.html"> <link title="Mutex" rel="Chapter" href="Mutex.html"> <link title="Nativeint" rel="Chapter" href="Nativeint.html"> <link title="Numbers" rel="Chapter" href="Numbers.html"> <link title="Obj" rel="Chapter" href="Obj.html"> <link title="Oo" rel="Chapter" href="Oo.html"> <link title="Parse" rel="Chapter" href="Parse.html"> <link title="Parser" rel="Chapter" href="Parser.html"> <link title="Parsetree" rel="Chapter" href="Parsetree.html"> <link title="Parsing" rel="Chapter" href="Parsing.html"> <link title="Pervasives" rel="Chapter" href="Pervasives.html"> <link title="Pparse" rel="Chapter" href="Pparse.html"> <link title="Pprintast" rel="Chapter" href="Pprintast.html"> <link title="Printast" rel="Chapter" href="Printast.html"> <link title="Printexc" rel="Chapter" href="Printexc.html"> <link title="Printf" rel="Chapter" href="Printf.html"> <link title="Profile" rel="Chapter" href="Profile.html"> <link title="Queue" rel="Chapter" href="Queue.html"> <link title="Random" rel="Chapter" href="Random.html"> <link title="Scanf" rel="Chapter" href="Scanf.html"> <link title="Seq" rel="Chapter" href="Seq.html"> <link title="Set" rel="Chapter" href="Set.html"> <link title="Simplif" rel="Chapter" href="Simplif.html"> <link title="Sort" rel="Chapter" href="Sort.html"> <link title="Spacetime" rel="Chapter" href="Spacetime.html"> <link title="Stack" rel="Chapter" href="Stack.html"> <link title="StdLabels" rel="Chapter" href="StdLabels.html"> <link title="Str" rel="Chapter" href="Str.html"> <link title="Stream" rel="Chapter" href="Stream.html"> <link title="String" rel="Chapter" href="String.html"> <link title="StringLabels" rel="Chapter" href="StringLabels.html"> <link title="Strongly_connected_components" rel="Chapter" href="Strongly_connected_components.html"> <link title="Syntaxerr" rel="Chapter" href="Syntaxerr.html"> <link title="Sys" rel="Chapter" href="Sys.html"> <link title="Targetint" rel="Chapter" href="Targetint.html"> <link title="Tbl" rel="Chapter" href="Tbl.html"> <link title="Terminfo" rel="Chapter" href="Terminfo.html"> <link title="Thread" rel="Chapter" href="Thread.html"> <link title="ThreadUnix" rel="Chapter" href="ThreadUnix.html"> <link title="Typemod" rel="Chapter" href="Typemod.html"> <link title="Uchar" rel="Chapter" href="Uchar.html"> <link title="Unix" rel="Chapter" href="Unix.html"> <link title="UnixLabels" rel="Chapter" href="UnixLabels.html"> <link title="Warnings" rel="Chapter" href="Warnings.html"> <link title="Weak" rel="Chapter" href="Weak.html"><title>Float</title> </head> <body> <div class="navbar"><a class="pre" href="Filename.html" title="Filename">Previous</a> <a class="up" href="index.html" title="Index">Up</a> <a class="post" href="Format.html" title="Format">Next</a> </div> <h1>Module <a href="type_Float.html">Float</a></h1> <pre><span id="MODULEFloat"><span class="keyword">module</span> Float</span>: <code class="code"><span class="keyword">sig</span></code> <a href="Float.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info module top"> <div class="info-desc"> <h2 id="1_Floatingpointarithmetic">Floating-point arithmetic</h2> <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 class="code">infinity</code> for <code class="code">1.0 /. 0.0</code>, <code class="code">neg_infinity</code> for <code class="code">-1.0 /. 0.0</code>, and <code class="code">nan</code> ('not a number') for <code class="code">0.0 /. 0.0</code>. These special numbers then propagate through floating-point computations as expected: for instance, <code class="code">1.0 /. infinity</code> is <code class="code">0.0</code>, and any arithmetic operation with <code class="code">nan</code> as argument returns <code class="code">nan</code> as result.</p> </div> <ul class="info-attributes"> <li><b>Since</b> 4.07.0</li> </ul> </div> <hr width="100%"> <pre><span id="VALneg"><span class="keyword">val</span> neg</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Unary negation.</p> </div> </div> <pre><span id="VALadd"><span class="keyword">val</span> add</span> : <code class="type">float -> float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Floating-point addition.</p> </div> </div> <pre><span id="VALsub"><span class="keyword">val</span> sub</span> : <code class="type">float -> float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Floating-point subtraction.</p> </div> </div> <pre><span id="VALmul"><span class="keyword">val</span> mul</span> : <code class="type">float -> float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Floating-point multiplication.</p> </div> </div> <pre><span id="VALdiv"><span class="keyword">val</span> div</span> : <code class="type">float -> float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Floating-point division.</p> </div> </div> <pre><span id="VALrem"><span class="keyword">val</span> rem</span> : <code class="type">float -> float -> float</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">rem a b</code> returns the remainder of <code class="code">a</code> with respect to <code class="code">b</code>. The returned value is <code class="code">a -. n *. b</code>, where <code class="code">n</code> is the quotient <code class="code">a /. b</code> rounded towards zero to an integer.</p> </div> </div> <pre><span id="VALabs"><span class="keyword">val</span> abs</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">abs f</code> returns the absolute value of <code class="code">f</code>.</p> </div> </div> <pre><span id="VALinfinity"><span class="keyword">val</span> infinity</span> : <code class="type">float</code></pre><div class="info "> <div class="info-desc"> <p>Positive infinity.</p> </div> </div> <pre><span id="VALneg_infinity"><span class="keyword">val</span> neg_infinity</span> : <code class="type">float</code></pre><div class="info "> <div class="info-desc"> <p>Negative infinity.</p> </div> </div> <pre><span id="VALnan"><span class="keyword">val</span> nan</span> : <code class="type">float</code></pre><div class="info "> <div class="info-desc"> <p>A special floating-point value denoting the result of an undefined operation such as <code class="code">0.0 /. 0.0</code>. Stands for 'not a number'. Any floating-point operation with <code class="code">nan</code> as argument returns <code class="code">nan</code> as result. As for floating-point comparisons, <code class="code">=</code>, <code class="code"><</code>, <code class="code"><=</code>, <code class="code">></code> and <code class="code">>=</code> return <code class="code"><span class="keyword">false</span></code> and <code class="code"><></code> returns <code class="code"><span class="keyword">true</span></code> if one or both of their arguments is <code class="code">nan</code>.</p> </div> </div> <pre><span id="VALpi"><span class="keyword">val</span> pi</span> : <code class="type">float</code></pre><div class="info "> <div class="info-desc"> <p>The constant pi.</p> </div> </div> <pre><span id="VALmax_float"><span class="keyword">val</span> max_float</span> : <code class="type">float</code></pre><div class="info "> <div class="info-desc"> <p>The largest positive finite value of type <code class="code">float</code>.</p> </div> </div> <pre><span id="VALmin_float"><span class="keyword">val</span> min_float</span> : <code class="type">float</code></pre><div class="info "> <div class="info-desc"> <p>The smallest positive, non-zero, non-denormalized value of type <code class="code">float</code>.</p> </div> </div> <pre><span id="VALepsilon"><span class="keyword">val</span> epsilon</span> : <code class="type">float</code></pre><div class="info "> <div class="info-desc"> <p>The difference between <code class="code">1.0</code> and the smallest exactly representable floating-point number greater than <code class="code">1.0</code>.</p> </div> </div> <pre><span id="VALof_int"><span class="keyword">val</span> of_int</span> : <code class="type">int -> float</code></pre><div class="info "> <div class="info-desc"> <p>Convert an integer to floating-point.</p> </div> </div> <pre><span id="VALto_int"><span class="keyword">val</span> to_int</span> : <code class="type">float -> int</code></pre><div class="info "> <div class="info-desc"> <p>Truncate the given floating-point number to an integer. The result is unspecified if the argument is <code class="code">nan</code> or falls outside the range of representable integers.</p> </div> </div> <pre><span id="VALof_string"><span class="keyword">val</span> of_string</span> : <code class="type">string -> float</code></pre><div class="info "> <div class="info-desc"> <p>Convert the given string to a float. The string is read in decimal (by default) or in hexadecimal (marked by <code class="code">0x</code> or <code class="code">0<span class="constructor">X</span></code>). The format of decimal floating-point numbers is <code class="code"> [-] dd.ddd (e<span class="keywordsign">|</span><span class="constructor">E</span>) [+|-] dd </code>, where <code class="code">d</code> stands for a decimal digit. The format of hexadecimal floating-point numbers is <code class="code"> [-] 0(x<span class="keywordsign">|</span><span class="constructor">X</span>) hh.hhh (p<span class="keywordsign">|</span><span class="constructor">P</span>) [+|-] dd </code>, where <code class="code">h</code> stands for an hexadecimal digit and <code class="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 class="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. Raise <code class="code"><span class="constructor">Failure</span> <span class="string">"float_of_string"</span></code> if the given string is not a valid representation of a float.</p> </div> </div> <pre><span id="VALof_string_opt"><span class="keyword">val</span> of_string_opt</span> : <code class="type">string -> float option</code></pre><div class="info "> <div class="info-desc"> <p>Same as <code class="code">of_string</code>, but returns <code class="code"><span class="constructor">None</span></code> instead of raising.</p> </div> </div> <pre><span id="VALto_string"><span class="keyword">val</span> to_string</span> : <code class="type">float -> string</code></pre><div class="info "> <div class="info-desc"> <p>Return the string representation of a floating-point number.</p> </div> </div> <pre><span id="TYPEfpclass"><span class="keyword">type</span> <code class="type"></code>fpclass</span> = <code class="type"><a href="Pervasives.html#TYPEfpclass">fpclass</a></code> = </pre><table class="typetable"> <tr> <td align="left" valign="top" > <code><span class="keyword">|</span></code></td> <td align="left" valign="top" > <code><span id="TYPEELTfpclass.FP_normal"><span class="constructor">FP_normal</span></span></code></td> <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> <div class="info-desc"> <p>Normal number, none of the below</p> </div> </div> </td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> </tr> <tr> <td align="left" valign="top" > <code><span class="keyword">|</span></code></td> <td align="left" valign="top" > <code><span id="TYPEELTfpclass.FP_subnormal"><span class="constructor">FP_subnormal</span></span></code></td> <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> <div class="info-desc"> <p>Number very close to 0.0, has reduced precision</p> </div> </div> </td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> </tr> <tr> <td align="left" valign="top" > <code><span class="keyword">|</span></code></td> <td align="left" valign="top" > <code><span id="TYPEELTfpclass.FP_zero"><span class="constructor">FP_zero</span></span></code></td> <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> <div class="info-desc"> <p>Number is 0.0 or -0.0</p> </div> </div> </td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> </tr> <tr> <td align="left" valign="top" > <code><span class="keyword">|</span></code></td> <td align="left" valign="top" > <code><span id="TYPEELTfpclass.FP_infinite"><span class="constructor">FP_infinite</span></span></code></td> <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> <div class="info-desc"> <p>Number is positive or negative infinity</p> </div> </div> </td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> </tr> <tr> <td align="left" valign="top" > <code><span class="keyword">|</span></code></td> <td align="left" valign="top" > <code><span id="TYPEELTfpclass.FP_nan"><span class="constructor">FP_nan</span></span></code></td> <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> <div class="info-desc"> <p>Not a number: result of an undefined operation</p> </div> </div> </td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> </tr></table> <div class="info "> <div class="info-desc"> <p>The five classes of floating-point numbers, as determined by the <a href="Float.html#VALclassify_float"><code class="code"><span class="constructor">Float</span>.classify_float</code></a> function.</p> </div> </div> <pre><span id="VALclassify_float"><span class="keyword">val</span> classify_float</span> : <code class="type">float -> <a href="Float.html#TYPEfpclass">fpclass</a></code></pre><div class="info "> <div class="info-desc"> <p>Return the class of the given floating-point number: normal, subnormal, zero, infinite, or not a number.</p> </div> </div> <pre><span id="VALpow"><span class="keyword">val</span> pow</span> : <code class="type">float -> float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Exponentiation.</p> </div> </div> <pre><span id="VALsqrt"><span class="keyword">val</span> sqrt</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Square root.</p> </div> </div> <pre><span id="VALexp"><span class="keyword">val</span> exp</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Exponential.</p> </div> </div> <pre><span id="VALlog"><span class="keyword">val</span> log</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Natural logarithm.</p> </div> </div> <pre><span id="VALlog10"><span class="keyword">val</span> log10</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Base 10 logarithm.</p> </div> </div> <pre><span id="VALexpm1"><span class="keyword">val</span> expm1</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">expm1 x</code> computes <code class="code">exp x -. 1.0</code>, giving numerically-accurate results even if <code class="code">x</code> is close to <code class="code">0.0</code>.</p> </div> </div> <pre><span id="VALlog1p"><span class="keyword">val</span> log1p</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">log1p x</code> computes <code class="code">log(1.0 +. x)</code> (natural logarithm), giving numerically-accurate results even if <code class="code">x</code> is close to <code class="code">0.0</code>.</p> </div> </div> <pre><span id="VALcos"><span class="keyword">val</span> cos</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Cosine. Argument is in radians.</p> </div> </div> <pre><span id="VALsin"><span class="keyword">val</span> sin</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Sine. Argument is in radians.</p> </div> </div> <pre><span id="VALtan"><span class="keyword">val</span> tan</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Tangent. Argument is in radians.</p> </div> </div> <pre><span id="VALacos"><span class="keyword">val</span> acos</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Arc cosine. The argument must fall within the range <code class="code">[-1.0, 1.0]</code>. Result is in radians and is between <code class="code">0.0</code> and <code class="code">pi</code>.</p> </div> </div> <pre><span id="VALasin"><span class="keyword">val</span> asin</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Arc sine. The argument must fall within the range <code class="code">[-1.0, 1.0]</code>. Result is in radians and is between <code class="code">-pi/2</code> and <code class="code">pi/2</code>.</p> </div> </div> <pre><span id="VALatan"><span class="keyword">val</span> atan</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Arc tangent. Result is in radians and is between <code class="code">-pi/2</code> and <code class="code">pi/2</code>.</p> </div> </div> <pre><span id="VALatan2"><span class="keyword">val</span> atan2</span> : <code class="type">float -> float -> float</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">atan2 y x</code> returns the arc tangent of <code class="code">y /. x</code>. The signs of <code class="code">x</code> and <code class="code">y</code> are used to determine the quadrant of the result. Result is in radians and is between <code class="code">-pi</code> and <code class="code">pi</code>.</p> </div> </div> <pre><span id="VALhypot"><span class="keyword">val</span> hypot</span> : <code class="type">float -> float -> float</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">hypot x y</code> returns <code class="code">sqrt(x *. x + y *. y)</code>, that is, the length of the hypotenuse of a right-angled triangle with sides of length <code class="code">x</code> and <code class="code">y</code>, or, equivalently, the distance of the point <code class="code">(x,y)</code> to origin. If one of <code class="code">x</code> or <code class="code">y</code> is infinite, returns <code class="code">infinity</code> even if the other is <code class="code">nan</code>.</p> </div> </div> <pre><span id="VALcosh"><span class="keyword">val</span> cosh</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Hyperbolic cosine. Argument is in radians.</p> </div> </div> <pre><span id="VALsinh"><span class="keyword">val</span> sinh</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Hyperbolic sine. Argument is in radians.</p> </div> </div> <pre><span id="VALtanh"><span class="keyword">val</span> tanh</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Hyperbolic tangent. Argument is in radians.</p> </div> </div> <pre><span id="VALceil"><span class="keyword">val</span> ceil</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Round above to an integer value. <code class="code">ceil f</code> returns the least integer value greater than or equal to <code class="code">f</code>. The result is returned as a float.</p> </div> </div> <pre><span id="VALfloor"><span class="keyword">val</span> floor</span> : <code class="type">float -> float</code></pre><div class="info "> <div class="info-desc"> <p>Round below to an integer value. <code class="code">floor f</code> returns the greatest integer value less than or equal to <code class="code">f</code>. The result is returned as a float.</p> </div> </div> <pre><span id="VALcopysign"><span class="keyword">val</span> copysign</span> : <code class="type">float -> float -> float</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">copysign x y</code> returns a float whose absolute value is that of <code class="code">x</code> and whose sign is that of <code class="code">y</code>. If <code class="code">x</code> is <code class="code">nan</code>, returns <code class="code">nan</code>. If <code class="code">y</code> is <code class="code">nan</code>, returns either <code class="code">x</code> or <code class="code">-. x</code>, but it is not specified which.</p> </div> </div> <pre><span id="VALfrexp"><span class="keyword">val</span> frexp</span> : <code class="type">float -> float * int</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">frexp f</code> returns the pair of the significant and the exponent of <code class="code">f</code>. When <code class="code">f</code> is zero, the significant <code class="code">x</code> and the exponent <code class="code">n</code> of <code class="code">f</code> are equal to zero. When <code class="code">f</code> is non-zero, they are defined by <code class="code">f = x *. 2 ** n</code> and <code class="code">0.5 <= x < 1.0</code>.</p> </div> </div> <pre><span id="VALldexp"><span class="keyword">val</span> ldexp</span> : <code class="type">float -> int -> float</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">ldexp x n</code> returns <code class="code">x *. 2 ** n</code>.</p> </div> </div> <pre><span id="VALmodf"><span class="keyword">val</span> modf</span> : <code class="type">float -> float * float</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">modf f</code> returns the pair of the fractional and integral part of <code class="code">f</code>.</p> </div> </div> <pre><span id="TYPEt"><span class="keyword">type</span> <code class="type"></code>t</span> = <code class="type">float</code> </pre> <div class="info "> <div class="info-desc"> <p>An alias for the type of floating-point numbers.</p> </div> </div> <pre><span id="VALcompare"><span class="keyword">val</span> compare</span> : <code class="type"><a href="Float.html#TYPEt">t</a> -> <a href="Float.html#TYPEt">t</a> -> int</code></pre><div class="info "> <div class="info-desc"> <p><code class="code">compare x y</code> returns <code class="code">0</code> if <code class="code">x</code> is equal to <code class="code">y</code>, a negative integer if <code class="code">x</code> is less than <code class="code">y</code>, and a positive integer if <code class="code">x</code> is greater than <code class="code">y</code>. <code class="code">compare</code> treats <code class="code">nan</code> as equal to itself and less than any other float value. This treatment of <code class="code">nan</code> ensures that <code class="code">compare</code> defines a total ordering relation.</p> </div> </div> <pre><span id="VALequal"><span class="keyword">val</span> equal</span> : <code class="type"><a href="Float.html#TYPEt">t</a> -> <a href="Float.html#TYPEt">t</a> -> bool</code></pre><div class="info "> <div class="info-desc"> <p>The equal function for floating-point numbers, compared using <a href="Float.html#VALcompare"><code class="code"><span class="constructor">Float</span>.compare</code></a>.</p> </div> </div> <pre><span id="VALhash"><span class="keyword">val</span> hash</span> : <code class="type"><a href="Float.html#TYPEt">t</a> -> int</code></pre><div class="info "> <div class="info-desc"> <p>The hash function for floating-point numbers.</p> </div> </div> <pre><span id="MODULEArray"><span class="keyword">module</span> <a href="Float.Array.html">Array</a></span>: <code class="code"><span class="keyword">sig</span></code> <a href="Float.Array.html">..</a> <code class="code"><span class="keyword">end</span></code></pre></body></html>