Print this page
10882 math headers should stop supporting K&R C
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/head/iso/math_iso.h
+++ new/usr/src/head/iso/math_iso.h
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
13 13 * When distributing Covered Code, include this CDDL HEADER in each
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 21 /*
22 22 * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
23 23 */
24 24 /*
25 25 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
26 26 * Use is subject to license terms.
27 27 */
↓ open down ↓ |
27 lines elided |
↑ open up ↑ |
28 28
29 29 #ifndef _ISO_MATH_ISO_H
30 30 #define _ISO_MATH_ISO_H
31 31
32 32 #include <sys/feature_tests.h>
33 33
34 34 #ifdef __cplusplus
35 35 extern "C" {
36 36 #endif
37 37
38 -#ifndef __P
39 -#ifdef __STDC__
40 -#define __P(p) p
41 -#else
42 -#define __P(p) ()
43 -#endif
44 -#endif /* !defined(__P) */
45 -
46 38 #if !defined(_STDC_C99) && _XOPEN_SOURCE - 0 < 600 && !defined(__C99FEATURES__)
47 39 typedef union _h_val {
48 40 unsigned long _i[sizeof (double) / sizeof (unsigned long)];
49 41 double _d;
50 42 } _h_val;
51 43
52 44 #ifdef __STDC__
53 45 extern const _h_val __huge_val;
54 46 #else
55 47 extern _h_val __huge_val;
56 48 #endif
57 49 #undef HUGE_VAL
58 50 #define HUGE_VAL __huge_val._d
59 51 #endif /* !defined(_STDC_C99) && _XOPEN_SOURCE - 0 < 600 && ... */
60 52
61 53 #if __cplusplus >= 199711L
62 54 namespace std {
63 55 #endif
64 56
65 -extern double acos __P((double));
66 -extern double asin __P((double));
67 -extern double atan __P((double));
68 -extern double atan2 __P((double, double));
69 -extern double cos __P((double));
70 -extern double sin __P((double));
71 -extern double tan __P((double));
72 -
73 -extern double cosh __P((double));
74 -extern double sinh __P((double));
75 -extern double tanh __P((double));
76 -
77 -extern double exp __P((double));
78 -extern double frexp __P((double, int *));
79 -extern double ldexp __P((double, int));
80 -extern double log __P((double));
81 -extern double log10 __P((double));
82 -extern double modf __P((double, double *));
83 -
84 -extern double pow __P((double, double));
85 -extern double sqrt __P((double));
86 -
87 -extern double ceil __P((double));
88 -extern double fabs __P((double));
89 -extern double floor __P((double));
90 -extern double fmod __P((double, double));
57 +extern double acos(double);
58 +extern double asin(double);
59 +extern double atan(double);
60 +extern double atan2(double, double);
61 +extern double cos(double);
62 +extern double sin(double);
63 +extern double tan(double);
64 +
65 +extern double cosh(double);
66 +extern double sinh(double);
67 +extern double tanh(double);
68 +
69 +extern double exp(double);
70 +extern double frexp(double, int *);
71 +extern double ldexp(double, int);
72 +extern double log(double);
73 +extern double log10(double);
74 +extern double modf(double, double *);
75 +
76 +extern double pow(double, double);
77 +extern double sqrt(double);
78 +
79 +extern double ceil(double);
80 +extern double fabs(double);
81 +extern double floor(double);
82 +extern double fmod(double, double);
91 83
92 84 #if defined(__MATHERR_ERRNO_DONTCARE)
93 85 #pragma does_not_read_global_data(acos, asin, atan, atan2)
94 86 #pragma does_not_read_global_data(cos, sin, tan, cosh, sinh, tanh)
95 87 #pragma does_not_read_global_data(exp, log, log10, pow, sqrt)
96 88 #pragma does_not_read_global_data(frexp, ldexp, modf)
97 89 #pragma does_not_read_global_data(ceil, fabs, floor, fmod)
98 90 #pragma does_not_write_global_data(acos, asin, atan, atan2)
99 91 #pragma does_not_write_global_data(cos, sin, tan, cosh, sinh, tanh)
100 92 #pragma does_not_write_global_data(exp, log, log10, pow, sqrt)
101 93 #pragma does_not_write_global_data(ldexp)
102 94 #pragma does_not_write_global_data(ceil, fabs, floor, fmod)
103 95 #pragma no_side_effect(acos, asin, atan, atan2)
104 96 #pragma no_side_effect(cos, sin, tan, cosh, sinh, tanh)
105 97 #pragma no_side_effect(exp, log, log10, pow, sqrt)
106 98 #pragma no_side_effect(ldexp)
107 99 #pragma no_side_effect(ceil, fabs, floor, fmod)
108 100 #endif
109 101
110 102 #if __cplusplus >= 199711L
111 103 extern float __acosf(float);
112 104 extern float __asinf(float);
113 105 extern float __atanf(float);
114 106 extern float __atan2f(float, float);
115 107 extern float __ceilf(float);
116 108 extern float __cosf(float);
117 109 extern float __coshf(float);
118 110 extern float __expf(float);
119 111 extern float __fabsf(float);
120 112 extern float __floorf(float);
121 113 extern float __fmodf(float, float);
122 114 extern float __frexpf(float, int *);
123 115 extern float __ldexpf(float, int);
124 116 extern float __logf(float);
125 117 extern float __log10f(float);
126 118 extern float __modff(float, float *);
127 119 extern float __powf(float, float);
128 120 extern float __sinf(float);
129 121 extern float __sinhf(float);
130 122 extern float __sqrtf(float);
131 123 extern float __tanf(float);
132 124 extern float __tanhf(float);
133 125
134 126 extern long double __acosl(long double);
135 127 extern long double __asinl(long double);
136 128 extern long double __atanl(long double);
137 129 extern long double __atan2l(long double, long double);
138 130 extern long double __ceill(long double);
139 131 extern long double __cosl(long double);
140 132 extern long double __coshl(long double);
141 133 extern long double __expl(long double);
142 134 extern long double __fabsl(long double);
143 135 extern long double __floorl(long double);
144 136 extern long double __fmodl(long double, long double);
145 137 extern long double __frexpl(long double, int *);
146 138 extern long double __ldexpl(long double, int);
147 139 extern long double __logl(long double);
148 140 extern long double __log10l(long double);
149 141 extern long double __modfl(long double, long double *);
150 142 extern long double __powl(long double, long double);
↓ open down ↓ |
50 lines elided |
↑ open up ↑ |
151 143 extern long double __sinl(long double);
152 144 extern long double __sinhl(long double);
153 145 extern long double __sqrtl(long double);
154 146 extern long double __tanl(long double);
155 147 extern long double __tanhl(long double);
156 148
157 149 extern "C++" {
158 150 #undef __X
159 151 #undef __Y
160 152 inline double abs(double __X) { return fabs(__X); }
161 - inline double pow(double __X, int __Y) { return
162 - pow(__X, (double) (__Y)); }
153 +
154 + inline double pow(double __X, int __Y) {
155 + return (pow(__X, (double)(__Y)));
156 + }
163 157
164 158 inline float abs(float __X) { return __fabsf(__X); }
165 159 inline float acos(float __X) { return __acosf(__X); }
166 160 inline float asin(float __X) { return __asinf(__X); }
167 161 inline float atan(float __X) { return __atanf(__X); }
168 162 inline float atan2(float __X, float __Y) { return __atan2f(__X, __Y); }
169 163 inline float ceil(float __X) { return __ceilf(__X); }
170 164 inline float cos(float __X) { return __cosf(__X); }
171 165 inline float cosh(float __X) { return __coshf(__X); }
172 166 inline float exp(float __X) { return __expf(__X); }
173 167 inline float fabs(float __X) { return __fabsf(__X); }
174 168 inline float floor(float __X) { return __floorf(__X); }
175 169 inline float fmod(float __X, float __Y) { return __fmodf(__X, __Y); }
176 170 inline float frexp(float __X, int *__Y) { return __frexpf(__X, __Y); }
177 171 inline float ldexp(float __X, int __Y) { return __ldexpf(__X, __Y); }
178 172 inline float log(float __X) { return __logf(__X); }
179 173 inline float log10(float __X) { return __log10f(__X); }
180 174 inline float modf(float __X, float *__Y) { return __modff(__X, __Y); }
181 175 inline float pow(float __X, float __Y) { return __powf(__X, __Y); }
182 - inline float pow(float __X, int __Y) { return
183 - pow((double) (__X), (double) (__Y)); }
176 +
177 + inline float pow(float __X, int __Y) {
178 + return (pow((double)(__X), (double)(__Y)));
179 + }
180 +
184 181 inline float sin(float __X) { return __sinf(__X); }
185 182 inline float sinh(float __X) { return __sinhf(__X); }
186 183 inline float sqrt(float __X) { return __sqrtf(__X); }
187 184 inline float tan(float __X) { return __tanf(__X); }
188 185 inline float tanh(float __X) { return __tanhf(__X); }
189 186
190 187 inline long double abs(long double __X) { return __fabsl(__X); }
191 188 inline long double acos(long double __X) { return __acosl(__X); }
192 189 inline long double asin(long double __X) { return __asinl(__X); }
193 190 inline long double atan(long double __X) { return __atanl(__X); }
194 - inline long double atan2(long double __X, long double __Y) { return
195 - __atan2l(__X, __Y); }
191 +
192 + inline long double atan2(long double __X, long double __Y) {
193 + return (__atan2l(__X, __Y));
194 + }
195 +
196 196 inline long double ceil(long double __X) { return __ceill(__X); }
197 197 inline long double cos(long double __X) { return __cosl(__X); }
198 198 inline long double cosh(long double __X) { return __coshl(__X); }
199 199 inline long double exp(long double __X) { return __expl(__X); }
200 200 inline long double fabs(long double __X) { return __fabsl(__X); }
201 201 inline long double floor(long double __X) { return __floorl(__X); }
202 - inline long double fmod(long double __X, long double __Y) { return
203 - __fmodl(__X, __Y); }
204 - inline long double frexp(long double __X, int *__Y) { return
205 - __frexpl(__X, __Y); }
206 - inline long double ldexp(long double __X, int __Y) { return
207 - __ldexpl(__X, __Y); }
202 +
203 + inline long double fmod(long double __X, long double __Y) {
204 + return (__fmodl(__X, __Y));
205 + }
206 +
207 + inline long double frexp(long double __X, int *__Y) {
208 + return (__frexpl(__X, __Y));
209 + }
210 +
211 + inline long double ldexp(long double __X, int __Y) {
212 + return (__ldexpl(__X, __Y));
213 + }
214 +
208 215 inline long double log(long double __X) { return __logl(__X); }
209 216 inline long double log10(long double __X) { return __log10l(__X); }
210 - inline long double modf(long double __X, long double *__Y) { return
211 - __modfl(__X, __Y); }
212 - inline long double pow(long double __X, long double __Y) { return
213 - __powl(__X, __Y); }
214 - inline long double pow(long double __X, int __Y) { return
215 - __powl(__X, (long double) (__Y)); }
217 +
218 + inline long double modf(long double __X, long double *__Y) {
219 + return (__modfl(__X, __Y));
220 + }
221 +
222 + inline long double pow(long double __X, long double __Y) {
223 + return (__powl(__X, __Y));
224 + }
225 +
226 + inline long double pow(long double __X, int __Y) {
227 + return (__powl(__X, (long double) (__Y)));
228 + }
229 +
216 230 inline long double sin(long double __X) { return __sinl(__X); }
217 231 inline long double sinh(long double __X) { return __sinhl(__X); }
218 232 inline long double sqrt(long double __X) { return __sqrtl(__X); }
219 233 inline long double tan(long double __X) { return __tanl(__X); }
220 234 inline long double tanh(long double __X) { return __tanhl(__X); }
221 235 } /* end of extern "C++" */
222 236 #endif /* __cplusplus >= 199711L */
223 237
224 238 #if __cplusplus >= 199711L
225 239 } /* end of namespace std */
226 240 #endif
227 241
228 242 #ifdef __cplusplus
229 243 }
230 244 #endif
231 245
232 246 #endif /* _ISO_MATH_ISO_H */
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX