Floating point over nullables, typed #
Each lifted operator has its plain counterpart's signature with an Option around every argument
and around the result, and nothing else changed. The lift is strict: none unless every
argument is some.
A rounding-mode argument becomes nullable along with the rest: fpAdd? takes a
Term (Option Float.RoundingMode), since nullable.lift makes every argument of the lifted
operator nullable and none of them optional.
fpDiv lifted over nullables, strictly: none unless every argument is some.
Equations
- rm.fpDiv? lft rgt = Cvc.Untyped.Term.fpDiv? rm lft rgt
Instances For
fpSub lifted over nullables, strictly: none unless every argument is some.
Equations
- rm.fpSub? lft rgt = Cvc.Untyped.Term.fpSub? rm lft rgt
Instances For
fpAdd lifted over nullables, strictly: none unless every argument is some.
Equations
- rm.fpAdd? lft rgt = Cvc.Untyped.Term.fpAdd? rm lft rgt
Instances For
fpMul lifted over nullables, strictly: none unless every argument is some.
Equations
- rm.fpMul? lft rgt = Cvc.Untyped.Term.fpMul? rm lft rgt
Instances For
fpOfBits lifted over nullables, strictly: none unless every argument is some.
Equations
- sign.fpOfBits? exponent significand = Cvc.Untyped.Term.fpOfBits? sign exponent significand
Instances For
fpFma lifted over nullables, strictly: none unless every argument is some.
Equations
- rm.fpFma? a b c = Cvc.Untyped.Term.fpFma? rm a b c