SINCOS(3) | Linux Programmer's Manual | SINCOS(3) |

# NAME

sincos, sincosf, sincosl - calculate sin and cos simultaneously# SYNOPSIS

#define _GNU_SOURCE/* See feature_test_macros(7) */#include <math.h>

void sincos(doublex, double *sin, double *cos);void sincosf(floatx, float *sin, float *cos);void sincosl(long doublex, 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).Interface | Attribute | Value |

sincos (), sincosf (), sincosl () | Thread safety | MT-Safe |

# CONFORMING TO

These functions are GNU extensions.# NOTES

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

# SEE ALSO

cos(3), sin(3), tan(3)# COLOPHON

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

2017-09-15 | GNU |