名前空間
変種
操作

std::atan, std::atanf, std::atanl

From cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
 
ヘッダー <cmath> で定義
(1)
float       atan ( float num );

double      atan ( double num );

long double atan ( long double num );
(C++23まで)
/*浮動小数点数型*/
            atan ( /*浮動小数点型*/ num );
(C++23から)
(C++26 以降 constexpr)
float       atanf( float num );
(2) (C++11以降)
(C++26 以降 constexpr)
long double atanl( long double num );
(3) (C++11以降)
(C++26 以降 constexpr)
ヘッダー <simd> で定義
template< /*math-floating-point*/ V >

constexpr /*deduced-simd-t*/<V>

            atan ( const V& v_num );
(S) (C++26以降)
ヘッダー <cmath> で定義
template< class Integer >
double      atan ( Integer num );
(A) (C++26 以降 constexpr)
1-3) num のアークタンジェントの主値を計算する。ライブラリは、パラメータの型としてすべての cv-unqualified 浮動小数点型に対する std::atan のオーバーロードを提供する。(C++23以降)
S) SIMD オーバーロードは、v_num に対して要素ごとの std::atan を実行する。
(定義については、math-floating-point および deduced-simd-t を参照してください。)
(C++26以降)
A) すべての整数型に対する追加のオーバーロードが提供されます。これらは double として扱われます。
(C++11以降)

目次

[編集] パラメータ

num - 浮動小数点数または整数値

[編集] 戻り値

エラーが発生しなかった場合、num のアークタンジェント (arctan(num)) をラジアン単位で [-
π
2
, +
π
2
]
の範囲で返す。

アンダーフローによる範囲エラーが発生した場合、正確な結果 (丸め後) が返される。

[編集] エラー処理

エラーは math_errhandling で指定された通りに報告される。

実装がIEEE浮動小数点算術 (IEC 60559) をサポートしている場合、

  • 引数が ±0 の場合、引数は変更されずに返されます。
  • 引数が +∞ の場合、+π/2 を返す。
  • 引数が -∞ の場合、-π/2 を返す。
  • 引数が NaN の場合、NaN が返されます。

[編集] 注記

POSIX では、アンダーフローの場合、num は変更されずに返され、それがサポートされない場合は、実装定義の値(DBL_MINFLT_MIN、および LDBL_MIN 以下の値)が返されることが指定されている。

追加のオーバーロードは、(A) とまったく同じように提供される必要はない。整数型の引数 num に対して、std::atan(num)std::atan(static_cast<double>(num)) と同じ効果を持つことを保証するのに十分であればよい。

[編集]

#include <cmath>
#include <iostream>
 
int main()
{
    std::cout << "atan(1) = " << std::atan(1) << '\n'
              << "4*atan(1) = " << 4 * std::atan(1) << '\n';
 
    // special values
    std::cout << "atan(Inf) = " << std::atan(INFINITY) << '\n'
              << "2*atan(Inf) = " << 2 * std::atan(INFINITY) << '\n'
              << "atan(-0.0) = " << std::atan(-0.0) << '\n'
              << "atan(+0.0) = " << std::atan(0) << '\n';
}

出力

atan(1) = 0.785398
4*atan(1) = 3.14159
atan(Inf) = 1.5708
2*atan(Inf) = 3.14159
atan(-0.0) = -0
atan(+0.0) = 0

[編集] 関連項目

(C++11)(C++11)
逆正弦を計算する (arcsin(x))
(関数) [編集]
(C++11)(C++11)
逆余弦を計算する (arccos(x))
(関数) [編集]
(C++11)(C++11)
符号を用いて象限を決定する逆正接
(関数) [編集]
(C++11)(C++11)
正接を計算する (tan(x))
(関数) [編集]
複素数の逆正接 (アークタンジェント) を計算する (arctan(z))
(関数テンプレート) [編集]
valarray の各要素に関数 std::atan を適用する
(function template) [編集]
English 日本語 中文(简体) 中文(繁體)