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