Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Floating point expressions.
val error : t
an ill-formed term.
ieee754 p x
is |float| s (bitv x)
,
where s = IEEE754.Sort.define p
, and |float|
is the float
operation from the Core Theory.
ieee754_var p x
is var v x
,
where v = Var.define v s
, and s = IEEE754.Sort.define p
.
ieee754_cast p m x
is cast_float s (rmode m) (bitv x)
,
where s = IEEE754.Sort.define p
.
ieee754_cast_signed p m x
is cast_sfloat s (rmode m) (bitv x)
,
where s = IEEE754.Sort.define p
.
ieee754_convert p m x
is fconvert s (rmode m) (float x)
,
where s = IEEE754.Sort.define p
.
fmin m x y
is ite c p q
,
where p = float x
, and q = float y
, and c = forder p q
.
fmax m x y
is ite c q p
,
where p = float x
, and q = float y
, and c = forder p q
.
let_bit s x y
is scoped @@ fun v -> (bool x) (float [y|s->v])
.
Note, the let_bit
rule is not mapped to the let_
term, but instead a scoped fresh variable v
is created and s
is substituted with v
in y
.
let_reg s x y
is scoped @@ fun v -> (bitv x) (float [y|s->v])
.
Note, the let_reg
rule is not mapped to the let_
term, but instead a scoped fresh variable v
is created and s
is substituted with v
in y
.
let_mem s x y
is scoped @@ fun v -> (mem x) (float [y|s->v])
.
Note, the let_mem
rule is not mapped to the let_
term, but instead a scoped fresh variable v
is created and s
is substituted with v
in y
.