std::tan, std::tanf, std::tanl
提供: cppreference.com
ヘッダ <cmath> で定義 | ||
(1) | ||
float tan (float arg ); | ||
float tanf(float arg ); | (C++11以上) | |
double tan (double arg ); | (2) | |
(3) | ||
longdouble tan (longdouble arg ); | ||
longdouble tanl(longdouble arg ); | (C++11以上) | |
double tan ( 整数型 arg ); | (4) | (C++11以上) |
1-3) (ラジアンで測った)
arg
の正接を計算します。目次 |
[編集]引数
arg | - | 浮動小数点または整数型の、ラジアンで角度を表す値 |
[編集]戻り値
エラーが発生しなければ、 arg
の正接 (tan(arg)) が返されます。
| (C++11未満) |
定義域エラーが発生した場合、処理系定義の値 (サポートされていれば NaN) が返されます。
アンダーフローによる値域エラーが発生した場合、 (丸めた後の) 正しい結果が返されます。
[編集]エラー処理
math_errhandling で規定されている通りにエラーが報告されます。
処理系が IEEE 浮動小数点算術 (IEC 60559) をサポートしている場合、
- 引数が ±0 であれば、それが変更されずに返されます。
- 引数が ±∞ であれば、 NaN が返され、 FE_INVALID が発生します。
- 引数が NaN であれば、 NaN が返されます。
[編集]ノート
引数が無限大のケースは C では (そのため C++ でも) 定義域エラーであると規定されていませんが、POSIX では定義域エラーとして定義されています。
この関数は π(1/2 + n) に数学的な極を持ちますが、一般的な浮動小数点表現は π/2 を正確に表現することはできず、そのため極エラーが発生する引数の値はありません。
[編集]例
Run this code
#include <iostream>#include <cmath>#include <cerrno>#include <cfenv> #pragma STDC FENV_ACCESS ONconstdouble pi =std::acos(-1);int main(){// 一般的な使用方法std::cout<<"tan (pi/4) = "<< std::tan( pi/4)<<'\n'// 45 deg.<<"tan(3*pi/4) = "<< std::tan(3*pi/4)<<'\n'// 135 deg<<"tan(5*pi/4) = "<< std::tan(5*pi/4)<<'\n'// -135 deg<<"tan(7*pi/4) = "<< std::tan(7*pi/4)<<'\n';// -45 deg// 特殊な値std::cout<<"tan(+0) = "<< std::tan(0.0)<<'\n'<<"tan(-0) = "<< std::tan(-0.0)<<'\n';// エラー処理std::feclearexcept(FE_ALL_EXCEPT);std::cout<<"tan(INFINITY) = "<< std::tan(INFINITY)<<'\n';if(std::fetestexcept(FE_INVALID))std::cout<<" FE_INVALID raised\n";}
出力例:
tan (pi/4) = 1 tan(3*pi/4) = -1 tan(5*pi/4) = 1 tan(7*pi/4) = -1 tan(+0) = 0 tan(-0) = -0 tan(INFINITY) = -nan FE_INVALID raised
[編集]関連項目
(C++11)(C++11) | 正弦 (sin(x)) を計算します (関数) |
(C++11)(C++11) | 余弦 (cos(x)) を計算します (関数) |
(C++11)(C++11) | 逆正接 (arctan(x)) を計算します (関数) |
複素数の正接 (tan(z)) を計算します (関数テンプレート) | |
valarray の各要素に関数 std::tan を適用します (関数テンプレート) | |
tan の C言語リファレンス |