Packed two-limb operation boundaries #
These small executable combinators centralize propagation of the unique Posit Standard NaR
condition after packed operands have been decoded. Range and semantic refinement laws live in
Boundary.Proof.
@[inline]
def
FloatLib.Floats.Formats.Posit.Model.NativeLimbPacked.Boundary.unaryResult
{α : Type}
(narResult : α)
(operation : Numerics.Dyadic → α)
(value : Option Numerics.Dyadic)
:
α
Select a unary result, returning narResult when the decoded input is NaR.
Instances For
@[inline]
def
FloatLib.Floats.Formats.Posit.Model.NativeLimbPacked.Boundary.binaryResult
{α : Type}
(narResult : α)
(operation : Numerics.Dyadic → Numerics.Dyadic → α)
(left right : Option Numerics.Dyadic)
:
α
Select a binary result, returning narResult when either decoded input is NaR.
Instances For
@[inline]
def
FloatLib.Floats.Formats.Posit.Model.NativeLimbPacked.Boundary.ternaryResult
{α : Type}
(narResult : α)
(operation : Numerics.Dyadic → Numerics.Dyadic → Numerics.Dyadic → α)
(left right third : Option Numerics.Dyadic)
:
α
Select a ternary result, returning narResult when any decoded input is NaR.
Instances For
@[inline]
def
FloatLib.Floats.Formats.Posit.Model.NativeLimbPacked.Boundary.unaryCode
(narCode : ℕ)
(operation : Numerics.Dyadic → ℕ)
(value : Option Numerics.Dyadic)
:
Apply a finite unary code kernel, returning narCode for NaR.
Instances For
@[inline]
def
FloatLib.Floats.Formats.Posit.Model.NativeLimbPacked.Boundary.binaryCode
(narCode : ℕ)
(operation : Numerics.Dyadic → Numerics.Dyadic → ℕ)
(left right : Option Numerics.Dyadic)
:
Apply a finite binary code kernel, returning narCode if either input is NaR.
Instances For
@[inline]
def
FloatLib.Floats.Formats.Posit.Model.NativeLimbPacked.Boundary.ternaryCode
(narCode : ℕ)
(operation : Numerics.Dyadic → Numerics.Dyadic → Numerics.Dyadic → ℕ)
(left right third : Option Numerics.Dyadic)
:
Apply a finite ternary code kernel, returning narCode if any input is NaR.