マニュアルページ atanpi.3m
名前
trig_sun, sincos, sind, cosd, tand, asind, acosd, atand,
atan2d, sincosd, sinp, cosp, tanp, asinp, acosp, atanp, sin-
cosp, sinpi, cospi, tanpi, asinpi, acospi, atanpi, atan2pi,
sincospi - 三角関数
形式
cc [ flag ... ] file ... -lsunmath -lm [ library ... ]
#include <sunmath.h>
void sincos(double x, double *s, double *c);
double sind(double x);
double cosd(double x);
double tand(double x);
double asind(double x);
double acosd(double x);
double atand(double x);
double atan2d(double y, double x);
void sincosd(double x, double *s, double *c);
double sinpi(double x);
double cospi(double x);
double tanpi(double x);
double asinpi(double x);
double acospi(double x);
double atanpi(double x);
double atan2pi(double y, double x);
void sincospi(double x, double *s, double *c);
double sinp(double x);
double cosp(double x);
double tanp(double x);
double asinp(double x);
double acosp(double x);
double atanp(double x);
void sincosp(double x, double *s, double *c);
機能説明
sincos(x,s,c) を使用すると、 *s:=sin(x) と *c:=cos(x) を同時
に計算することができます。
sind(x)、 cosd(x)、 tand(x) は、度数で表された引数の三角関数
を 返します。 sind(x):= sin(x*pi/180) となります。対応する逆
関数は、 asind(x):= asin(x)*180/pi を計算します。 同 様 に、
atan2d(y,x):= atan2(y,x)*180/pi となります。
sinpi(x)、 cospi(x)、 tanpi(x) を使用すれば、範囲の還元は 問
題 と な りません。なぜならば、これらの関数の定義 sinpi(x):=
sin(pi*x) により、 x の値に関わらず高速で正確な範囲還元処 理
が 可 能 に な る た め で す。 対応する逆関数は asinpi(x):=
asin(x)/pi を 計 算 し ま す。 同 様 に、 atan2pi(y,x):=
atan2(y,x)/pi となります。
sinp(x)、 cosp(x)、 tanp(x) は、絶対値が PI/4 を超える引数を
-PI/4 か ら PI/4 までの範囲に還元する引数還元処理において、
pi/2 を倍精度にしたときの近似値 PI/2 を使用します。この引 数
還 元処理は関数 fmod によって行われます。したがって、pi の本
当の値を使用する場合よりもかなり高速になります。 sinp と sin
との関係は、 sinp(x):= sin(x*pi/PI) のように表すことができま
す。対応する逆関数は asinp(x):= asin(x)*PI/pi で す。 PI/pi
は 1 に近いため、 asin(x) を返すだけです。これと同じことが、
acosp(x) と atanp(x) にも適用されます。
関連項目
asin(3M), acos(3M), atan(3M), atan2(3M), cos(3M), sin(3M),
tan(3M)