125c28e83SPiotr Jasiukajtis /*
225c28e83SPiotr Jasiukajtis  * CDDL HEADER START
325c28e83SPiotr Jasiukajtis  *
425c28e83SPiotr Jasiukajtis  * The contents of this file are subject to the terms of the
525c28e83SPiotr Jasiukajtis  * Common Development and Distribution License (the "License").
625c28e83SPiotr Jasiukajtis  * You may not use this file except in compliance with the License.
725c28e83SPiotr Jasiukajtis  *
825c28e83SPiotr Jasiukajtis  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
925c28e83SPiotr Jasiukajtis  * or http://www.opensolaris.org/os/licensing.
1025c28e83SPiotr Jasiukajtis  * See the License for the specific language governing permissions
1125c28e83SPiotr Jasiukajtis  * and limitations under the License.
1225c28e83SPiotr Jasiukajtis  *
1325c28e83SPiotr Jasiukajtis  * When distributing Covered Code, include this CDDL HEADER in each
1425c28e83SPiotr Jasiukajtis  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1525c28e83SPiotr Jasiukajtis  * If applicable, add the following below this CDDL HEADER, with the
1625c28e83SPiotr Jasiukajtis  * fields enclosed by brackets "[]" replaced with your own identifying
1725c28e83SPiotr Jasiukajtis  * information: Portions Copyright [yyyy] [name of copyright owner]
1825c28e83SPiotr Jasiukajtis  *
1925c28e83SPiotr Jasiukajtis  * CDDL HEADER END
2025c28e83SPiotr Jasiukajtis  */
2125c28e83SPiotr Jasiukajtis /*
2225c28e83SPiotr Jasiukajtis  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
2325c28e83SPiotr Jasiukajtis  */
2425c28e83SPiotr Jasiukajtis /*
2525c28e83SPiotr Jasiukajtis  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
2625c28e83SPiotr Jasiukajtis  * Use is subject to license terms.
2725c28e83SPiotr Jasiukajtis  */
2825c28e83SPiotr Jasiukajtis 
2925c28e83SPiotr Jasiukajtis #ifndef _C_LIBM_PROTOS_H
3025c28e83SPiotr Jasiukajtis #define	_C_LIBM_PROTOS_H
3125c28e83SPiotr Jasiukajtis 
32*1ec68d33SRichard Lowe /*
33*1ec68d33SRichard Lowe  * Many symbols used to be namespaced with __libm to prevent collisions.  All
34*1ec68d33SRichard Lowe  * but these two were otherwise scoped local and directly bound, so that
35*1ec68d33SRichard Lowe  * collision could not occur.
36*1ec68d33SRichard Lowe  *
37*1ec68d33SRichard Lowe  * For reasons unknown, these two are global (but private).
38*1ec68d33SRichard Lowe  */
3925c28e83SPiotr Jasiukajtis #define	__rem_pio2	__libm__rem_pio2
4025c28e83SPiotr Jasiukajtis #define	__rem_pio2m	__libm__rem_pio2m
4125c28e83SPiotr Jasiukajtis 
4225c28e83SPiotr Jasiukajtis #ifndef _ASM
4325c28e83SPiotr Jasiukajtis #ifdef __STDC__
4425c28e83SPiotr Jasiukajtis #define	__P(p)	p
4525c28e83SPiotr Jasiukajtis #else
4625c28e83SPiotr Jasiukajtis #define	__P(p)	()
4725c28e83SPiotr Jasiukajtis #endif
4825c28e83SPiotr Jasiukajtis 
4925c28e83SPiotr Jasiukajtis #include <sys/ieeefp.h>
5025c28e83SPiotr Jasiukajtis 
5125c28e83SPiotr Jasiukajtis extern double _SVID_libm_err __P((double, double, int));
5225c28e83SPiotr Jasiukajtis extern double __k_cos __P((double, double));
5325c28e83SPiotr Jasiukajtis extern double __k_cos_ __P((double *));
5425c28e83SPiotr Jasiukajtis extern double __k_lgamma __P((double, int *));
5525c28e83SPiotr Jasiukajtis extern double __k_sin __P((double, double));
5625c28e83SPiotr Jasiukajtis extern double __k_sin_ __P((double *));
5725c28e83SPiotr Jasiukajtis extern double __k_sincos __P((double, double, double *));
5825c28e83SPiotr Jasiukajtis extern double __k_sincos_ __P((double *, double *));
5925c28e83SPiotr Jasiukajtis extern double __k_tan __P((double, double, int));
6025c28e83SPiotr Jasiukajtis extern double __k_cexp __P((double, int *));
6125c28e83SPiotr Jasiukajtis extern long double __k_cexpl __P((long double, int *));
6225c28e83SPiotr Jasiukajtis extern double __k_clog_r __P((double, double, double *));
6325c28e83SPiotr Jasiukajtis extern long double __k_clog_rl __P((long double, long double, long double *));
6425c28e83SPiotr Jasiukajtis extern double __k_atan2 __P((double, double, double *));
6525c28e83SPiotr Jasiukajtis extern long double __k_atan2l __P((long double, long double, long double *));
6625c28e83SPiotr Jasiukajtis extern int __rem_pio2 __P((double, double *));
6725c28e83SPiotr Jasiukajtis extern int __rem_pio2m __P((double *, double *, int, int, int, const int *));
6825c28e83SPiotr Jasiukajtis 
6925c28e83SPiotr Jasiukajtis /*
7025c28e83SPiotr Jasiukajtis  * entry points that are in-lined
7125c28e83SPiotr Jasiukajtis  */
7225c28e83SPiotr Jasiukajtis extern double copysign __P((double, double));
7325c28e83SPiotr Jasiukajtis extern int finite __P((double));
7425c28e83SPiotr Jasiukajtis extern enum fp_class_type fp_class __P((double));
7525c28e83SPiotr Jasiukajtis extern double infinity __P((void));
7625c28e83SPiotr Jasiukajtis extern int isinf __P((double));
7725c28e83SPiotr Jasiukajtis extern int signbit __P((double));
7825c28e83SPiotr Jasiukajtis 
7925c28e83SPiotr Jasiukajtis /*
8025c28e83SPiotr Jasiukajtis  * new C99 entry points
8125c28e83SPiotr Jasiukajtis  */
8225c28e83SPiotr Jasiukajtis extern double fdim __P((double, double));
8325c28e83SPiotr Jasiukajtis extern double fma __P((double, double, double));
8425c28e83SPiotr Jasiukajtis extern double fmax __P((double, double));
8525c28e83SPiotr Jasiukajtis extern double fmin __P((double, double));
8625c28e83SPiotr Jasiukajtis extern double frexp __P((double, int *));
8725c28e83SPiotr Jasiukajtis extern double ldexp __P((double, int));
8825c28e83SPiotr Jasiukajtis extern double modf __P((double, double *));
8925c28e83SPiotr Jasiukajtis extern double nan __P((const char *));
9025c28e83SPiotr Jasiukajtis extern double nearbyint __P((double));
9125c28e83SPiotr Jasiukajtis extern double nexttoward __P((double, long double));
9225c28e83SPiotr Jasiukajtis extern double remquo __P((double, double, int *));
9325c28e83SPiotr Jasiukajtis extern double round __P((double));
9425c28e83SPiotr Jasiukajtis extern double scalbln __P((double, long int));
9525c28e83SPiotr Jasiukajtis extern double tgamma __P((double));
9625c28e83SPiotr Jasiukajtis extern double trunc __P((double));
9725c28e83SPiotr Jasiukajtis extern float fdimf __P((float, float));
9825c28e83SPiotr Jasiukajtis extern float fmaf __P((float, float, float));
9925c28e83SPiotr Jasiukajtis extern float fmaxf __P((float, float));
10025c28e83SPiotr Jasiukajtis extern float fminf __P((float, float));
10125c28e83SPiotr Jasiukajtis extern float frexpf __P((float, int *));
10225c28e83SPiotr Jasiukajtis extern float ldexpf __P((float, int));
10325c28e83SPiotr Jasiukajtis extern float modff __P((float, float *));
10425c28e83SPiotr Jasiukajtis extern float nanf __P((const char *));
10525c28e83SPiotr Jasiukajtis extern float nearbyintf __P((float));
10625c28e83SPiotr Jasiukajtis extern float nextafterf __P((float, float));
10725c28e83SPiotr Jasiukajtis extern float nexttowardf __P((float, long double));
10825c28e83SPiotr Jasiukajtis extern float remquof __P((float, float, int *));
10925c28e83SPiotr Jasiukajtis extern float roundf __P((float));
11025c28e83SPiotr Jasiukajtis extern float scalblnf __P((float, long int));
11125c28e83SPiotr Jasiukajtis extern float tgammaf __P((float));
11225c28e83SPiotr Jasiukajtis extern float truncf __P((float));
11325c28e83SPiotr Jasiukajtis extern long double frexpl(long double, int *);
11425c28e83SPiotr Jasiukajtis extern long double fdiml __P((long double, long double));
11525c28e83SPiotr Jasiukajtis extern long double fmal __P((long double, long double, long double));
11625c28e83SPiotr Jasiukajtis extern long double fmaxl __P((long double, long double));
11725c28e83SPiotr Jasiukajtis extern long double fminl __P((long double, long double));
11825c28e83SPiotr Jasiukajtis extern long double ldexpl __P((long double, int));
11925c28e83SPiotr Jasiukajtis extern long double modfl __P((long double, long double *));
12025c28e83SPiotr Jasiukajtis extern long double nanl __P((const char *));
12125c28e83SPiotr Jasiukajtis extern long double nearbyintl __P((long double));
12225c28e83SPiotr Jasiukajtis extern long double nextafterl __P((long double, long double));
12325c28e83SPiotr Jasiukajtis extern long double nexttowardl __P((long double, long double));
12425c28e83SPiotr Jasiukajtis extern long double remquol __P((long double, long double, int *));
12525c28e83SPiotr Jasiukajtis extern long double roundl __P((long double));
12625c28e83SPiotr Jasiukajtis extern long double scalblnl __P((long double, long int));
12725c28e83SPiotr Jasiukajtis extern long double tgammal __P((long double));
12825c28e83SPiotr Jasiukajtis extern long double truncl __P((long double));
12925c28e83SPiotr Jasiukajtis extern long int lrint __P((double));
13025c28e83SPiotr Jasiukajtis extern long int lrintf __P((float));
13125c28e83SPiotr Jasiukajtis extern long int lrintl __P((long double));
13225c28e83SPiotr Jasiukajtis extern long int lround __P((double));
13325c28e83SPiotr Jasiukajtis extern long int lroundf __P((float));
13425c28e83SPiotr Jasiukajtis extern long int lroundl __P((long double));
13525c28e83SPiotr Jasiukajtis extern long long int llrint __P((double));
13625c28e83SPiotr Jasiukajtis extern long long int llrintf __P((float));
13725c28e83SPiotr Jasiukajtis extern long long int llrintl __P((long double));
13825c28e83SPiotr Jasiukajtis extern long long int llround __P((double));
13925c28e83SPiotr Jasiukajtis extern long long int llroundf __P((float));
14025c28e83SPiotr Jasiukajtis extern long long int llroundl __P((long double));
14125c28e83SPiotr Jasiukajtis #endif	/* _ASM */
14225c28e83SPiotr Jasiukajtis 
14325c28e83SPiotr Jasiukajtis #endif	/* _C_LIBM_PROTOS_H */