Module type FloatDomain.FloatArith

type t
val neg : t -> t

Negating a float value: -x

val add : t -> t -> t

Addition: x + y

val sub : t -> t -> t

Subtraction: x - y

val mul : t -> t -> t

Multiplication: x * y

val div : t -> t -> t

Division: x / y

val fmax : t -> t -> t

Maximum

val fmin : t -> t -> t

Minimum

Unary functions

val ceil : t -> t

ceil(x)

val floor : t -> t

floor(x)

val fabs : t -> t

fabs(x)

val acos : t -> t

acos(x)

val asin : t -> t

asin(x)

val atan : t -> t

atan(x)

val cos : t -> t

cos(x)

val sin : t -> t

sin(x)

val tan : t -> t

tan(x)

val sqrt : t -> t

sqrt(x)

val inv_ceil : ?asPreciseAsConcrete:bool -> t -> t

nversions of unary functions

(inv_ceil z -> x) if (z = ceil(x))

val inv_floor : ?asPreciseAsConcrete:bool -> t -> t

(inv_ceil z -> x) if (z = ceil(x))

(inv_floor z -> x) if (z = floor(x))

val inv_fabs : t -> t

(inv_floor z -> x) if (z = floor(x))

(inv_fabs z -> x) if (z = fabs(x))

Comparison operators

val lt : t -> t -> IntDomain.IntDomTuple.t

Less than: x < y

val gt : t -> t -> IntDomain.IntDomTuple.t

Greater than: x > y

val le : t -> t -> IntDomain.IntDomTuple.t

Less than or equal: x <= y

val ge : t -> t -> IntDomain.IntDomTuple.t

Greater than or equal: x >= y

val eq : t -> t -> IntDomain.IntDomTuple.t

Equal to: x == y

val ne : t -> t -> IntDomain.IntDomTuple.t

Not equal to: x != y

val unordered : t -> t -> IntDomain.IntDomTuple.t

Unordered

Unary functions returning int

val isfinite : t -> IntDomain.IntDomTuple.t

__builtin_isfinite(x)

val isinf : t -> IntDomain.IntDomTuple.t

__builtin_isinf(x)

val isnan : t -> IntDomain.IntDomTuple.t

__builtin_isnan(x)

val isnormal : t -> IntDomain.IntDomTuple.t

__builtin_isnormal(x)

val signbit : t -> IntDomain.IntDomTuple.t

__builtin_signbit(x)