TorchLean API

FloatLib.Floats.Formats.Posit.Configured.Trigonometric.Atan2.Proof

Correct rounding of configured posit two-coordinate arctangent #

The configured operations inherit the model's principal-branch rounding and exceptional-value rules for every lawful storage carrier and valid posit width.

@[simp]

Configured arcTan2 refines the model operation.

theorem FloatLib.Floats.ExecFloat.Posit.arcTan2_eq_real {format : Formats.Posit.Format} {plan : Formats.Posit.Configured.StoragePlan format} {code : Type} [ModelCodec plan (Formats.Posit.Model format) code] (x y : ExecFloat (Formats.Posit.Configured.Family format code plan)) {a b : } (hx : toRat? x = some a) (hy : toRat? y = some b) (horigin : ¬(a = 0 b = 0)) :
toModel (arcTan2 x y) = Formats.Posit.Model.RealRounding.round format { re := a, im := b }.arg

Configured arcTan2 rounds the exact principal argument.

Configured arcTan2 propagates a NaR first coordinate.

Configured arcTan2 propagates a NaR second coordinate.

@[simp]

Configured arcTan2Pi refines the model operation.

theorem FloatLib.Floats.ExecFloat.Posit.arcTan2Pi_eq_real {format : Formats.Posit.Format} {plan : Formats.Posit.Configured.StoragePlan format} {code : Type} [ModelCodec plan (Formats.Posit.Model format) code] (x y : ExecFloat (Formats.Posit.Configured.Family format code plan)) {a b : } (hx : toRat? x = some a) (hy : toRat? y = some b) (horigin : ¬(a = 0 b = 0)) :
toModel (arcTan2Pi x y) = Formats.Posit.Model.RealRounding.round format ({ re := a, im := b }.arg / Real.pi)

Configured arcTan2Pi rounds the exact principal argument divided by pi.

Configured arcTan2Pi propagates a NaR first coordinate.

Configured arcTan2Pi propagates a NaR second coordinate.