+These functions compute both at the same time, and store the results in
+.I *sin
+and
+.IR *cos .
+Using this function can be more efficient than two separate calls to
+.BR sin (3)
+and
+.BR cos (3).
+.PP
+If
+.I x
+is a NaN,
+a NaN is returned in
+.I *sin
+and
+.IR *cos .
+.PP
+If
+.I x
+is positive infinity or negative infinity,
+a domain error occurs, and
+a NaN is returned in
+.I *sin
+and
+.IR *cos .
+.SH RETURN VALUE
+These functions return
+.IR void .
+.SH ERRORS
+See
+.BR math_error (7)
+for information on how to determine whether an error has occurred
+when calling these functions.
+.PP
+The following errors can occur:
+.TP
+Domain error: \fIx\fP is an infinity
+.I errno
+is set to
+.BR EDOM
+(but see BUGS).
+An invalid floating-point exception
+.RB ( FE_INVALID )
+is raised.
+.SH VERSIONS
+These functions first appeared in glibc in version 2.1.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw30 lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR sincos (),
+.BR sincosf (),
+.BR sincosl ()
+T} Thread safety MT-Safe
+.TE
+.SH CONFORMING TO
+These functions are GNU extensions.
+.SH NOTES
+To see the performance advantage of
+.BR sincos (),
+it may be necessary to disable
+.BR gcc (1)
+built-in optimizations, using flags such as:
+.PP
+.in +4n
+.EX
+cc -O \-lm \-fno\-builtin prog.c
+.EE
+.in
+.SH BUGS
+Before version 2.22, the glibc implementation did not set
+.\" https://www.sourceware.org/bugzilla/show_bug.cgi?id=15467
+.I errno
+to
+.B EDOM
+when a domain error occurred.
+.SH SEE ALSO