sincos, sincosf, sincosl -
正弦と余弦を同時に計算する
#define _GNU_SOURCE /* feature_test_macros(7) 参照 */
#include <math.h>
void sincos(double x, double *sin, double *cos);
void sincosf(float x, float *sin, float *cos);
void sincosl(long double x, long double *sin, long double *cos);
-lm でリンクする。
アプリケーションの中には、同じ角度
x
について正弦と余弦の両方の計算が必要なものがある。
この関数は両者を同時に計算し、その結果を
*sin と
*cos
に格納する。この関数を使うのは、
sin(3) と
cos(3)
の二つの関数を分けて呼び出すより効率的である。
x が NaN の場合、
*sin と
*cos に NaN が返される。
x
が正の無限大か負の無限大の場合、
領域エラー (domain error)
が発生し、
*sin と
*cos
に NaN が返される。
これらの関数は
void
を返す。
これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は
math_error(7) を参照のこと。
以下のエラーが発生する可能性がある。
- 領域エラー (domain error):
x が無限大である
-
errno に EDOM
が設定される
(「バグ」の節も参照)。
不正 (invalid)
浮動小数点例外 (
FE_INVALID) が上がる。
これらの関数は glibc
バージョン 2.1
で初めて登場した。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
sincos(), sincosf(), sincosl() |
Thread safety |
MT-Safe |
これらの関数は GNU
による拡張である。
To see the performance advantage of
sincos(), it may be necessary to
disable
gcc(1) built-in optimizations, using flags such as:
cc -O -lm -fno-builtin prog.c
バージョン 2.22 より前の
glibc の実装では、
領域エラーが発生した際に、
errno に
EDOM
が設定されなかった。
cos(3),
sin(3),
tan(3)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。