Once-rounded posit squares #
The model square reuses exact dyadic multiplication. The public configured square reuses the selected certified multiplication kernel, including its packed carriers and width-generic fallback. Neither entry point adds a rounding step.
@[inline]
def
FloatLib.Floats.Formats.Posit.Model.square
{format : Format}
(value : Model format)
:
Model format
Square by exact multiplication followed by one standardized posit rounding. NaR propagates.
Instances For
@[inline]
def
FloatLib.Floats.ExecFloat.Posit.square
{format : Formats.Posit.Format}
{plan : Formats.Posit.Configured.StoragePlan format}
{code : Type}
[Backend.PolicyFor (Formats.Posit.Configured.Family format code plan)]
[Mul (Formats.Posit.Configured.Family format code plan)]
(value : ExecFloat (Formats.Posit.Configured.Family format code plan))
:
ExecFloat (Formats.Posit.Configured.Family format code plan)
Square using the selected certified posit multiplication, with one final rounding.
Instances For
theorem
FloatLib.Floats.ExecFloat.Posit.square_eq_mul
{format : Formats.Posit.Format}
{plan : Formats.Posit.Configured.StoragePlan format}
{code : Type}
[Backend.PolicyFor (Formats.Posit.Configured.Family format code plan)]
[Mul (Formats.Posit.Configured.Family format code plan)]
(value : ExecFloat (Formats.Posit.Configured.Family format code plan))
:
Public squaring uses the same certified multiplication call as value * value.
theorem
FloatLib.Floats.ExecFloat.Posit.square_eq_spec
{format : Formats.Posit.Format}
{plan : Formats.Posit.Configured.StoragePlan format}
{code : Type}
[Backend.PolicyFor (Formats.Posit.Configured.Family format code plan)]
[Mul (Formats.Posit.Configured.Family format code plan)]
(value : ExecFloat (Formats.Posit.Configured.Family format code plan))
:
Squaring preserves the selected multiplication capability's reference result.