ATAN2

Section: C Library Functions (3)
索引 jman

BSD mandoc
 

索引

名称

atan2 atan2f - 2 つの変数の逆正接関数  

索引

ライブラリ

Lb libm  

索引

書式

Fd #include <math.h> Ft double Fn atan2 double y double x Ft float Fn atan2f float y float x  

索引

解説

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

 

索引

戻り値

Fn atan2 関数と Fn atan2f 関数は、処理が成功すると、範囲 -words Bq - Ns , + Ns のラジアンで、 Fa y/ Ns Ar x の逆正接を返します。 Fa x と Fa y の両方が 0 の場合、 グローバル変数 errno が Er EDOM に設定されます。 VAX では次のとおりです。

Fn atan2 y x := Ta Fn atan y/x Ta x
> 0 の場合
Ta sign( y )*(
Fn atan \*(Bay/x\*(Ba ) Ta x < 0 の場合
Ta 0 Ta x = y = 0
の場合、
Ta sign( y )*\*(Pi/2 Ta x
= 0 != y の場合

 

索引

関数 Fn atan2 は VAX で ``x > 0 の場合''、 Fn atan2 0 0 = 0 を定義します。以前は Fn atan2 0 0 はエラーメッセージを生成していた 可能性があるにもかかわらずです。 Fn atan2 0 0 に値を割り当てる理由は次のとおりです。

  1. Fn atan2 0 0 の計算を回避するために引数をテストするプログラムは、この値に 無関係である必要があります。これが無効であることを要求するプログラムは、 さまざまなコンピュータシステム上でこれが無効であることに対するさまざまな 反応に対し脆弱です。
  2. Fn atan2 関数は、矩形 (x,y) を、極座標 (r,theta) に変換するために最も良く使用されます。この座標は、 r*cos theta および y = r*sin theta を満たします。 (r,theta) 満たされるのは、(x=0,y=0) が VAX で (r=0,theta=0) にマップされるときです。 一般に、極座標への変換は次のようにして計算する必要があります。
    r       := hypot(x,y); ... := sqrt(x*x+y*y)
    theta   := atan2(y,x)
    
  3. 上記の公式は、 IEEE 754 に準拠するマシンでは符号付きの 0 および無限に、 合理的な方法で、対処しようと変更する必要はありません。そのようなマシン用に 提供されている hypot(3) と Fn atan2 はすべてのケースを処理するよう 設計されています。これがたとえば Fn atan2 ±0 -0 = ± である理由です。一般に、 上記の公式は次のものと同等です。
    r := sqrt(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)

 

索引

規格

Fn atan2 関数は St -isoC に適合しています。


 

索引

Index

名称
ライブラリ
書式
解説
戻り値
関連項目
規格

jman



Time: 07:06:38 GMT, January 12, 2009