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