atan2 : THEORY %----------------------------------------------------------------------------- % atan2(x,y) % ---- % - defines two-argument inverse tangent (arctangent): atan2 % % %----------------------------------------------------------------------------- BEGIN
IMPORTING atan
x,y,
w,z : VAR real
a : VAR {z:nnreal| z < 2*pi}
nz : VAR negreal
pz : VAR posreal
%% Arc tangent of y/x taking into in account quadrants and indefinitions %% Polar angle of x + yI.
atan2(x:real,y:{z:real|x=0 => z/=0}): real
= IF x > 0THENIF y >= 0THEN atan(y/x) ELSE2*pi+atan(y/x) ENDIF ELSIF x = 0THENIF y > 0THEN pi/2ELSE3*pi/2ENDIF ELSE pi + atan(y/x) ENDIF
atan2_0_2pi : LEMMA
(x /= 0OR y /= 0) IMPLIES
(((x>=0AND y>=0) => (0 <= atan2(x,y) AND atan2(x,y) <= pi/2)) AND
((x< 0AND y>=0) => (pi/2 < atan2(x,y) AND atan2(x,y) <= pi)) AND
((x< 0AND y< 0) => (pi < atan2(x,y) AND atan2(x,y) < 3*pi/2)) AND
((x>=0AND y< 0) => (3*pi/2 <= atan2(x,y) AND atan2(x,y) < 2*pi)))
atan2_swap_zero : LEMMA
(x = 0AND y /= 0IMPLIES
atan2(x,y) = atan2(y,x) + pi/2) AND
(y = 0AND x /= 0IMPLIES
atan2(x,y) = atan2(y,x) - pi/2)
atan2_cos_sin : AXIOM
atan2(cos(a),sin(a)) = a
sin_atan2 : AXIOM
(x /= 0OR y /= 0) IMPLIES
sin(atan2(x,y)) = IF x=0THEN IF y > 0THEN1ELSE -1ENDIF ELSE LET yx = y/x IN LET r = yx/sqrt((sq(yx)+1)) IN IF x > 0THEN r ELSE -r ENDIF ENDIF
cos_atan2 : AXIOM
(x /= 0OR y /= 0) IMPLIES
cos(atan2(x,y)) = IF x = 0THEN0 ELSE LET yx = y/x IN IF x > 0THEN1/sqrt((sq(yx)+1)) ELSE -1/sqrt((sq(yx)+1)) ENDIF ENDIF
END atan2
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.9Bemerkung:
(vorverarbeitet am 2026-06-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.