Module Crlibm

Binding to CRlibm, a library of proved correctly-rounded mathematical functions.

Version: 0.5.1

module type S = sig ... end

Common functions to the four rounding modules below.

Round to the nearest

include S
val exp : float -> float
val expm1 : float -> float

expm1 x returns exp x -. 1. in a way that is accurate even for values of x near zero.

val log : float -> float
val log1p : float -> float

log1p x returns log(x +. 1.) in a way that is accurate even for values of x near zero.

val cos : float -> float
val sin : float -> float
val tan : float -> float
val cospi : float -> float

cospi x returns cos(π·x).

val sinpi : float -> float

sinpi x returns sin(π·x).

val tanpi : float -> float

tanpi x returns tan(π·x).

val asin : float -> float
val acos : float -> float
val atan : float -> float
val asinpi : float -> float

asinpi x returns (asin x)/π ∈ [-0.5, 0.5].

val acospi : float -> float

acospi x returns (acos x)/π ∈ [0., 1.].

val atanpi : float -> float

atanpi x returns (atan x)/π ∈ [-0.5, 0.5].

val cosh : float -> float
val sinh : float -> float
val log2 : float -> float
val log10 : float -> float
val pow : float -> float -> float

pow x y computes x to the power y. Beware that this is not proved to be correctly rounded for all inputs.

Round toward -∞

module RoundDown : S
module Low = RoundDown

Round toward +∞

module RoundUp : S
module High = RoundUp

Round toward zero

module RoundToZero : S
module Zero = RoundToZero