]> git.ipfire.org Git - thirdparty/man-pages.git/blob - man3/sincos.3
iconv.1, ldd.1, locale.1, localedef.1, memusage.1, memusagestat.1, mtrace.1, pldd...
[thirdparty/man-pages.git] / man3 / sincos.3
1 .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
2 .\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
3 .\" <mtk.manpages@gmail.com>
4 .\"
5 .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
6 .\" Distributed under GPL
7 .\" %%%LICENSE_END
8 .\"
9 .TH SINCOS 3 2017-09-15 "GNU" "Linux Programmer's Manual"
10 .SH NAME
11 sincos, sincosf, sincosl \- calculate sin and cos simultaneously
12 .SH SYNOPSIS
13 .nf
14 .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
15 .B #include <math.h>
16 .PP
17 .BI "void sincos(double " x ", double *" sin ", double *" cos );
18 .BI "void sincosf(float " x ", float *" sin ", float *" cos );
19 .BI "void sincosl(long double " x ", long double *" sin ", long double *" cos );
20 .fi
21 .PP
22 Link with \fI\-lm\fP.
23 .SH DESCRIPTION
24 Several applications need sine and cosine of the same angle
25 .IR x .
26 These functions compute both at the same time, and store the results in
27 .I *sin
28 and
29 .IR *cos .
30 Using this function can be more efficient than two separate calls to
31 .BR sin (3)
32 and
33 .BR cos (3).
34 .PP
35 If
36 .I x
37 is a NaN,
38 a NaN is returned in
39 .I *sin
40 and
41 .IR *cos .
42 .PP
43 If
44 .I x
45 is positive infinity or negative infinity,
46 a domain error occurs, and
47 a NaN is returned in
48 .I *sin
49 and
50 .IR *cos .
51 .SH RETURN VALUE
52 These functions return
53 .IR void .
54 .SH ERRORS
55 See
56 .BR math_error (7)
57 for information on how to determine whether an error has occurred
58 when calling these functions.
59 .PP
60 The following errors can occur:
61 .TP
62 Domain error: \fIx\fP is an infinity
63 .\" .I errno
64 .\" is set to
65 .\" .BR EDOM .
66 An invalid floating-point exception
67 .RB ( FE_INVALID )
68 is raised.
69 .PP
70 These functions do not set
71 .IR errno .
72 .\" FIXME . Is it intentional that these functions do not set errno?
73 .\" sin() and cos() also don't set errno; bugs have been raised for
74 .\" those functions.
75 .\" See https://www.sourceware.org/bugzilla/show_bug.cgi?id=15467
76 .SH VERSIONS
77 These functions first appeared in glibc in version 2.1.
78 .SH ATTRIBUTES
79 For an explanation of the terms used in this section, see
80 .BR attributes (7).
81 .TS
82 allbox;
83 lbw30 lb lb
84 l l l.
85 Interface Attribute Value
86 T{
87 .BR sincos (),
88 .BR sincosf (),
89 .BR sincosl ()
90 T} Thread safety MT-Safe
91 .TE
92 .SH CONFORMING TO
93 These functions are GNU extensions.
94 .SH NOTES
95 To see the performance advantage of
96 .BR sincos (),
97 it may be necessary to disable
98 .BR gcc (1)
99 builtin optimizations, using flags such as:
100 .PP
101 .in +4n
102 .EX
103 cc -O \-lm \-fno\-builtin prog.c
104 .EE
105 .in
106 .SH SEE ALSO
107 .BR cos (3),
108 .BR sin (3),
109 .BR tan (3)