Module type Interval_crlibm.DIRECTED

include Interval_base.DIRECTED with type t = float
type t = float

Type of numbers.

val zero : t

The neutral element for addition.

val one : t

The neutral element for multiplication.

val pi : t

Upper/lower bound on π.

val two_pi : t

Upper/lower bound on 2π.

val half_pi : t

Upper/lower bound on π/2.

val euler : t

Upper/lower bound on Euler's constant.

val float : int -> t

When t = float, the float function is exact on 32 bits machine but not on 64 bits machine with ints larger than 53 bits.

val dist : t -> t -> t

dist x y return the distance between x and y (i.e., |x-y|) rounded up or down according to the module.

  • since 1.6
val (+.) : t -> t -> t
val (-.) : t -> t -> t
val (*.) : t -> t -> t
val (/.) : t -> t -> t
val sqr : t -> t

sqr x returns an upper/lower bound on x².

val cbr : t -> t

cbr x returns an upper/lower bound on x³.

val pow_i : t -> int -> t

pow_i x n return a upper/lower bound on xⁿ.

val sqrt : t -> t

sqrt x return the square root of x rounded up/down.

val hypot : t -> t -> t

hypot x y returns sqrt(x *. x + y *. y) rounded up/down. Returns NaN if any of the arguments is NaN.

include Crlibm.S
val exp : float -> float
val expm1 : float -> float
val log : float -> float
val log1p : float -> float
val cos : float -> float
val sin : float -> float
val tan : float -> float
val cospi : float -> float
val sinpi : float -> float
val tanpi : float -> float
val asin : float -> float
val acos : float -> float
val atan : float -> float
val asinpi : float -> float
val acospi : float -> float
val atanpi : float -> float
val cosh : float -> float
val sinh : float -> float
val log2 : float -> float
val log10 : float -> float
val tanh : t -> t

Hyperbolic tangent. This is not provided by CRlibm but is defined here for usefulness.

module U = I.U