sincos, sincosf, sincosl — calculate sin and cos simultaneously
#define _GNU_SOURCE /* See 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) ; |
Note | |
---|---|
Link with |
Several applications need sine and cosine of the same
angle x
. These
functions compute both at the same time, and store the
results in *sin
and
*cos
. Using this
function can be more efficient than two separate calls to
sin(3) and cos(3).
If x
is a NaN, a
NaN is returned in *sin
and *cos
.
If x
is positive
infinity or negative infinity, a domain error occurs, and a
NaN is returned in *sin
and *cos
.
See math_error(7) for information on how to determine whether an error has occurred when calling these functions.
The following errors can occur:
x
is an
infinityerrno
is set to
EDOM (but see BUGS). An
invalid floating-point exception (FE_INVALID
) is raised.
For an explanation of the terms used in this section, see attributes(7).
Interface | Attribute | Value |
sincos (), sincosf (), sincosl () |
Thread safety | MT-Safe |
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
Before version 2.22, the glibc implementation did not set
errno
to EDOM when a domain error occurred.
This page is part of release 5.11 of the Linux man-pages
project. A
description of the project, information about reporting bugs,
and the latest version of this page, can be found at
https://www.kernel.org/doc/man−pages/.
Copyright 2002 Walter Harms (walter.harmsinformatik.uni-oldenburg.de) and Copyright 2008, Linux Foundation, written by Michael Kerrisk <mtk.manpagesgmail.com> %%%LICENSE_START(GPL_NOVERSION_ONELINE) Distributed under GPL %%%LICENSE_END |