package ocaml_intrinsics

  1. Overview
  2. Docs

Module Ocaml_intrinsics.FloatSource

Sourceval iround_half_to_even : float -> int64

Rounds a float to an int64 using the current rounding mode. The default rounding mode is "round half to even", and we expect that no program will change the rounding mode.

If the argument is NaN or infinite or if the rounded value cannot be represented, then the result is unspecified.

On an x86-64 machine, this compiles to cvtsd2si rax, xmm0. On ARM, this calls a C implementation.

Sourceval min : float -> float -> float

Equivalent to if x < y then x else y.

On an x86-64 machine, this compiles to minsd xmm0, xmm1. On ARM, this calls a C implementation.

Sourceval max : float -> float -> float

Equivalent to if x > y then x else y.

On an x86-64 machine, this compiles to maxsd xmm0, xmm1. On ARM, this calls a C implementation.

Sourceval round_half_to_even : float -> float

Rounds a float to an integer float using the current rounding mode. The default rounding mode is "round half to even", and we expect that no program will change the rounding mode.

On an x86-64 machine, this compiles to roundsd xmm0, xmm1, $12. Requires SSE4.1. On ARM, this calls a C implementation.

Rounds a float to an integer float using the mode specified in the function name.

On an x86-64 machine, these compile to roundsd xmm0, xmm1, $N. Requires SSE4.1. On ARM, these call a C implementation.

Sourceval round_down : float -> float
Sourceval round_up : float -> float
Sourceval round_towards_zero : float -> float
Sourceval round_nearest : float -> float
OCaml

Innovation. Community. Security.