次の方法で共有


atan、atanf、atanl、atan2、atan2f、atan2l

x (atanatanf、および atanl) のアークタンジェントまたは y/x (atan2atan2f、および 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 関数

参照

関連項目

浮動小数点サポート

acos、acosf、acosl

asin、asinf、asinl

cos、cosf、cosl、cosh、coshf、coshl

_matherr

sin、sinf、sinl、sinh、sinhf、sinhl

tan、tanf、tanl、tanh、tanhf、tanhl

_CIatan

_CIatan2