標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
ISO C |
両方 |
#include <math.h>
double atan(double x);
float atan(float x); /* C++ only */
long double atan(long double x); /* C++ only */
float atanf(float x);
long double atanl(long double x);
double atan2(double y, double x);
float atan2(float y, float x); /* C++ only */
long double atan2(long double y, long double x); /* C++ only */
float atan2f(float y, float x);
long double atan2l(long double y, long double x);
-pi/2 ~ pi/2 ラジアンの範囲の値を戻します。
atan2() 関数は、-pi ~ pi ラジアンの範囲の値を戻します。atan2() の両方の引数がゼロの場合、この関数は errno に EDOM を設定し、0 を戻します。正しい値がアンダーフローの原因になった場合には、ゼロが戻され、ERANGE の値が errno に保管されます。
IEEE の特殊な動作: 正常に実行された場合、atan2() は y/x の逆正接を戻します。
atan2() の両方の引数がゼロの場合、この関数は errno に EDOM を設定し、0 を戻します。その他のエラーは起こりません。
⁄* CELEBA09 *⁄
#include <math.h>
#include <stdio.h>
int main(void)
{
double a,b,c,d;
c = 0.45;
d = 0.23;
a = atan(c);
b = atan2(c,d);
printf("atan( %f ) = %f¥n", c, a);
printf("atan2( %f, %f ) = %f¥n", c, d, b);
}
atan( 0.450000 ) = 0.422854
atan2( 0.450000, 0.230000 ) = 1.098299