1*b30d1939SAndy Fiddaman 2*b30d1939SAndy Fiddaman/* : : generated by proto : : */ 3*b30d1939SAndy Fiddaman/* : : generated from contrib/ast/src/cmd/ksh93/features/math.sh by iffe version 2012-07-17 : : */ 4*b30d1939SAndy Fiddaman#ifndef _def_math_ksh93 5*b30d1939SAndy Fiddaman#if !defined(__PROTO__) 6*b30d1939SAndy Fiddaman# if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus) 7*b30d1939SAndy Fiddaman# if defined(__cplusplus) 8*b30d1939SAndy Fiddaman# define __LINKAGE__ "C" 9*b30d1939SAndy Fiddaman# else 10*b30d1939SAndy Fiddaman# define __LINKAGE__ 11*b30d1939SAndy Fiddaman# endif 12*b30d1939SAndy Fiddaman# define __STDARG__ 13*b30d1939SAndy Fiddaman# define __PROTO__(x) x 14*b30d1939SAndy Fiddaman# define __OTORP__(x) 15*b30d1939SAndy Fiddaman# define __PARAM__(n,o) n 16*b30d1939SAndy Fiddaman# if !defined(__STDC__) && !defined(__cplusplus) 17*b30d1939SAndy Fiddaman# if !defined(c_plusplus) 18*b30d1939SAndy Fiddaman# define const 19*b30d1939SAndy Fiddaman# endif 20*b30d1939SAndy Fiddaman# define signed 21*b30d1939SAndy Fiddaman# define void int 22*b30d1939SAndy Fiddaman# define volatile 23*b30d1939SAndy Fiddaman# define __V_ char 24*b30d1939SAndy Fiddaman# else 25*b30d1939SAndy Fiddaman# define __V_ void 26*b30d1939SAndy Fiddaman# endif 27*b30d1939SAndy Fiddaman# else 28*b30d1939SAndy Fiddaman# define __PROTO__(x) () 29*b30d1939SAndy Fiddaman# define __OTORP__(x) x 30*b30d1939SAndy Fiddaman# define __PARAM__(n,o) o 31*b30d1939SAndy Fiddaman# define __LINKAGE__ 32*b30d1939SAndy Fiddaman# define __V_ char 33*b30d1939SAndy Fiddaman# define const 34*b30d1939SAndy Fiddaman# define signed 35*b30d1939SAndy Fiddaman# define void int 36*b30d1939SAndy Fiddaman# define volatile 37*b30d1939SAndy Fiddaman# endif 38*b30d1939SAndy Fiddaman# define __MANGLE__ __LINKAGE__ 39*b30d1939SAndy Fiddaman# if defined(__cplusplus) || defined(c_plusplus) 40*b30d1939SAndy Fiddaman# define __VARARG__ ... 41*b30d1939SAndy Fiddaman# else 42*b30d1939SAndy Fiddaman# define __VARARG__ 43*b30d1939SAndy Fiddaman# endif 44*b30d1939SAndy Fiddaman# if defined(__STDARG__) 45*b30d1939SAndy Fiddaman# define __VA_START__(p,a) va_start(p,a) 46*b30d1939SAndy Fiddaman# else 47*b30d1939SAndy Fiddaman# define __VA_START__(p,a) va_start(p) 48*b30d1939SAndy Fiddaman# endif 49*b30d1939SAndy Fiddaman# if !defined(__INLINE__) 50*b30d1939SAndy Fiddaman# if defined(__cplusplus) 51*b30d1939SAndy Fiddaman# define __INLINE__ extern __MANGLE__ inline 52*b30d1939SAndy Fiddaman# else 53*b30d1939SAndy Fiddaman# if defined(_WIN32) && !defined(__GNUC__) 54*b30d1939SAndy Fiddaman# define __INLINE__ __inline 55*b30d1939SAndy Fiddaman# endif 56*b30d1939SAndy Fiddaman# endif 57*b30d1939SAndy Fiddaman# endif 58*b30d1939SAndy Fiddaman#endif 59*b30d1939SAndy Fiddaman#if !defined(__LINKAGE__) 60*b30d1939SAndy Fiddaman#define __LINKAGE__ /* 2004-08-11 transition */ 61*b30d1939SAndy Fiddaman#endif 62*b30d1939SAndy Fiddaman 63*b30d1939SAndy Fiddaman#define _def_math_ksh93 1 64*b30d1939SAndy Fiddaman#define _sys_types 1 /* #include <sys/types.h> ok */ 65*b30d1939SAndy Fiddaman 66*b30d1939SAndy Fiddaman 67*b30d1939SAndy Fiddaman/* : : generated by cmd/ast/tools/iffe from contrib/ast/src/cmd/ksh93/data/math.tab : : */ 68*b30d1939SAndy Fiddaman 69*b30d1939SAndy Fiddamantypedef Sfdouble_t (*Math_f) __PROTO__((Sfdouble_t,...)); 70*b30d1939SAndy Fiddaman 71*b30d1939SAndy Fiddaman#include <math.h> 72*b30d1939SAndy Fiddaman#include <ieeefp.h> 73*b30d1939SAndy Fiddaman 74*b30d1939SAndy Fiddamanstatic Sfdouble_t local_finite __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return finite(a1);} 75*b30d1939SAndy Fiddamanstatic int local_fpclassify __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return fpclassify(a1);} 76*b30d1939SAndy Fiddamanstatic int local_fpclass __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return fpclass(a1);} 77*b30d1939SAndy Fiddamanstatic int local_isfinite __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return isfinite(a1);} 78*b30d1939SAndy Fiddamanstatic int local_isgreater __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return isgreater(a1,a2);} 79*b30d1939SAndy Fiddamanstatic int local_isgreaterequal __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return isgreaterequal(a1,a2);} 80*b30d1939SAndy Fiddamanstatic int local_isinf __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return isinf(a1);} 81*b30d1939SAndy Fiddamanstatic int local_isless __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return isless(a1,a2);} 82*b30d1939SAndy Fiddamanstatic int local_islessequal __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return islessequal(a1,a2);} 83*b30d1939SAndy Fiddamanstatic int local_islessgreater __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return islessgreater(a1,a2);} 84*b30d1939SAndy Fiddamanstatic int local_isnormal __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return isnormal(a1);} 85*b30d1939SAndy Fiddamanstatic int local_issubnormal __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){ int q = fpclassify(a1); return q == FP_SUBNORMAL; } 86*b30d1939SAndy Fiddamanstatic int local_isunordered __PARAM__((Sfdouble_t a1,Sfdouble_t a2), (a1, a2)) __OTORP__(Sfdouble_t a1;Sfdouble_t a2;){return isunordered(a1,a2);} 87*b30d1939SAndy Fiddamanstatic int local_iszero __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){ int q = fpclassify(a1); return q == FP_ZERO; } 88*b30d1939SAndy Fiddamanstatic int local_signbit __PARAM__((Sfdouble_t a1), (a1)) __OTORP__(Sfdouble_t a1;){return signbit(a1);} 89*b30d1939SAndy Fiddaman 90*b30d1939SAndy Fiddaman/* 91*b30d1939SAndy Fiddaman * first byte is two-digit octal number. Last digit is number of args 92*b30d1939SAndy Fiddaman * first digit is 0 if return value is double, 1 for integer 93*b30d1939SAndy Fiddaman */ 94*b30d1939SAndy Fiddamanconst struct mathtab shtab_math[] = 95*b30d1939SAndy Fiddaman{ 96*b30d1939SAndy Fiddaman "\001acos", (Math_f)(uintptr_t)acosl, 97*b30d1939SAndy Fiddaman "\001acosh", (Math_f)(uintptr_t)acoshl, 98*b30d1939SAndy Fiddaman "\001asin", (Math_f)(uintptr_t)asinl, 99*b30d1939SAndy Fiddaman "\001asinh", (Math_f)(uintptr_t)asinhl, 100*b30d1939SAndy Fiddaman "\001atan", (Math_f)(uintptr_t)atanl, 101*b30d1939SAndy Fiddaman "\002atan2", (Math_f)(uintptr_t)atan2l, 102*b30d1939SAndy Fiddaman "\001atanh", (Math_f)(uintptr_t)atanhl, 103*b30d1939SAndy Fiddaman "\001cbrt", (Math_f)(uintptr_t)cbrtl, 104*b30d1939SAndy Fiddaman "\001ceil", (Math_f)(uintptr_t)ceill, 105*b30d1939SAndy Fiddaman "\002copysign", (Math_f)(uintptr_t)copysignl, 106*b30d1939SAndy Fiddaman "\001cos", (Math_f)(uintptr_t)cosl, 107*b30d1939SAndy Fiddaman "\001cosh", (Math_f)(uintptr_t)coshl, 108*b30d1939SAndy Fiddaman "\001erf", (Math_f)(uintptr_t)erfl, 109*b30d1939SAndy Fiddaman "\001erfc", (Math_f)(uintptr_t)erfcl, 110*b30d1939SAndy Fiddaman "\001exp", (Math_f)(uintptr_t)expl, 111*b30d1939SAndy Fiddaman "\001exp2", (Math_f)(uintptr_t)exp2l, 112*b30d1939SAndy Fiddaman "\001expm1", (Math_f)(uintptr_t)expm1l, 113*b30d1939SAndy Fiddaman "\001fabs", (Math_f)(uintptr_t)fabsl, 114*b30d1939SAndy Fiddaman "\001abs", (Math_f)(uintptr_t)fabsl, 115*b30d1939SAndy Fiddaman "\002fdim", (Math_f)(uintptr_t)fdiml, 116*b30d1939SAndy Fiddaman "\001finite", (Math_f)(uintptr_t)local_finite, 117*b30d1939SAndy Fiddaman "\001floor", (Math_f)(uintptr_t)floorl, 118*b30d1939SAndy Fiddaman "\001int", (Math_f)(uintptr_t)floorl, 119*b30d1939SAndy Fiddaman "\003fma", (Math_f)(uintptr_t)fmal, 120*b30d1939SAndy Fiddaman "\002fmax", (Math_f)(uintptr_t)fmaxl, 121*b30d1939SAndy Fiddaman "\002fmin", (Math_f)(uintptr_t)fminl, 122*b30d1939SAndy Fiddaman "\002fmod", (Math_f)(uintptr_t)fmodl, 123*b30d1939SAndy Fiddaman "\011fpclassify", (Math_f)(uintptr_t)local_fpclassify, 124*b30d1939SAndy Fiddaman "\011fpclass", (Math_f)(uintptr_t)local_fpclass, 125*b30d1939SAndy Fiddaman "\002hypot", (Math_f)(uintptr_t)hypotl, 126*b30d1939SAndy Fiddaman "\011ilogb", (Math_f)(uintptr_t)ilogbl, 127*b30d1939SAndy Fiddaman "\011isfinite", (Math_f)(uintptr_t)local_isfinite, 128*b30d1939SAndy Fiddaman "\012isgreater", (Math_f)(uintptr_t)local_isgreater, 129*b30d1939SAndy Fiddaman "\012isgreaterequal", (Math_f)(uintptr_t)local_isgreaterequal, 130*b30d1939SAndy Fiddaman "\011isinf", (Math_f)(uintptr_t)local_isinf, 131*b30d1939SAndy Fiddaman "\012isless", (Math_f)(uintptr_t)local_isless, 132*b30d1939SAndy Fiddaman "\012islessequal", (Math_f)(uintptr_t)local_islessequal, 133*b30d1939SAndy Fiddaman "\012islessgreater", (Math_f)(uintptr_t)local_islessgreater, 134*b30d1939SAndy Fiddaman "\011isnan", (Math_f)(uintptr_t)isnanl, 135*b30d1939SAndy Fiddaman "\011isnormal", (Math_f)(uintptr_t)local_isnormal, 136*b30d1939SAndy Fiddaman "\011issubnormal", (Math_f)(uintptr_t)local_issubnormal, 137*b30d1939SAndy Fiddaman "\012isunordered", (Math_f)(uintptr_t)local_isunordered, 138*b30d1939SAndy Fiddaman "\011iszero", (Math_f)(uintptr_t)local_iszero, 139*b30d1939SAndy Fiddaman "\001j0", (Math_f)(uintptr_t)j0l, 140*b30d1939SAndy Fiddaman "\001j1", (Math_f)(uintptr_t)j1l, 141*b30d1939SAndy Fiddaman "\002jn", (Math_f)(uintptr_t)jnl, 142*b30d1939SAndy Fiddaman "\042ldexp", (Math_f)(uintptr_t)ldexpl, 143*b30d1939SAndy Fiddaman "\001lgamma", (Math_f)(uintptr_t)lgammal, 144*b30d1939SAndy Fiddaman "\001log", (Math_f)(uintptr_t)logl, 145*b30d1939SAndy Fiddaman "\001log10", (Math_f)(uintptr_t)log10l, 146*b30d1939SAndy Fiddaman "\001log1p", (Math_f)(uintptr_t)log1pl, 147*b30d1939SAndy Fiddaman "\001log2", (Math_f)(uintptr_t)log2l, 148*b30d1939SAndy Fiddaman "\001logb", (Math_f)(uintptr_t)logbl, 149*b30d1939SAndy Fiddaman "\001nearbyint", (Math_f)(uintptr_t)nearbyintl, 150*b30d1939SAndy Fiddaman "\002nextafter", (Math_f)(uintptr_t)nextafterl, 151*b30d1939SAndy Fiddaman "\002nexttoward", (Math_f)(uintptr_t)nexttowardl, 152*b30d1939SAndy Fiddaman "\002pow", (Math_f)(uintptr_t)powl, 153*b30d1939SAndy Fiddaman "\002remainder", (Math_f)(uintptr_t)remainderl, 154*b30d1939SAndy Fiddaman "\001rint", (Math_f)(uintptr_t)rintl, 155*b30d1939SAndy Fiddaman "\001round", (Math_f)(uintptr_t)roundl, 156*b30d1939SAndy Fiddaman "\002scalb", (Math_f)(uintptr_t)scalbl, 157*b30d1939SAndy Fiddaman "\002scalbn", (Math_f)(uintptr_t)scalbnl, 158*b30d1939SAndy Fiddaman "\011signbit", (Math_f)(uintptr_t)local_signbit, 159*b30d1939SAndy Fiddaman "\001sin", (Math_f)(uintptr_t)sinl, 160*b30d1939SAndy Fiddaman "\001sinh", (Math_f)(uintptr_t)sinhl, 161*b30d1939SAndy Fiddaman "\001sqrt", (Math_f)(uintptr_t)sqrtl, 162*b30d1939SAndy Fiddaman "\001tan", (Math_f)(uintptr_t)tanl, 163*b30d1939SAndy Fiddaman "\001tanh", (Math_f)(uintptr_t)tanhl, 164*b30d1939SAndy Fiddaman "\001tgamma", (Math_f)(uintptr_t)tgammal, 165*b30d1939SAndy Fiddaman "\001trunc", (Math_f)(uintptr_t)truncl, 166*b30d1939SAndy Fiddaman "\001y0", (Math_f)(uintptr_t)y0l, 167*b30d1939SAndy Fiddaman "\001y1", (Math_f)(uintptr_t)y1l, 168*b30d1939SAndy Fiddaman "\002yn", (Math_f)(uintptr_t)ynl, 169*b30d1939SAndy Fiddaman "", (Math_f)0 170*b30d1939SAndy Fiddaman}; 171*b30d1939SAndy Fiddaman#endif 172