Atan2
アイバーソンの記法を用いれば、さらにコンパクトな式が可能:
一見すると条件式のない数式:
atan2  ( y , x ) = sgn  ( x ) 2 arctan  ( y x ) + 1 − sgn  ( x ) 2 ( 1 + sgn  ( y ) − sgn  ( y ) 2 ) π {\displaystyle \operatorname {atan2} (y,x)=\operatorname {sgn}(x)^{2}\arctan \left({\frac {y}{x}}\right)+{\frac {1-\operatorname {sgn}(x)}{2}}\left(1+\operatorname {sgn}(y)-\operatorname {sgn}(y)^{2}\right)\pi }
タンジェントの半角の公式から派生した次の式で atan2 を定義することもできる:
atan2  ( y , x ) = { 2 arctan  ( y x 2 + y 2 + x ) if x > 0 or y ≠ 0 , π if x < 0 and y = 0 , undefined if x = 0 and y = 0.
atan2(アークタンジェント2)は、関数の一種。「2つの引数を取るarctan(アークタンジェント)」という意味である。x軸の正の向きと、点(x, y) (ただし、(0, 0)ではない)まで伸ばした半直線(レイ)との間の、ユークリッド平面上における角度として定義される。関数は atan2  ( y , x ) {\displaystyle \operatorname {atan2} (y,x)} もしくは arctan2  ( y , x ) {\displaystyle \operatorname {arctan2} (y,x)} の形をとり、値はラジアンで返ってくる。
関数 atan2  ( y , x ) {\displaystyle \operatorname {atan2} (y,x)} は、プログラミング言語のFortran (IBM社が1961年に実装したFORTRAN-IV)において最初に登場した。元々は、角度θを直交座標系の(x, y)から極座標系の(r, θ)に変換する際に、正確で一意な値が返ってくることを意図して導入された。また、 atan2  ( y , x ) {\displaystyle \operatorname {atan2} (y,x)} は複素数 x + i y {\displaystyle x+iy} の偏角 (「位相」とも言う)を求める際にも利用される。
atan2 {\displaystyle \operatorname {atan2} } の和は、下記の定理によれば一つの式にまとめることができる。
atan2  ( y 1 , x 1 ) ± atan2  ( y 2 , x 2 ) = atan2  ( y 1 x 2 ± y 2 x 1 , x 1 x 2 ∓ y 1 y 2 ) {\displaystyle \operatorname {atan2} (y_{1},x_{1})\pm \operatorname {atan2} (y_{2},x_{2})=\operatorname {atan2} (y_{1}x_{2}\pm y_{2}x_{1},x_{1}x_{2}\mp y_{1}y_{2})}
...ここで atan2  ( y 1 , x 1 ) ± atan2  ( y 2 , x 2 ) ∈ ( − π , π ] {\displaystyle \operatorname {atan2} (y_{1},x_{1})\pm \operatorname {atan2} (y_{2},x_{2})\in (-\pi ,\pi ]} .
証明には、 y 2 ≠ 0 {\displaystyle y_{2}\neq 0} または x 2 > 0 {\displaystyle x_{2}>0} 、および y 2 = 0 {\displaystyle y_{2}=0} かつ x 2 < 0 {\displaystyle x_{2}<0} の二つのケースにわけて行う必要がある。