SINCOS
Section: Linux Programmer's Manual (3)
Updated: 20200609
Page Index
NAME
sincos, sincosf, sincosl  calculate sin and cos simultaneously
SYNOPSIS
#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);
Link with lm.
DESCRIPTION
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.
RETURN VALUE
These functions return
void.
ERRORS
See
math_error(7)
for information on how to determine whether an error has occurred
when calling these functions.
The following errors can occur:
 Domain error: x is an infinity

errno
is set to
EDOM
(but see BUGS).
An invalid floatingpoint exception
(FE_INVALID)
is raised.
VERSIONS
These functions first appeared in glibc in version 2.1.
ATTRIBUTES
For an explanation of the terms used in this section, see
attributes(7).
Interface  Attribute  Value

sincos(),
sincosf(),
sincosl()
 Thread safety  MTSafe

CONFORMING TO
These functions are GNU extensions.
NOTES
To see the performance advantage of
sincos(),
it may be necessary to disable
gcc(1)
builtin optimizations, using flags such as:
cc O lm fnobuiltin prog.c
BUGS
Before version 2.22, the glibc implementation did not set
errno
to
EDOM
when a domain error occurred.
SEE ALSO
cos(3),
sin(3),
tan(3)
COLOPHON
This page is part of release 5.07 of the Linux
manpages
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/manpages/.