# SINCOS

NAME

SYNOPSIS

DESCRIPTION

RETURN VALUE

ERRORS

VERSIONS

ATTRIBUTES

CONFORMING TO

NOTES

SEE ALSO

COLOPHON

## 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

An invalid floating-point
exception (**FE_INVALID**) is raised.

These functions
do not set *errno*.

## 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).

## 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 -fno-builtin prog.c

## SEE ALSO

**cos**(3),
**sin**(3), **tan**(3)

## COLOPHON

This page is
part of release 4.15 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/.