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