1 #ifndef _GNM_NUMBERS_H_
2 # define _GNM_NUMBERS_H_
4 #include <gnumeric-features.h>
5 #include <goffice/goffice.h>
10 * WARNING: Any preprocessor conditionals in here must also be placed
11 * in gnumeric-features.h.in
14 #ifdef GNM_SUPPLIES_LGAMMA
15 GO_VAR_DECL
int signgam
;
16 double lgamma (double x
);
19 #ifdef GNM_SUPPLIES_LGAMMA_R
20 double lgamma_r (double x
, int *signp
);
23 #ifdef GNM_WITH_LONG_DOUBLE
25 #ifdef GNM_SUPPLIES_ERFL
26 long double erfl (long double x
);
29 #ifdef GNM_SUPPLIES_ERFCL
30 long double erfl (long double x
);
33 typedef long double gnm_float
;
36 #define gnm_acos acosl
37 #define gnm_acosh acoshl
38 #define gnm_add_epsilon go_add_epsilonl
39 #define gnm_asin asinl
40 #define gnm_asinh asinhl
41 #define gnm_atan atanl
42 #define gnm_atan2 atan2l
43 #define gnm_atanpi go_atanpil
44 #define gnm_atan2pi go_atan2pil
45 #define gnm_atanh atanhl
46 #define gnm_ceil ceill
47 #define gnm_cosh coshl
48 #define gnm_cospi go_cospil
49 #define gnm_cotpi go_cotpil
51 #define gnm_erfc erfcl
53 #define gnm_expm1 expm1l
54 #define gnm_fake_ceil go_fake_ceill
55 #define gnm_fake_floor go_fake_floorl
56 #define gnm_fake_round go_fake_roundl
57 #define gnm_fake_trunc go_fake_truncl
58 #define gnm_finite finitel
59 #define gnm_floor floorl
60 #define gnm_fmod fmodl
61 #define gnm_format_value go_format_valuel
62 #define gnm_format_value_gstring go_format_value_gstringl
63 #define gnm_frexp frexpl
64 #define gnm_hypot hypotl
65 #define gnm_isnan isnanl
67 #define gnm_ldexp ldexpl
68 #define gnm_lgamma lgammal
69 #define gnm_lgamma_r lgammal_r
71 #define gnm_log10 log10l
72 #define gnm_log1p log1pl
73 #define gnm_log2 log2l
74 #define gnm_modf modfl
75 #define gnm_nan go_nanl
76 #define gnm_ninf go_ninfl
77 #define gnm_pinf go_pinfl
79 #define gnm_pow10 go_pow10l
80 #define gnm_pow2 go_pow2l
81 #define gnm_render_general go_render_generall
82 #define gnm_sinh sinhl
83 #define gnm_sinpi go_sinpil
84 #define gnm_sqrt sqrtl
85 #define gnm_strto go_strtold
86 #define gnm_sub_epsilon go_sub_epsilonl
87 #define gnm_tanh tanhl
88 #define gnm_tanpi go_tanpil
89 #ifndef GNM_REDUCES_TRIG_RANGE
96 #define GNM_FORMAT_e "Le"
97 #define GNM_FORMAT_E "LE"
98 #define GNM_FORMAT_f "Lf"
99 #define GNM_FORMAT_g "Lg"
100 #define GNM_FORMAT_G "LG"
101 #define GNM_SCANF_g "Lg"
102 #define GNM_DIG LDBL_DIG
103 #define GNM_MANT_DIG LDBL_MANT_DIG
104 #define GNM_MIN_EXP LDBL_MIN_EXP
105 #define GNM_MAX_EXP LDBL_MAX_EXP
106 #define GNM_MIN LDBL_MIN
107 #define GNM_MAX LDBL_MAX
108 #define GNM_EPSILON LDBL_EPSILON
109 #define GNM_const(_c) _c ## L
111 #define GnmQuad GOQuadl
112 #define gnm_quad_acos go_quad_acosl
113 #define gnm_quad_add go_quad_addl
114 #define gnm_quad_asin go_quad_asinl
115 #define gnm_quad_cos go_quad_cosl
116 #define gnm_quad_cospi go_quad_cospil
117 #define gnm_quad_div go_quad_divl
118 #define gnm_quad_e go_quad_el
119 #define gnm_quad_end go_quad_endl
120 #define gnm_quad_exp go_quad_expl
121 #define gnm_quad_expm1 go_quad_expm1l
122 #define gnm_quad_floor go_quad_floorl
123 #define gnm_quad_init go_quad_initl
124 #define gnm_quad_ln2 go_quad_ln2l
125 #define gnm_quad_log go_quad_logl
126 #define gnm_quad_mul go_quad_mull
127 #define gnm_quad_mul12 go_quad_mul12l
128 #define gnm_quad_one go_quad_onel
129 #define gnm_quad_pi go_quad_pil
130 #define gnm_quad_2pi go_quad_2pil
131 #define gnm_quad_pow go_quad_powl
132 #define gnm_quad_sin go_quad_sinl
133 #define gnm_quad_sinpi go_quad_sinpil
134 #define gnm_quad_sqrt go_quad_sqrtl
135 #define gnm_quad_sqrt2 go_quad_sqrt2l
136 #define gnm_quad_start go_quad_startl
137 #define gnm_quad_sub go_quad_subl
138 #define gnm_quad_value go_quad_valuel
139 #define gnm_quad_zero go_quad_zerol
140 #define GnmAccumulator GOAccumulatorl
141 #define gnm_accumulator_start go_accumulator_startl
142 #define gnm_accumulator_end go_accumulator_endl
143 #define gnm_accumulator_new go_accumulator_newl
144 #define gnm_accumulator_free go_accumulator_freel
145 #define gnm_accumulator_add go_accumulator_addl
146 #define gnm_accumulator_add_quad go_accumulator_add_quadl
147 #define gnm_accumulator_value go_accumulator_valuel
149 #else /* !GNM_WITH_LONG_DOUBLE */
151 typedef double gnm_float
;
154 #define gnm_acos acos
155 #define gnm_acosh acosh
156 #define gnm_add_epsilon go_add_epsilon
157 #define gnm_asin asin
158 #define gnm_asinh asinh
159 #define gnm_atan atan
160 #define gnm_atan2 atan2
161 #define gnm_atanpi go_atanpi
162 #define gnm_atan2pi go_atan2pi
163 #define gnm_atanh atanh
164 #define gnm_ceil ceil
165 #define gnm_cosh cosh
166 #define gnm_cospi go_cospi
167 #define gnm_cotpi go_cotpi
169 #define gnm_erfc erfc
171 #define gnm_expm1 expm1
172 #define gnm_fake_ceil go_fake_ceil
173 #define gnm_fake_floor go_fake_floor
174 #define gnm_fake_round go_fake_round
175 #define gnm_fake_trunc go_fake_trunc
176 #define gnm_finite go_finite
177 #define gnm_floor floor
178 #define gnm_fmod fmod
179 #define gnm_format_value go_format_value
180 #define gnm_format_value_gstring go_format_value_gstring
181 #define gnm_frexp frexp
182 #define gnm_hypot hypot
183 #define gnm_isnan isnan
185 #define gnm_ldexp ldexp
186 #define gnm_lgamma lgamma
187 #define gnm_lgamma_r lgamma_r
189 #define gnm_log10 log10
190 #define gnm_log1p log1p
191 #define gnm_log2 log2
192 #define gnm_modf modf
193 #define gnm_nan go_nan
194 #define gnm_ninf go_ninf
195 #define gnm_pinf go_pinf
197 #define gnm_pow10 go_pow10
198 #define gnm_pow2 go_pow2
199 #define gnm_render_general go_render_general
200 #define gnm_sinh sinh
201 #define gnm_sinpi go_sinpi
202 #define gnm_sqrt sqrt
203 #define gnm_strto go_strtod
204 #define gnm_sub_epsilon go_sub_epsilon
205 #define gnm_tanh tanh
206 #define gnm_tanpi go_tanpi
207 #ifndef GNM_REDUCES_TRIG_RANGE
214 #define GNM_FORMAT_e "e"
215 #define GNM_FORMAT_E "E"
216 #define GNM_FORMAT_f "f"
217 #define GNM_FORMAT_g "g"
218 #define GNM_FORMAT_G "G"
219 #define GNM_SCANF_g "lg"
220 #define GNM_DIG DBL_DIG
221 #define GNM_MANT_DIG DBL_MANT_DIG
222 #define GNM_MIN_EXP DBL_MIN_EXP
223 #define GNM_MAX_EXP DBL_MAX_EXP
224 #define GNM_MIN DBL_MIN
225 #define GNM_MAX DBL_MAX
226 #define GNM_EPSILON DBL_EPSILON
227 #define GNM_const(_c) _c
229 #define GnmQuad GOQuad
230 #define gnm_quad_acos go_quad_acos
231 #define gnm_quad_add go_quad_add
232 #define gnm_quad_asin go_quad_asin
233 #define gnm_quad_cos go_quad_cos
234 #define gnm_quad_cospi go_quad_cospi
235 #define gnm_quad_div go_quad_div
236 #define gnm_quad_e go_quad_e
237 #define gnm_quad_end go_quad_end
238 #define gnm_quad_exp go_quad_exp
239 #define gnm_quad_expm1 go_quad_expm1
240 #define gnm_quad_floor go_quad_floor
241 #define gnm_quad_init go_quad_init
242 #define gnm_quad_ln2 go_quad_ln2
243 #define gnm_quad_log go_quad_log
244 #define gnm_quad_mul go_quad_mul
245 #define gnm_quad_mul12 go_quad_mul12
246 #define gnm_quad_one go_quad_one
247 #define gnm_quad_pi go_quad_pi
248 #define gnm_quad_2pi go_quad_2pi
249 #define gnm_quad_pow go_quad_pow
250 #define gnm_quad_sin go_quad_sin
251 #define gnm_quad_sinpi go_quad_sinpi
252 #define gnm_quad_sqrt go_quad_sqrt
253 #define gnm_quad_sqrt2 go_quad_sqrt2
254 #define gnm_quad_start go_quad_start
255 #define gnm_quad_sub go_quad_sub
256 #define gnm_quad_value go_quad_value
257 #define gnm_quad_zero go_quad_zero
258 #define GnmAccumulator GOAccumulator
259 #define gnm_accumulator_start go_accumulator_start
260 #define gnm_accumulator_end go_accumulator_end
261 #define gnm_accumulator_new go_accumulator_new
262 #define gnm_accumulator_free go_accumulator_free
263 #define gnm_accumulator_add go_accumulator_add
264 #define gnm_accumulator_add_quad go_accumulator_add_quad
265 #define gnm_accumulator_value go_accumulator_value
269 #ifdef GNM_REDUCES_TRIG_RANGE
270 gnm_float
gnm_sin (gnm_float x
);
271 gnm_float
gnm_cos (gnm_float x
);
272 gnm_float
gnm_tan (gnm_float x
);
278 #endif /* _GNM_NUMBERS_H_ */