]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man3/sincos.3
dlopen.3: tfix
[thirdparty/man-pages.git] / man3 / sincos.3
index 9dc7a107a328032b799426b051b33011519fb7c8..74fb4603fac5357f177c0d4f9dc48748929c547a 100644 (file)
 .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
-.\" Distributed under GPL, 2002-07-27 Walter Harms
+.\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
+.\"     <mtk.manpages@gmail.com>
 .\"
-.TH sincos 3  2004-10-05 "GNU" "Linux Programmer's Manual"
+.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
+.\" Distributed under GPL
+.\" %%%LICENSE_END
+.\"
+.TH SINCOS 3  2017-09-15 "GNU" "Linux Programmer's Manual"
 .SH NAME
 sincos, sincosf, sincosl \- calculate sin and cos simultaneously
 .SH SYNOPSIS
 .nf
+.BR "#define _GNU_SOURCE" "         /* See feature_test_macros(7) */"
 .B #include <math.h>
-.sp
+.PP
 .BI "void sincos(double " x ", double *" sin ", double *" cos );
-.sp
 .BI "void sincosf(float " x ", float *" sin ", float *" cos );
-.sp
 .BI "void sincosl(long double " x ", long double *" sin ", long double *" cos );
 .fi
-.sp
-Link with \-lm.
+.PP
+Link with \fI\-lm\fP.
 .SH DESCRIPTION
 Several applications need sine and cosine of the same angle
 .IR x .
-This function computes both at the same time, and stores the results
-via the given pointers.
-.SH "CONFORMING TO"
-This function is a GNU extension.
-.SH "SEE ALSO"
+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
 .BR cos (3),
 .BR sin (3),
 .BR tan (3)