Raw UInt8 kernels for packed posits #
These entry points specialize the shared kernels to UInt8 inputs and outputs. Configured runtime
wrappers use the generic range theorems from FixedWords.Kernels.
Addition and subtraction #
Multiplication and division #
Square root and fused multiply-add #
@[always_inline]
def
FloatLib.Floats.Formats.Posit.Configured.Backend.Byte.sqrtRaw
(format : Format)
(width_le : format.bits ≤ 8)
(value : UInt8)
(hvalue : value.toNat < format.modulus)
:
Raw UInt8 square-root kernel.
Inlining this wrapper exposes the format to the shared root-prefix kernel when the caller's format is known.
Instances For
@[noinline]
def
FloatLib.Floats.Formats.Posit.Configured.Backend.Byte.fmaRaw
(format : Format)
(width_le : format.bits ≤ 8)
(left right addend : UInt8)
(hleft : left.toNat < format.modulus)
(hright : right.toNat < format.modulus)
(haddend : addend.toNat < format.modulus)
:
Raw UInt8 fused multiply-add kernel.