atan、atanf、atanl、atan2、atan2f、atan2l
x (atan、atanf、および atanl) のアークタンジェントまたは y/x (atan2、atan2f、および atan2l) のアークタンジェントを計算します。
double atan(
double x
);
float atan(
float x
); // C++ only
long double atan(
long double x
); // C++ only
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 atanf(
float x
);
long double atanl(
long double x
);
float atan2f(
float y,
float x
);
long double atan2l(
long double y,
long double x
);
パラメーター
- x, y
任意の数値。
戻り値
atan は、–π/2 ~ π/2 ラジアンの範囲で x のアークタンジェントを返します。 atan2 は、–π ~ π ラジアンの範囲で y/x のアークタンジェントを返します。 x が 0 の場合、atan は 0 を返します。 atan2 のパラメーターが両方とも 0 の場合、関数は 0 を返します。 すべての結果はラジアンにあります。
atan2 は、両方のパラメーターの符号を使用して、戻り値のクアドラントを判断します。
入力 |
SEH 例外 |
Matherr 例外 |
---|---|---|
± QNAN,IND |
なし |
_DOMAIN |
解説
atan 関数は、x のアークタンジェント (逆タンジェント関数) を計算します。 atan2 は y/x のアークタンジェントを計算します (x が 0 と等しい場合、atan2 は π/2 (y が正の場合)、-π/2 (y が負の場合)、または 0 (y が 0 の場合) をそれぞれ返します)。
atan には、ストリーミング SIMD 拡張機能 (SSE2) を使用して実装されています。 SSE2 実装の使い方の詳細および制約については、「_set_SSE2_enable」を参照してください。
C++ ではオーバーロードが可能であるため、atan および atan2 のオーバーロードを呼び出すことができます。 C プログラムでは、atan および atan2 は、常に double を受け取って返します。
必要条件
ルーチン |
必須ヘッダー |
---|---|
atan, atan2, atanf, atan2f, atanl, atan2l |
<math.h> |
使用例
// crt_atan.c
// arguments: 5 0.5
#include <math.h>
#include <stdio.h>
#include <errno.h>
int main( int ac, char* av[] )
{
double x, y, theta;
if( ac != 3 ){
fprintf( stderr, "Usage: %s <x> <y>\n", av[0] );
return 1;
}
x = atof( av[1] );
theta = atan( x );
printf( "Arctangent of %f: %f\n", x, theta );
y = atof( av[2] );
theta = atan2( y, x );
printf( "Arctangent of %f / %f: %f\n", y, x, theta );
return 0;
}
同等の .NET Framework 関数
参照
関連項目
cos、cosf、cosl、cosh、coshf、coshl
sin、sinf、sinl、sinh、sinhf、sinhl