Floating point, typed #
Positive zero.
Equations
- Cvc.Typed.Term.mkFloatPosZero exp sig = Cvc.Untyped.Term.mkFloatPosZero exp sig
Instances For
Reinterpretation of an IEEE 754 bit pattern of e + s bits as a floating point.
Equations
- Cvc.Typed.Term.fpOfIeeeBv e s bv = Cvc.Untyped.Term.fpOfIeeeBv e s bv
Instances For
Fused multiply-add, computing a * b + c with a single rounding.
Equations
- rm.fpFma a b c = Cvc.Untyped.Term.fpFma rm a b c
Instances For
Conversion between floating-point formats.
Equations
- Cvc.Typed.Term.fpOfFp e s rm fp = Cvc.Untyped.Term.fpOfFp e s rm fp
Instances For
Subtraction.
Equations
- rm.fpSub lft rgt = Cvc.Untyped.Term.fpSub rm lft rgt
Instances For
A floating point assembled from its sign, exponent and significand bits.
The significand bit-vector holds the significand minus its hidden bit, hence the s + 1.
Equations
- sign.fpOfBits exponent significand = Cvc.Untyped.Term.fpOfBits sign exponent significand
Instances For
Rounding to an integral value.
Equations
- rm.fpRti fp = Cvc.Untyped.Term.fpRti rm fp
Instances For
Square root.
Equations
- rm.fpSqrt fp = Cvc.Untyped.Term.fpSqrt rm fp
Instances For
Division.
Equations
- rm.fpDiv lft rgt = Cvc.Untyped.Term.fpDiv rm lft rgt
Instances For
Not-a-number.
Equations
- Cvc.Typed.Term.mkFloatNaN exp sig = Cvc.Untyped.Term.mkFloatNaN exp sig
Instances For
Whether the value is normal.
Equations
Instances For
Addition.
Equations
- rm.fpAdd lft rgt = Cvc.Untyped.Term.fpAdd rm lft rgt
Instances For
Conversion of an unsigned bit-vector to a floating point.
Equations
- Cvc.Typed.Term.fpOfUbv e s rm bv = Cvc.Untyped.Term.fpOfUbv e s rm bv
Instances For
A floating-point literal read from bv, a bit-vector literal of exp + sig bits.
Equations
- Cvc.Typed.Term.mkFloat exp sig bv = Cvc.Untyped.Term.mkFloat exp sig bv
Instances For
Negative zero.
Equations
- Cvc.Typed.Term.mkFloatNegZero exp sig = Cvc.Untyped.Term.mkFloatNegZero exp sig
Instances For
Conversion of a signed bit-vector to a floating point.
Equations
- Cvc.Typed.Term.fpOfSbv e s rm bv = Cvc.Untyped.Term.fpOfSbv e s rm bv
Instances For
Positive infinity.
Equations
- Cvc.Typed.Term.mkFloatPosInf exp sig = Cvc.Untyped.Term.mkFloatPosInf exp sig
Instances For
Whether the value is subnormal.
Equations
Instances For
Conversion of a real to a floating point.
Equations
- Cvc.Typed.Term.fpOfReal e s rm arg = Cvc.Untyped.Term.fpOfReal e s rm arg
Instances For
Conversion of a floating point to a signed bit-vector of the given size.
Unspecified for NaN, an infinity, or a value out of range.
Equations
- Cvc.Typed.Term.fpToSbv size rm fp = Cvc.Untyped.Term.fpToSbv size rm fp
Instances For
Negative infinity.
Equations
- Cvc.Typed.Term.mkFloatNegInf exp sig = Cvc.Untyped.Term.mkFloatNegInf exp sig
Instances For
Multiplication.
Equations
- rm.fpMul lft rgt = Cvc.Untyped.Term.fpMul rm lft rgt
Instances For
Conversion of a floating point to an unsigned bit-vector of the given size.
Unspecified for NaN, an infinity, or a value out of range.
Equations
- Cvc.Typed.Term.fpToUbv size rm fp = Cvc.Untyped.Term.fpToUbv size rm fp
Instances For
Float's operators, taken apart one level, indexed by the sort each produces.
- bool
[Ω]
: OnBool → View.Float Typ.bool
An operator with a result of sort
Bool. - float
[Ω]
(fe fs : Nat)
: OnFloat fe fs → View.Float (Typ.float fe fs)
An operator with a result of sort
Float. - real
[Ω]
: OnRat → View.Float Typ.real
An operator with a result of sort
Rat. - bitVec
[Ω]
(w : Nat)
: OnBitVec w → View.Float (Typ.bitVec w)
An operator with a result of sort
BitVec.
Instances For
Float's operators with a result of sort Float.
- fpAbs
[Ω]
{fe fs : Nat}
(fp : Term (Float fe fs))
: OnFloat fe fs
Absolute value.
- fpNeg
[Ω]
{fe fs : Nat}
(fp : Term (Float fe fs))
: OnFloat fe fs
Negation.
- fpAdd
[Ω]
{fe fs : Nat}
(rm : Term Float.RoundingMode)
(lft rgt : Term (Float fe fs))
: OnFloat fe fs
Addition.
- fpSub
[Ω]
{fe fs : Nat}
(rm : Term Float.RoundingMode)
(lft rgt : Term (Float fe fs))
: OnFloat fe fs
Subtraction.
- fpMul
[Ω]
{fe fs : Nat}
(rm : Term Float.RoundingMode)
(lft rgt : Term (Float fe fs))
: OnFloat fe fs
Multiplication.
- fpDiv
[Ω]
{fe fs : Nat}
(rm : Term Float.RoundingMode)
(lft rgt : Term (Float fe fs))
: OnFloat fe fs
Division.
- fpFma
[Ω]
{fe fs : Nat}
(rm : Term Float.RoundingMode)
(a b c : Term (Float fe fs))
: OnFloat fe fs
Fused multiply-add, computing
a * b + cwith a single rounding. - fpSqrt
[Ω]
{fe fs : Nat}
(rm : Term Float.RoundingMode)
(fp : Term (Float fe fs))
: OnFloat fe fs
Square root.
- fpRti
[Ω]
{fe fs : Nat}
(rm : Term Float.RoundingMode)
(fp : Term (Float fe fs))
: OnFloat fe fs
Rounding to an integral value.
- fpRem
[Ω]
{fe fs : Nat}
(lft rgt : Term (Float fe fs))
: OnFloat fe fs
IEEE 754 remainder,
lft - rgt * qforqthe integer nearestlft / rgt. - fpMin
[Ω]
{fe fs : Nat}
(lft rgt : Term (Float fe fs))
: OnFloat fe fs
Minimum.
- fpMax
[Ω]
{fe fs : Nat}
(lft rgt : Term (Float fe fs))
: OnFloat fe fs
Maximum.
- fpOfBits
[Ω]
{fe fs : Nat}
(s : Nat)
{h0 : s + 1 = fs}
(sign : Term (BitVec 1))
(exponent : Term (BitVec fe))
(significand : Term (BitVec s))
: OnFloat fe fs
A floating point assembled from its sign, exponent and significand bits.
The significand bit-vector holds the significand minus its hidden bit, hence the
s + 1. - fpOfIeeeBv
[Ω]
{fe fs : Nat}
(e s n : Nat)
{h0 : e = fe}
{h1 : s = fs}
(bv : Term (BitVec n))
: OnFloat fe fs
Reinterpretation of an IEEE 754 bit pattern of
e + sbits as a floating point. - fpOfFp
[Ω]
{fe fs : Nat}
(e s ei si : Nat)
{h0 : e = fe}
{h1 : s = fs}
(rm : Term Float.RoundingMode)
(fp : Term (Float ei si))
: OnFloat fe fs
Conversion between floating-point formats.
- fpOfReal
[Ω]
{fe fs : Nat}
(e s : Nat)
{h0 : e = fe}
{h1 : s = fs}
(rm : Term Float.RoundingMode)
(arg : Term Rat)
: OnFloat fe fs
Conversion of a real to a floating point.
- fpOfSbv
[Ω]
{fe fs : Nat}
(e s n : Nat)
{h0 : e = fe}
{h1 : s = fs}
(rm : Term Float.RoundingMode)
(bv : Term (BitVec n))
: OnFloat fe fs
Conversion of a signed bit-vector to a floating point.
- fpOfUbv
[Ω]
{fe fs : Nat}
(e s n : Nat)
{h0 : e = fe}
{h1 : s = fs}
(rm : Term Float.RoundingMode)
(bv : Term (BitVec n))
: OnFloat fe fs
Conversion of an unsigned bit-vector to a floating point.
Instances For
Takes a term apart one level, at its sort, if Float owns its operator and the term's sort fits it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Float's operators with a result of sort Bool.
- fpEq
[Ω]
(e s : Nat)
(lft rgt : Term (Float e s))
: OnBool
Floating-point equality, for which
NaNis not equal to itself and the zeroes are equal. - fpLt
[Ω]
(e s : Nat)
(lft rgt : Term (Float e s))
: OnBool
Less-than.
- fpLe
[Ω]
(e s : Nat)
(lft rgt : Term (Float e s))
: OnBool
Less-than-or-equal-to.
- fpGt
[Ω]
(e s : Nat)
(lft rgt : Term (Float e s))
: OnBool
Greater-than.
- fpGe
[Ω]
(e s : Nat)
(lft rgt : Term (Float e s))
: OnBool
Greater-than-or-equal-to.
- fpIsNormal
[Ω]
(e s : Nat)
(fp : Term (Float e s))
: OnBool
Whether the value is normal.
- fpIsSubnormal
[Ω]
(e s : Nat)
(fp : Term (Float e s))
: OnBool
Whether the value is subnormal.
- fpIsZero
[Ω]
(e s : Nat)
(fp : Term (Float e s))
: OnBool
Whether the value is either zero.
- fpIsInf
[Ω]
(e s : Nat)
(fp : Term (Float e s))
: OnBool
Whether the value is either infinity.
- fpIsNan
[Ω]
(e s : Nat)
(fp : Term (Float e s))
: OnBool
Whether the value is not-a-number.
- fpIsNeg
[Ω]
(e s : Nat)
(fp : Term (Float e s))
: OnBool
Whether the value is negative.
- fpIsPos
[Ω]
(e s : Nat)
(fp : Term (Float e s))
: OnBool
Whether the value is positive.
Instances For
Float's operators with a result of sort BitVec.
- fpToSbv
[Ω]
{w : Nat}
(size e s : Nat)
{h0 : size = w}
(rm : Term Float.RoundingMode)
(fp : Term (Float e s))
: OnBitVec w
Conversion of a floating point to a signed bit-vector of the given size.
Unspecified for NaN, an infinity, or a value out of range.
- fpToUbv
[Ω]
{w : Nat}
(size e s : Nat)
{h0 : size = w}
(rm : Term Float.RoundingMode)
(fp : Term (Float e s))
: OnBitVec w
Conversion of a floating point to an unsigned bit-vector of the given size.
Unspecified for NaN, an infinity, or a value out of range.
Instances For
A rounding-mode value.
Equations
Instances For
Values #
Determine if this term is a floating-point rounding mode value.
Equations
Instances For
Determine if this term is a floating-point value.
Equations
- term.isFloatValue = Cvc.Untyped.Term.isFloatValue term
Instances For
Determine if this term is a floating-point NaN.
Equations
- term.isFloatNaN = Cvc.Untyped.Term.isFloatNaN term
Instances For
Determine if this term is a floating-point positive infinity value (+oo).
Equations
- term.isFloatPosInf = Cvc.Untyped.Term.isFloatPosInf term
Instances For
Determine if this term is a floating-point negative infinity value (-oo).
Equations
- term.isFloatNegInf = Cvc.Untyped.Term.isFloatNegInf term
Instances For
Determine if this term is a floating-point positive zero value (+zero).
Equations
- term.isFloatPosZero = Cvc.Untyped.Term.isFloatPosZero term
Instances For
Determine if this term is a floating-point negative zero value (-zero).
Equations
- term.isFloatNegZero = Cvc.Untyped.Term.isFloatNegZero term
Instances For
The exponent size, significand size and bit pattern of a constant floating-point term.
The pattern, a bit-vector of exp + sig bits, comes back sort-erased.
Equations
Instances For
The rounding mode a term denotes, failing if it denotes none.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
The floating-point term denoting a value.
Instances For
The floating-point value a constant term denotes.
Instances For
Equations
- Cvc.Typed.Term.instSrtLikeFloat = { toToTyp := Cvc.Float.instToTyp, termToValue := fun [Cvc.Ω] => Cvc.Typed.Term.getFloatValue, valueToTerm := fun [Cvc.Ω] => Cvc.Typed.Term.mkFloatValue }