TRIG_SUN(3M)

名前
trig_sun, sincos, sind, cosd, tand, asind, acosd, atand, atan2d, sincosd, sinp, cosp, tanp, asinp, acosp, atanp, sincosp, 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*π/180) となります。 対応する逆関数は、 asind(x):= asin(x)*180/π を計算します。 同様に、 atan2d(y,x):= atan2(y,x)*180/π となります。

sinpi(x)、 cospi(x)、 tanpi(x) を使用すれば、 範囲の還元は問題となりません。なぜならば、これらの関数の定義 sinpi(x):= sin(π*x) により、 x の値に関わらず高速で正確な範囲還元処理が可能になるためです。 対応する逆関数は asinpi(x):= asin(x)/π を計算します。 同様に、 atan2pi(y,x):= atan2(y,x)/π となります。

sinp(x)、 cosp(x)、 tanp(x) は、 絶対値が PI/4 を超える引数を -PI/4 から PI/4 までの範囲に還元する引数還元処理において、 π/2 を倍精度にしたときの近似値 PI/2 を使用します。 この引数還元処理は関数 fmod によって行われます。 したがって、π の本当の値を使用する場合よりもかなり高速になります。 sinp と sin との関係は、 sinp(x):= sin(x*π/PI) のように表すことができます。 対応する逆関数は asinp(x):= asin(x)*PI/π です。 PI/π は 1 に近いため、 asin(x) を返すだけです。 これと同じことが、 acosp(x) と atanp(x) にも適用されます。

関連項目
asin(3M), acos(3M), atan(3M), atan2(3M), cos(3M), sin(3M), tan(3M)