tail head cat sleep
QR code linking to this page

manページ  — ATAN2

名称

atan2, atan2f – 2 つの変数の逆正接関数

内容

ライブラリ

Math Library (libm, -lm)

書式


#include <math.h>
double
atan2(double y, double x);

float
atan2f(float y, float x);

解説

atan2() 関数と atan2f() 関数は、 y/, Ns, Ar, x の逆正接の主値を計算します。その際、 両方の引数の符号を使用して戻り値の象限を判定します。

戻り値

atan2() 関数と atan2f() 関数は、処理が成功すると、範囲 [amp;-π, amp;+π] のラジアンで、 y/, Ns, Ar, x の逆正接を返します。 xy の両方が 0 の場合、 グローバル変数 errnoEDOM に設定されます。 VAX では次のとおりです。
atan2(y, x) :=atan(y/x) x > 0 の場合
sign(y)*(π -atan(|y/x|) x < 0 の場合
0 x = y = 0 の場合、
sign( y)*π/2 x = 0 != y の場合

関数 atan2() VAX で ``x > 0 の場合''、 atan2() 0 = 0 を定義します。以前は atan2() 0 はエラーメッセージを生成していた 可能性があるにもかかわらずです。 atan2() 0 に値を割り当てる理由は次のとおりです。
  1. atan2() 0 の計算を回避するために引数をテストするプログラムは、この値に 無関係である必要があります。これが無効であることを要求するプログラムは、 さまざまなコンピュータシステム上でこれが無効であることに対するさまざまな 反応に対し脆弱です。
  2. atan2() 関数は、矩形 (x,y) を、極座標 (r,theta) (r,θ) に変換するために最も良く使用されます。この座標は、 r*cos theta r*cosθ および y = r*sin theta r*sinθ を満たします。 (r,theta) これらの等式が 満たされるのは、(x=0,y=0) が VAX で (r=0,theta=0)

    (r=0,θ=0) にマップされるときです。 一般に、極座標への変換は次のようにして計算する必要があります。

    r       := hypot(x,y); ... := sqrt(x*x+y*y)
    theta   := atan2(y,x)
    
    r       := hypot(x,y); ... := √(x2+y2)
    theta   := atan2(y,x)
    
    
  3. 上記の公式は、 IEEE 754 に準拠するマシンでは符号付きの 0 および無限に、 合理的な方法で、対処しようと変更する必要はありません。そのようなマシン用に 提供されている hypot(3)atan2() はすべてのケースを処理するよう 設計されています。これがたとえば atan2(&#177;0, -0) = &#177;π である理由です。一般に、 上記の公式は次のものと同等です。
    r := sqrt(x*x+y*y); r =0 の場合は、x := copysign(1,x);
    

    r := √(x*x+y*y);   r =0 の場合は、x := copysign(1,x);

関連項目

acos(3), asin(3), atan(3), cos(3), cosh(3), math(3), sin(3), sinh(3), tan(3), tanh(3)

規格

atan2() 関数は ISO/IEC 9899:1990 ("ISO C90") に適合しています。

ATAN2 (3) May 2, 1991

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

I think Unix and snowflakes are the only two classes of objects in the universe in which no two instances ever match exactly.
— Noel Chiappa