atan、atanf、atan2、atan2f

x (atan または atanf) のアークタンジェントを計算します。または y/x (atan2 または atan2f) のアークタンジェントを計算します。

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 
);
float atan2f(
   float y,
   float x
);

パラメーター

  • x, y
    任意の数値。

戻り値

atan は、π/2 ~π/2 ラジアンの範囲で、x のアークタンジェントを返します。 atan2 は、– π~πラジアンの範囲で、y/x のアークタンジェントを返します。 x が 0 の場合、atan は 0 を返します。 atan2 の両方のパラメーターが 0 の場合、この関数は 0 を返します。 結果はすべてラジアン単位です。

atan2 は 2 つのパラメーターの符号を使用し、戻り値のクワドラントを決定します。

入力

SEH 例外

Matherr 例外

± QNAN,IND

[none]

_DOMAIN

解説

atan 関数は、x のアークタンジェントを計算します。 atan2 は、y/x のアークタンジェントを計算します (x が 0 のとき、atan2 は、y が正数の場合はπ/2 を、y が負数の場合は-π/2 を、y が 0 の場合は 0 を返します)。

atan には、SSE2 (Streaming SIMD Extensions 2) を使用する実装があります。 SSE2 実装の使用に関する情報と制限については、「_set_SSE2_enable」を参照してください。

C++ ではオーバーロードが可能であるため、atanatan2 のオーバーロードを呼び出すことができます。 C プログラムでは、atanatan2 は常に倍精度浮動小数点数を受け取り、倍精度浮動小数点数を返します。

必要条件

ルーチン

必須ヘッダー

atan, atan2, atanf, atan2f

<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 関数

参照

参照

浮動小数点サポート

acos、acosf

asin、asinf

cos、cosf、cosh、coshf

_matherr

sin、sinf、sinh、sinhf

tan、tanf、tanh、tanhf

その他の技術情報

_CIatan

_CIatan2