1*25c28e83SPiotr Jasiukajtis /*
2*25c28e83SPiotr Jasiukajtis  * CDDL HEADER START
3*25c28e83SPiotr Jasiukajtis  *
4*25c28e83SPiotr Jasiukajtis  * The contents of this file are subject to the terms of the
5*25c28e83SPiotr Jasiukajtis  * Common Development and Distribution License (the "License").
6*25c28e83SPiotr Jasiukajtis  * You may not use this file except in compliance with the License.
7*25c28e83SPiotr Jasiukajtis  *
8*25c28e83SPiotr Jasiukajtis  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*25c28e83SPiotr Jasiukajtis  * or http://www.opensolaris.org/os/licensing.
10*25c28e83SPiotr Jasiukajtis  * See the License for the specific language governing permissions
11*25c28e83SPiotr Jasiukajtis  * and limitations under the License.
12*25c28e83SPiotr Jasiukajtis  *
13*25c28e83SPiotr Jasiukajtis  * When distributing Covered Code, include this CDDL HEADER in each
14*25c28e83SPiotr Jasiukajtis  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*25c28e83SPiotr Jasiukajtis  * If applicable, add the following below this CDDL HEADER, with the
16*25c28e83SPiotr Jasiukajtis  * fields enclosed by brackets "[]" replaced with your own identifying
17*25c28e83SPiotr Jasiukajtis  * information: Portions Copyright [yyyy] [name of copyright owner]
18*25c28e83SPiotr Jasiukajtis  *
19*25c28e83SPiotr Jasiukajtis  * CDDL HEADER END
20*25c28e83SPiotr Jasiukajtis  */
21*25c28e83SPiotr Jasiukajtis /*
22*25c28e83SPiotr Jasiukajtis  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
23*25c28e83SPiotr Jasiukajtis  */
24*25c28e83SPiotr Jasiukajtis /*
25*25c28e83SPiotr Jasiukajtis  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
26*25c28e83SPiotr Jasiukajtis  * Use is subject to license terms.
27*25c28e83SPiotr Jasiukajtis  */
28*25c28e83SPiotr Jasiukajtis 
29*25c28e83SPiotr Jasiukajtis #ifndef _C_LIBM_PROTOS_H
30*25c28e83SPiotr Jasiukajtis #define	_C_LIBM_PROTOS_H
31*25c28e83SPiotr Jasiukajtis 
32*25c28e83SPiotr Jasiukajtis #ifdef LIBMOPT_BUILD
33*25c28e83SPiotr Jasiukajtis #define	_TBL_cos	__libmopt_TBL_cos
34*25c28e83SPiotr Jasiukajtis #define	_TBL_exp2_512	__libmopt_TBL_exp2_512
35*25c28e83SPiotr Jasiukajtis #define	_TBL_ipio2_inf	__libmopt_TBL_ipio2_inf
36*25c28e83SPiotr Jasiukajtis #define	_TBL_jlog_n1	__libmopt_TBL_jlog_n1
37*25c28e83SPiotr Jasiukajtis #define	_TBL_jlog_n2	__libmopt_TBL_jlog_n2
38*25c28e83SPiotr Jasiukajtis #define	_TBL_jlog_p1	__libmopt_TBL_jlog_p1
39*25c28e83SPiotr Jasiukajtis #define	_TBL_jlog_p2	__libmopt_TBL_jlog_p2
40*25c28e83SPiotr Jasiukajtis #define	_TBL_log10	__libmopt_TBL_log10
41*25c28e83SPiotr Jasiukajtis #define	_TBL_log2_14	__libmopt_TBL_log2_14
42*25c28e83SPiotr Jasiukajtis #define	_TBL_log2_9	__libmopt_TBL_log2_9
43*25c28e83SPiotr Jasiukajtis #define	_TBL_sin	__libmopt_TBL_sin
44*25c28e83SPiotr Jasiukajtis #define	_TBL_sincosx	__libmopt_TBL_sincosx
45*25c28e83SPiotr Jasiukajtis #define	_TBL_xexp	__libmopt_TBL_xexp
46*25c28e83SPiotr Jasiukajtis #define	_TBL_xlog	__libmopt_TBL_xlog
47*25c28e83SPiotr Jasiukajtis #define	__k_cos_	__libmopt__k_cos_
48*25c28e83SPiotr Jasiukajtis #define	__k_sin_	__libmopt__k_sin_
49*25c28e83SPiotr Jasiukajtis #define	__k_sincos_	__libmopt__k_sincos_
50*25c28e83SPiotr Jasiukajtis #define	__reduction	__libmopt__reduction
51*25c28e83SPiotr Jasiukajtis #define	__rem_pio2	__libmopt__rem_pio2
52*25c28e83SPiotr Jasiukajtis #define	__rem_pio2m	__libmopt__rem_pio2m
53*25c28e83SPiotr Jasiukajtis #else	/* defined(LIBMOPT_BUILD) */
54*25c28e83SPiotr Jasiukajtis #ifdef LIBM_BUILD
55*25c28e83SPiotr Jasiukajtis #define	_SVID_libm_err	__libm_SVID_libm_err	/* not used by -lsunmath */
56*25c28e83SPiotr Jasiukajtis #define	_TBL_atan	__libm_TBL_atan
57*25c28e83SPiotr Jasiukajtis #define	_TBL_atan1	__libm_TBL_atan1
58*25c28e83SPiotr Jasiukajtis #define	_TBL_atan_hi	__libm_TBL_atan_hi	/* not used by -lsunmath */
59*25c28e83SPiotr Jasiukajtis #define	_TBL_atan_lo	__libm_TBL_atan_lo	/* not used by -lsunmath */
60*25c28e83SPiotr Jasiukajtis #define	_TBL_exp2_hi	__libm_TBL_exp2_hi	/* not used by -lsunmath */
61*25c28e83SPiotr Jasiukajtis #define	_TBL_exp2_lo	__libm_TBL_exp2_lo	/* not used by -lsunmath */
62*25c28e83SPiotr Jasiukajtis #define	_TBL_ipio2_inf	__libm_TBL_ipio2_inf
63*25c28e83SPiotr Jasiukajtis #define	_TBL_log	__libm_TBL_log
64*25c28e83SPiotr Jasiukajtis #define	_TBL_log2_hi	__libm_TBL_log2_hi	/* not used by -lsunmath */
65*25c28e83SPiotr Jasiukajtis #define	_TBL_log2_lo	__libm_TBL_log2_lo	/* not used by -lsunmath */
66*25c28e83SPiotr Jasiukajtis #define	_TBL_log_hi	__libm_TBL_log_hi	/* not used by -lsunmath */
67*25c28e83SPiotr Jasiukajtis #define	_TBL_log_lo	__libm_TBL_log_lo	/* not used by -lsunmath */
68*25c28e83SPiotr Jasiukajtis #define	_TBL_sincos	__libm_TBL_sincos
69*25c28e83SPiotr Jasiukajtis #define	_TBL_sincosx	__libm_TBL_sincosx
70*25c28e83SPiotr Jasiukajtis #define	_TBL_tan_hi	__libm_TBL_tan_hi	/* not used by -lsunmath */
71*25c28e83SPiotr Jasiukajtis #define	_TBL_tan_lo	__libm_TBL_tan_lo	/* not used by -lsunmath */
72*25c28e83SPiotr Jasiukajtis #define	__k_cexp	__libm__k_cexp		/* C99 libm */
73*25c28e83SPiotr Jasiukajtis #define	__k_cexpl	__libm__k_cexpl		/* C99 libm */
74*25c28e83SPiotr Jasiukajtis #define	__k_clog_r	__libm__k_clog_r	/* C99 libm */
75*25c28e83SPiotr Jasiukajtis #define	__k_clog_rl	__libm__k_clog_rl	/* C99 libm */
76*25c28e83SPiotr Jasiukajtis #define	__k_atan2	__libm__k_atan2		/* C99 libm */
77*25c28e83SPiotr Jasiukajtis #define	__k_atan2l	__libm__k_atan2l	/* C99 libm */
78*25c28e83SPiotr Jasiukajtis #define	__k_cos		__libm__k_cos
79*25c28e83SPiotr Jasiukajtis #define	__k_lgamma	__libm__k_lgamma
80*25c28e83SPiotr Jasiukajtis #define	__k_sin		__libm__k_sin
81*25c28e83SPiotr Jasiukajtis #define	__k_sincos	__libm__k_sincos
82*25c28e83SPiotr Jasiukajtis #define	__k_tan		__libm__k_tan
83*25c28e83SPiotr Jasiukajtis #define	__reduction	__libm__reduction	/* i386 only */
84*25c28e83SPiotr Jasiukajtis #define	__rem_pio2	__libm__rem_pio2
85*25c28e83SPiotr Jasiukajtis #define	__rem_pio2m	__libm__rem_pio2m
86*25c28e83SPiotr Jasiukajtis #define	__k_cosf	__libm__k_cosf		/* C99 libm */
87*25c28e83SPiotr Jasiukajtis #define	__k_cosl	__libm__k_cosl		/* C99 libm */
88*25c28e83SPiotr Jasiukajtis #define	__k_lgammal	__libm__k_lgammal	/* C99 libm */
89*25c28e83SPiotr Jasiukajtis #define	__k_sincosf	__libm__k_sincosf	/* C99 libm */
90*25c28e83SPiotr Jasiukajtis #define	__k_sincosl	__libm__k_sincosl	/* C99 libm */
91*25c28e83SPiotr Jasiukajtis #define	__k_sinf	__libm__k_sinf		/* C99 libm */
92*25c28e83SPiotr Jasiukajtis #define	__k_sinl	__libm__k_sinl		/* C99 libm */
93*25c28e83SPiotr Jasiukajtis #define	__k_tanf	__libm__k_tanf		/* C99 libm */
94*25c28e83SPiotr Jasiukajtis #define	__k_tanl	__libm__k_tanl		/* C99 libm */
95*25c28e83SPiotr Jasiukajtis #define	__poly_libmq	__libm__poly_libmq	/* C99 libm */
96*25c28e83SPiotr Jasiukajtis #define	__rem_pio2l	__libm__rem_pio2l	/* C99 libm */
97*25c28e83SPiotr Jasiukajtis #define	_TBL_atanl_hi	__libm_TBL_atanl_hi	/* C99 libm */
98*25c28e83SPiotr Jasiukajtis #define	_TBL_atanl_lo	__libm_TBL_atanl_lo	/* C99 libm */
99*25c28e83SPiotr Jasiukajtis #define	_TBL_cosl_hi	__libm_TBL_cosl_hi	/* C99 libm */
100*25c28e83SPiotr Jasiukajtis #define	_TBL_cosl_lo	__libm_TBL_cosl_lo	/* C99 libm */
101*25c28e83SPiotr Jasiukajtis #define	_TBL_expl_hi	__libm_TBL_expl_hi	/* C99 libm */
102*25c28e83SPiotr Jasiukajtis #define	_TBL_expl_lo	__libm_TBL_expl_lo	/* C99 libm */
103*25c28e83SPiotr Jasiukajtis #define	_TBL_expm1l	__libm_TBL_expm1l	/* C99 libm */
104*25c28e83SPiotr Jasiukajtis #define	_TBL_expm1lx	__libm_TBL_expm1lx	/* C99 libm */
105*25c28e83SPiotr Jasiukajtis #define	_TBL_ipio2l_inf	__libm_TBL_ipio2l_inf	/* C99 libm */
106*25c28e83SPiotr Jasiukajtis #define	_TBL_logl_hi	__libm_TBL_logl_hi	/* C99 libm */
107*25c28e83SPiotr Jasiukajtis #define	_TBL_logl_lo	__libm_TBL_logl_lo	/* C99 libm */
108*25c28e83SPiotr Jasiukajtis #define	_TBL_r_atan_hi	__libm_TBL_r_atan_hi	/* C99 libm */
109*25c28e83SPiotr Jasiukajtis #define	_TBL_r_atan_lo	__libm_TBL_r_atan_lo	/* C99 libm */
110*25c28e83SPiotr Jasiukajtis #define	_TBL_sinl_hi	__libm_TBL_sinl_hi	/* C99 libm */
111*25c28e83SPiotr Jasiukajtis #define	_TBL_sinl_lo	__libm_TBL_sinl_lo	/* C99 libm */
112*25c28e83SPiotr Jasiukajtis #define	_TBL_tanl_hi	__libm_TBL_tanl_hi	/* C99 libm */
113*25c28e83SPiotr Jasiukajtis #define	_TBL_tanl_lo	__libm_TBL_tanl_lo	/* C99 libm */
114*25c28e83SPiotr Jasiukajtis #endif	/* defined(LIBM_BUILD) */
115*25c28e83SPiotr Jasiukajtis #endif	/* defined(LIBMOPT_BUILD) */
116*25c28e83SPiotr Jasiukajtis 
117*25c28e83SPiotr Jasiukajtis #ifndef _ASM
118*25c28e83SPiotr Jasiukajtis #ifdef __STDC__
119*25c28e83SPiotr Jasiukajtis #define	__P(p)	p
120*25c28e83SPiotr Jasiukajtis #else
121*25c28e83SPiotr Jasiukajtis #define	__P(p)	()
122*25c28e83SPiotr Jasiukajtis #endif
123*25c28e83SPiotr Jasiukajtis 
124*25c28e83SPiotr Jasiukajtis #include <sys/ieeefp.h>
125*25c28e83SPiotr Jasiukajtis 
126*25c28e83SPiotr Jasiukajtis extern double _SVID_libm_err __P((double, double, int));
127*25c28e83SPiotr Jasiukajtis extern double __k_cos __P((double, double));
128*25c28e83SPiotr Jasiukajtis extern double __k_cos_ __P((double *));
129*25c28e83SPiotr Jasiukajtis extern double __k_lgamma __P((double, int *));
130*25c28e83SPiotr Jasiukajtis extern double __k_sin __P((double, double));
131*25c28e83SPiotr Jasiukajtis extern double __k_sin_ __P((double *));
132*25c28e83SPiotr Jasiukajtis extern double __k_sincos __P((double, double, double *));
133*25c28e83SPiotr Jasiukajtis extern double __k_sincos_ __P((double *, double *));
134*25c28e83SPiotr Jasiukajtis extern double __k_tan __P((double, double, int));
135*25c28e83SPiotr Jasiukajtis extern double __k_cexp __P((double, int *));
136*25c28e83SPiotr Jasiukajtis extern long double __k_cexpl __P((long double, int *));
137*25c28e83SPiotr Jasiukajtis extern double __k_clog_r __P((double, double, double *));
138*25c28e83SPiotr Jasiukajtis extern long double __k_clog_rl __P((long double, long double, long double *));
139*25c28e83SPiotr Jasiukajtis extern double __k_atan2 __P((double, double, double *));
140*25c28e83SPiotr Jasiukajtis extern long double __k_atan2l __P((long double, long double, long double *));
141*25c28e83SPiotr Jasiukajtis extern int __rem_pio2 __P((double, double *));
142*25c28e83SPiotr Jasiukajtis extern int __rem_pio2m __P((double *, double *, int, int, int, const int *));
143*25c28e83SPiotr Jasiukajtis 
144*25c28e83SPiotr Jasiukajtis /*
145*25c28e83SPiotr Jasiukajtis  * entry points that are in-lined
146*25c28e83SPiotr Jasiukajtis  */
147*25c28e83SPiotr Jasiukajtis extern double copysign __P((double, double));
148*25c28e83SPiotr Jasiukajtis extern int finite __P((double));
149*25c28e83SPiotr Jasiukajtis extern enum fp_class_type fp_class __P((double));
150*25c28e83SPiotr Jasiukajtis extern double infinity __P((void));
151*25c28e83SPiotr Jasiukajtis extern int isinf __P((double));
152*25c28e83SPiotr Jasiukajtis extern int signbit __P((double));
153*25c28e83SPiotr Jasiukajtis 
154*25c28e83SPiotr Jasiukajtis /*
155*25c28e83SPiotr Jasiukajtis  * new C99 entry points
156*25c28e83SPiotr Jasiukajtis  */
157*25c28e83SPiotr Jasiukajtis extern double fdim __P((double, double));
158*25c28e83SPiotr Jasiukajtis extern double fma __P((double, double, double));
159*25c28e83SPiotr Jasiukajtis extern double fmax __P((double, double));
160*25c28e83SPiotr Jasiukajtis extern double fmin __P((double, double));
161*25c28e83SPiotr Jasiukajtis extern double frexp __P((double, int *));
162*25c28e83SPiotr Jasiukajtis extern double ldexp __P((double, int));
163*25c28e83SPiotr Jasiukajtis extern double modf __P((double, double *));
164*25c28e83SPiotr Jasiukajtis extern double nan __P((const char *));
165*25c28e83SPiotr Jasiukajtis extern double nearbyint __P((double));
166*25c28e83SPiotr Jasiukajtis extern double nexttoward __P((double, long double));
167*25c28e83SPiotr Jasiukajtis extern double remquo __P((double, double, int *));
168*25c28e83SPiotr Jasiukajtis extern double round __P((double));
169*25c28e83SPiotr Jasiukajtis extern double scalbln __P((double, long int));
170*25c28e83SPiotr Jasiukajtis extern double tgamma __P((double));
171*25c28e83SPiotr Jasiukajtis extern double trunc __P((double));
172*25c28e83SPiotr Jasiukajtis extern float fdimf __P((float, float));
173*25c28e83SPiotr Jasiukajtis extern float fmaf __P((float, float, float));
174*25c28e83SPiotr Jasiukajtis extern float fmaxf __P((float, float));
175*25c28e83SPiotr Jasiukajtis extern float fminf __P((float, float));
176*25c28e83SPiotr Jasiukajtis extern float frexpf __P((float, int *));
177*25c28e83SPiotr Jasiukajtis extern float ldexpf __P((float, int));
178*25c28e83SPiotr Jasiukajtis extern float modff __P((float, float *));
179*25c28e83SPiotr Jasiukajtis extern float nanf __P((const char *));
180*25c28e83SPiotr Jasiukajtis extern float nearbyintf __P((float));
181*25c28e83SPiotr Jasiukajtis extern float nextafterf __P((float, float));
182*25c28e83SPiotr Jasiukajtis extern float nexttowardf __P((float, long double));
183*25c28e83SPiotr Jasiukajtis extern float remquof __P((float, float, int *));
184*25c28e83SPiotr Jasiukajtis extern float roundf __P((float));
185*25c28e83SPiotr Jasiukajtis extern float scalblnf __P((float, long int));
186*25c28e83SPiotr Jasiukajtis extern float tgammaf __P((float));
187*25c28e83SPiotr Jasiukajtis extern float truncf __P((float));
188*25c28e83SPiotr Jasiukajtis extern long double frexpl(long double, int *);
189*25c28e83SPiotr Jasiukajtis extern long double fdiml __P((long double, long double));
190*25c28e83SPiotr Jasiukajtis extern long double fmal __P((long double, long double, long double));
191*25c28e83SPiotr Jasiukajtis extern long double fmaxl __P((long double, long double));
192*25c28e83SPiotr Jasiukajtis extern long double fminl __P((long double, long double));
193*25c28e83SPiotr Jasiukajtis extern long double ldexpl __P((long double, int));
194*25c28e83SPiotr Jasiukajtis extern long double modfl __P((long double, long double *));
195*25c28e83SPiotr Jasiukajtis extern long double nanl __P((const char *));
196*25c28e83SPiotr Jasiukajtis extern long double nearbyintl __P((long double));
197*25c28e83SPiotr Jasiukajtis extern long double nextafterl __P((long double, long double));
198*25c28e83SPiotr Jasiukajtis extern long double nexttowardl __P((long double, long double));
199*25c28e83SPiotr Jasiukajtis extern long double remquol __P((long double, long double, int *));
200*25c28e83SPiotr Jasiukajtis extern long double roundl __P((long double));
201*25c28e83SPiotr Jasiukajtis extern long double scalblnl __P((long double, long int));
202*25c28e83SPiotr Jasiukajtis extern long double tgammal __P((long double));
203*25c28e83SPiotr Jasiukajtis extern long double truncl __P((long double));
204*25c28e83SPiotr Jasiukajtis extern long int lrint __P((double));
205*25c28e83SPiotr Jasiukajtis extern long int lrintf __P((float));
206*25c28e83SPiotr Jasiukajtis extern long int lrintl __P((long double));
207*25c28e83SPiotr Jasiukajtis extern long int lround __P((double));
208*25c28e83SPiotr Jasiukajtis extern long int lroundf __P((float));
209*25c28e83SPiotr Jasiukajtis extern long int lroundl __P((long double));
210*25c28e83SPiotr Jasiukajtis extern long long int llrint __P((double));
211*25c28e83SPiotr Jasiukajtis extern long long int llrintf __P((float));
212*25c28e83SPiotr Jasiukajtis extern long long int llrintl __P((long double));
213*25c28e83SPiotr Jasiukajtis extern long long int llround __P((double));
214*25c28e83SPiotr Jasiukajtis extern long long int llroundf __P((float));
215*25c28e83SPiotr Jasiukajtis extern long long int llroundl __P((long double));
216*25c28e83SPiotr Jasiukajtis #endif	/* _ASM */
217*25c28e83SPiotr Jasiukajtis 
218*25c28e83SPiotr Jasiukajtis #endif	/* _C_LIBM_PROTOS_H */
219