single-gsl.c
1 //! @file single-gsl.c
2 //! @author J. Marcel van der Veer
3
4 //! @section Copyright
5 //!
6 //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
7 //! Copyright 2001-2024 J. Marcel van der Veer [algol68g@xs4all.nl].
8
9 //! @section License
10 //!
11 //! This program is free software; you can redistribute it and/or modify it
12 //! under the terms of the GNU General Public License as published by the
13 //! Free Software Foundation; either version 3 of the License, or
14 //! (at your option) any later version.
15 //!
16 //! This program is distributed in the hope that it will be useful, but
17 //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18 //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
19 //! more details. You should have received a copy of the GNU General Public
20 //! License along with this program. If not, see [http://www.gnu.org/licenses/].
21
22 //! @section Synopsis
23 //!
24 //! REAL GSL routines.
25
26 #include "a68g.h"
27 #include "a68g-genie.h"
28 #include "a68g-prelude.h"
29 #include "a68g-prelude-gsl.h"
30
31 #if defined (HAVE_GSL)
32
33 //! @brief Convert VECTOR to [] REAL.
34
35 #define PROC_RR_R(p, g, f)\
36 void g (NODE_T *p) {\
37 A68_REAL *x;\
38 POP_OPERAND_ADDRESS (p, x, A68_REAL);\
39 (void) gsl_set_error_handler_off ();\
40 int status = f (& (VALUE (x)));\
41 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
42 }
43
44 #define PROC_R_R(p, g, f)\
45 void g (NODE_T *p) {\
46 A68_REAL *x;\
47 POP_OPERAND_ADDRESS (p, x, A68_REAL);\
48 (void) gsl_set_error_handler_off ();\
49 gsl_sf_result y;\
50 int status = f (VALUE (x), &y);\
51 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
52 VALUE (x) = VAL (&y);\
53 }
54
55 #define PROC_R_R_DBL(p, g, f)\
56 void g (NODE_T *p) {\
57 A68_REAL *x;\
58 POP_OPERAND_ADDRESS (p, x, A68_REAL);\
59 (void) gsl_set_error_handler_off ();\
60 gsl_sf_result y;\
61 int status = f (VALUE (x), GSL_PREC_DOUBLE, &y);\
62 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
63 VALUE (x) = VAL (&y);\
64 }
65
66 #define PROC_I_R(p, g, f)\
67 void g (NODE_T *p) {\
68 A68_INT s;\
69 POP_OBJECT (p, &s, A68_INT);\
70 (void) gsl_set_error_handler_off ();\
71 gsl_sf_result y;\
72 int status = f (VALUE (&s), &y);\
73 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
74 PUSH_VALUE (p, VAL (&y), A68_REAL);\
75 }
76
77 #define PROC_R_R_R(p, g, f)\
78 void g (NODE_T *p) {\
79 A68_REAL *x, *y;\
80 POP_OPERAND_ADDRESSES (p, x, y, A68_REAL);\
81 (void) gsl_set_error_handler_off ();\
82 gsl_sf_result r;\
83 int status = f (VALUE (x), VALUE (y), &r);\
84 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
85 VALUE (x) = VAL (&r);\
86 }
87
88 #define PROC_I_R_R(p, g, f)\
89 void g (NODE_T *p) {\
90 A68_REAL x;\
91 POP_OBJECT (p, &x, A68_REAL);\
92 A68_INT s;\
93 POP_OBJECT (p, &s, A68_INT);\
94 (void) gsl_set_error_handler_off ();\
95 gsl_sf_result r;\
96 int status = f (VALUE (&s), VALUE (&x), &r);\
97 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
98 PUSH_VALUE (p, VAL (&r), A68_REAL);\
99 }
100
101 #define PROC_I_R_R_REVERSED(p, g, f)\
102 void g (NODE_T *p) {\
103 A68_REAL x;\
104 POP_OBJECT (p, &x, A68_REAL);\
105 A68_INT s;\
106 POP_OBJECT (p, &s, A68_INT);\
107 (void) gsl_set_error_handler_off ();\
108 gsl_sf_result r;\
109 int status = f (VALUE (&x), VALUE (&s), &r);\
110 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
111 PUSH_VALUE (p, VAL (&r), A68_REAL);\
112 }
113
114 #define PROC_R_R_R_DBL(p, g, f)\
115 void g (NODE_T *p) {\
116 A68_REAL *x, *y;\
117 POP_OPERAND_ADDRESSES (p, x, y, A68_REAL);\
118 (void) gsl_set_error_handler_off ();\
119 gsl_sf_result r;\
120 int status = f (VALUE (x), VALUE (y), GSL_PREC_DOUBLE, &r);\
121 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
122 VALUE (x) = VAL (&r);\
123 }
124
125 #define PROC_R_R_R_R(p, g, f)\
126 void g (NODE_T *p) {\
127 A68_REAL *x, *y, *z;\
128 POP_ADDRESS (p, z, A68_REAL);\
129 POP_OPERAND_ADDRESSES (p, x, y, A68_REAL);\
130 (void) gsl_set_error_handler_off ();\
131 gsl_sf_result r;\
132 int status = f (VALUE (x), VALUE (y), VALUE (z), &r);\
133 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
134 VALUE (x) = VAL (&r);\
135 }
136
137 #define PROC_I_R_R_R(p, g, f)\
138 void g (NODE_T *p) {\
139 A68_REAL x, y;\
140 POP_OBJECT (p, &y, A68_REAL);\
141 POP_OBJECT (p, &x, A68_REAL);\
142 A68_INT s;\
143 POP_OBJECT (p, &s, A68_INT);\
144 (void) gsl_set_error_handler_off ();\
145 gsl_sf_result r;\
146 int status = f (VALUE (&s), VALUE (&x), VALUE (&y), &r);\
147 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
148 PUSH_VALUE (p, VAL (&r), A68_REAL);\
149 }
150
151 #define PROC_R_R_R_R_DBL(p, g, f)\
152 void g (NODE_T *p) {\
153 A68_REAL *x, *y, *z;\
154 POP_ADDRESS (p, z, A68_REAL);\
155 POP_OPERAND_ADDRESSES (p, x, y, A68_REAL);\
156 (void) gsl_set_error_handler_off ();\
157 gsl_sf_result r;\
158 int status = f (VALUE (x), VALUE (y), VALUE (z), GSL_PREC_DOUBLE, &r);\
159 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
160 VALUE (x) = VAL (&r);\
161 }
162
163 #define PROC_R_R_R_R_R_DBL(p, g, f)\
164 void g (NODE_T *p) {\
165 A68_REAL *x, *y, *z, *rho;\
166 POP_ADDRESS (p, rho, A68_REAL);\
167 POP_ADDRESS (p, z, A68_REAL);\
168 POP_OPERAND_ADDRESSES (p, x, y, A68_REAL);\
169 (void) gsl_set_error_handler_off ();\
170 gsl_sf_result r;\
171 int status = f (VALUE (x), VALUE (y), VALUE (z), VALUE (rho), GSL_PREC_DOUBLE, &r);\
172 MATH_RTE (p, status != 0, M_REAL, (char *) gsl_strerror (status));\
173 VALUE (x) = VAL (&r);\
174 }
175
176 //! @brief PROC airy ai = (REAL x) REAL
177
178 PROC_R_R_DBL (p, genie_airy_ai_real, gsl_sf_airy_Ai_e);
179
180 //! @brief PROC airy bi = (REAL x) REAL
181
182 PROC_R_R_DBL (p, genie_airy_bi_real, gsl_sf_airy_Bi_e);
183
184 //! @brief PROC airy ai scaled = (REAL x) REAL
185
186 PROC_R_R_DBL (p, genie_airy_ai_scaled_real, gsl_sf_airy_Ai_scaled_e);
187
188 //! @brief PROC airy bi scaled = (REAL x) REAL
189
190 PROC_R_R_DBL (p, genie_airy_bi_scaled_real, gsl_sf_airy_Bi_scaled_e);
191
192 //! @brief PROC airy ai deriv = (REAL x) REAL
193
194 PROC_R_R_DBL (p, genie_airy_ai_deriv_real, gsl_sf_airy_Ai_deriv_e);
195
196 //! @brief PROC airy bi deriv = (REAL x) REAL
197
198 PROC_R_R_DBL (p, genie_airy_bi_deriv_real, gsl_sf_airy_Bi_deriv_e);
199
200 //! @brief PROC airy ai deriv scaled = (REAL x) REAL
201
202 PROC_R_R_DBL (p, genie_airy_ai_deriv_scaled_real, gsl_sf_airy_Ai_deriv_scaled_e);
203
204 //! @brief PROC airy bi deriv scaled = (REAL x) REAL
205
206 PROC_R_R_DBL (p, genie_airy_bi_deriv_scaled_real, gsl_sf_airy_Bi_deriv_scaled_e);
207
208 //! @brief PROC airy zero ai = (INT s) REAL
209
210 PROC_I_R (p, genie_airy_zero_ai_real, gsl_sf_airy_zero_Ai_e);
211
212 //! @brief PROC airy zero bi = (INT s) REAL
213
214 PROC_I_R (p, genie_airy_zero_bi_real, gsl_sf_airy_zero_Bi_e);
215
216 //! @brief PROC airy zero ai deriv = (INT s) REAL
217
218 PROC_I_R (p, genie_airy_zero_ai_deriv_real, gsl_sf_airy_zero_Ai_deriv_e);
219
220 //! @brief PROC airy zero bi deriv = (INT s) REAL
221
222 PROC_I_R (p, genie_airy_zero_bi_deriv_real, gsl_sf_airy_zero_Bi_deriv_e);
223
224 //! @brief PROC clausen = (REAL x) REAL
225
226 PROC_R_R (p, genie_clausen_real, gsl_sf_clausen_e);
227
228 //! @brief PROC bessel jn0 = (REAL x) REAL
229
230 PROC_R_R (p, genie_bessel_jn0_real, gsl_sf_bessel_J0_e);
231
232 //! @brief PROC bessel jn1 = (REAL x) REAL
233
234 PROC_R_R (p, genie_bessel_jn1_real, gsl_sf_bessel_J1_e);
235
236 //! @brief PROC bessel jn = (INT n, REAL x) REAL
237
238 PROC_I_R_R (p, genie_bessel_jn_real, gsl_sf_bessel_Jn_e);
239
240 //! @brief PROC bessel yn0 = (REAL x) REAL
241
242 PROC_R_R (p, genie_bessel_yn0_real, gsl_sf_bessel_Y0_e);
243
244 //! @brief PROC bessel yn1 = (REAL x) REAL
245
246 PROC_R_R (p, genie_bessel_yn1_real, gsl_sf_bessel_Y1_e);
247
248 //! @brief PROC bessel yn = (INT n, REAL x) REAL
249
250 PROC_I_R_R (p, genie_bessel_yn_real, gsl_sf_bessel_Yn_e);
251
252 //! @brief PROC bessel in0 = (REAL x) REAL
253
254 PROC_R_R (p, genie_bessel_in0_real, gsl_sf_bessel_I0_e);
255
256 //! @brief PROC bessel in1 = (REAL x) REAL
257
258 PROC_R_R (p, genie_bessel_in1_real, gsl_sf_bessel_I1_e);
259
260 //! @brief PROC bessel in = (INT n, REAL x) REAL
261
262 PROC_I_R_R (p, genie_bessel_in_real, gsl_sf_bessel_In_e);
263
264 //! @brief PROC bessel in0 scaled = (REAL x) REAL
265
266 PROC_R_R (p, genie_bessel_in0_scaled_real, gsl_sf_bessel_I0_scaled_e);
267
268 //! @brief PROC bessel in1 scaled = (REAL x) REAL
269
270 PROC_R_R (p, genie_bessel_in1_scaled_real, gsl_sf_bessel_I1_scaled_e);
271
272 //! @brief PROC bessel in scaled = (INT n, REAL x) REAL
273
274 PROC_I_R_R (p, genie_bessel_in_scaled_real, gsl_sf_bessel_In_scaled_e);
275
276 //! @brief PROC bessel kn0 = (REAL x) REAL
277
278 PROC_R_R (p, genie_bessel_kn0_real, gsl_sf_bessel_K0_e);
279
280 //! @brief PROC bessel kn1 = (REAL x) REAL
281
282 PROC_R_R (p, genie_bessel_kn1_real, gsl_sf_bessel_K1_e);
283
284 //! @brief PROC bessel kn = (INT n, REAL x) REAL
285
286 PROC_I_R_R (p, genie_bessel_kn_real, gsl_sf_bessel_Kn_e);
287
288 //! @brief PROC bessel kn0 scaled = (REAL x) REAL
289
290 PROC_R_R (p, genie_bessel_kn0_scaled_real, gsl_sf_bessel_K0_scaled_e);
291
292 //! @brief PROC bessel kn1 scaled = (REAL x) REAL
293
294 PROC_R_R (p, genie_bessel_kn1_scaled_real, gsl_sf_bessel_K1_scaled_e);
295
296 //! @brief PROC bessel kn scaled = (INT n, REAL x) REAL
297
298 PROC_I_R_R (p, genie_bessel_kn_scaled_real, gsl_sf_bessel_Kn_scaled_e);
299
300 //! @brief PROC bessel jl0 = (REAL x) REAL
301
302 PROC_R_R (p, genie_bessel_jl0_real, gsl_sf_bessel_j0_e);
303
304 //! @brief PROC bessel jl1 = (REAL x) REAL
305
306 PROC_R_R (p, genie_bessel_jl1_real, gsl_sf_bessel_j1_e);
307
308 //! @brief PROC bessel jl2 = (REAL x) REAL
309
310 PROC_R_R (p, genie_bessel_jl2_real, gsl_sf_bessel_j2_e);
311
312 //! @brief PROC bessel jl = (INT l, REAL x) REAL
313
314 PROC_I_R_R (p, genie_bessel_jl_real, gsl_sf_bessel_jl_e);
315
316 //! @brief PROC bessel yl0 = (REAL x) REAL
317
318 PROC_R_R (p, genie_bessel_yl0_real, gsl_sf_bessel_y0_e);
319
320 //! @brief PROC bessel yl1 = (REAL x) REAL
321
322 PROC_R_R (p, genie_bessel_yl1_real, gsl_sf_bessel_y1_e);
323
324 //! @brief PROC bessel yl2 = (REAL x) REAL
325
326 PROC_R_R (p, genie_bessel_yl2_real, gsl_sf_bessel_y2_e);
327
328 //! @brief PROC bessel yl = (INT l, REAL x) REAL
329
330 PROC_I_R_R (p, genie_bessel_yl_real, gsl_sf_bessel_yl_e);
331
332 //! @brief PROC bessel il0 scaled = (REAL x) REAL
333
334 PROC_R_R (p, genie_bessel_il0_scaled_real, gsl_sf_bessel_i0_scaled_e);
335
336 //! @brief PROC bessel il1 scaled = (REAL x) REAL
337
338 PROC_R_R (p, genie_bessel_il1_scaled_real, gsl_sf_bessel_i1_scaled_e);
339
340 //! @brief PROC bessel il2 scaled = (REAL x) REAL
341
342 PROC_R_R (p, genie_bessel_il2_scaled_real, gsl_sf_bessel_i2_scaled_e);
343
344 //! @brief PROC bessel il scaled = (INT l, REAL x) REAL
345
346 PROC_I_R_R (p, genie_bessel_il_scaled_real, gsl_sf_bessel_il_scaled_e);
347
348 //! @brief PROC bessel kl0 scaled = (REAL x) REAL
349
350 PROC_R_R (p, genie_bessel_kl0_scaled_real, gsl_sf_bessel_k0_scaled_e);
351
352 //! @brief PROC bessel kl1 scaled = (REAL x) REAL
353
354 PROC_R_R (p, genie_bessel_kl1_scaled_real, gsl_sf_bessel_k1_scaled_e);
355
356 //! @brief PROC bessel kl2 scaled = (REAL x) REAL
357
358 PROC_R_R (p, genie_bessel_kl2_scaled_real, gsl_sf_bessel_k2_scaled_e);
359
360 //! @brief PROC bessel kl scaled = (INT l, REAL x) REAL
361
362 PROC_I_R_R (p, genie_bessel_kl_scaled_real, gsl_sf_bessel_kl_scaled_e);
363
364 //! @brief PROC bessel jnu = (REAL nu, REAL x) REAL
365
366 PROC_R_R_R (p, genie_bessel_jnu_real, gsl_sf_bessel_Jnu_e);
367
368 //! @brief PROC bessel ynu = (REAL nu, x) REAL
369
370 PROC_R_R_R (p, genie_bessel_ynu_real, gsl_sf_bessel_Ynu_e);
371
372 //! @brief PROC bessel inu = (REAL nu, x) REAL
373
374 PROC_R_R_R (p, genie_bessel_inu_real, gsl_sf_bessel_Inu_e);
375
376 //! @brief PROC bessel inu scaled = (REAL nu, x) REAL
377
378 PROC_R_R_R (p, genie_bessel_inu_scaled_real, gsl_sf_bessel_Inu_scaled_e);
379
380 //! @brief PROC bessel knu = (REAL nu, x) REAL
381
382 PROC_R_R_R (p, genie_bessel_knu_real, gsl_sf_bessel_Knu_e);
383
384 //! @brief PROC bessel ln knu = (REAL nu, x) REAL
385
386 PROC_R_R_R (p, genie_bessel_ln_knu_real, gsl_sf_bessel_lnKnu_e);
387
388 //! @brief PROC bessel knu scaled = (REAL nu, x) REAL
389
390 PROC_R_R_R (p, genie_bessel_knu_scaled_real, gsl_sf_bessel_Knu_scaled_e);
391
392 //! @brief PROC bessel zero jnu0 = (INT s) REAL
393
394 PROC_I_R (p, genie_bessel_zero_jnu0_real, gsl_sf_bessel_zero_J0_e);
395
396 //! @brief PROC bessel zero jnu1 = (INT s) REAL
397
398 PROC_I_R (p, genie_bessel_zero_jnu1_real, gsl_sf_bessel_zero_J1_e);
399
400 //! @brief PROC bessel zero jnu = (INT s, REAL nu) REAL
401
402 PROC_I_R_R_REVERSED (p, genie_bessel_zero_jnu_real, gsl_sf_bessel_zero_Jnu_e);
403
404 //! @brief PROC dawson = (REAL x) REAL
405
406 PROC_R_R (p, genie_dawson_real, gsl_sf_dawson_e);
407
408 //! @brief PROC debye 1 = (REAL x) REAL
409
410 PROC_R_R (p, genie_debye_1_real, gsl_sf_debye_1_e);
411
412 //! @brief PROC debye 2 = (REAL x) REAL
413
414 PROC_R_R (p, genie_debye_2_real, gsl_sf_debye_2_e);
415
416 //! @brief PROC debye 3 = (REAL x) REAL
417
418 PROC_R_R (p, genie_debye_3_real, gsl_sf_debye_3_e);
419
420 //! @brief PROC debye 4 = (REAL x) REAL
421
422 PROC_R_R (p, genie_debye_4_real, gsl_sf_debye_4_e);
423
424 //! @brief PROC debye 5 = (REAL x) REAL
425
426 PROC_R_R (p, genie_debye_5_real, gsl_sf_debye_5_e);
427
428 //! @brief PROC debye 6 = (REAL x) REAL
429
430 PROC_R_R (p, genie_debye_6_real, gsl_sf_debye_6_e);
431
432 //! @brief PROC dilog = (REAL x) REAL
433
434 PROC_R_R (p, genie_dilog_real, gsl_sf_dilog_e);
435
436 //! @brief PROC ellint k comp = (REAL k) REAL
437
438 PROC_R_R_DBL (p, genie_ellint_k_comp_real, gsl_sf_ellint_Kcomp_e);
439
440 //! @brief PROC ellint e comp = (REAL k) REAL
441
442 PROC_R_R_DBL (p, genie_ellint_e_comp_real, gsl_sf_ellint_Ecomp_e);
443
444 //! @brief PROC ellint p comp = (REAL k, n) REAL
445
446 PROC_R_R_R_DBL (p, genie_ellint_p_comp_real, gsl_sf_ellint_Pcomp_e);
447
448 //! @brief PROC ellint d = (REAL phi, k) REAL
449
450 PROC_R_R_R_DBL (p, genie_ellint_d_real, gsl_sf_ellint_D_e);
451
452 //! @brief PROC ellint e = (REAL phi, k) REAL
453
454 PROC_R_R_R_DBL (p, genie_ellint_e_real, gsl_sf_ellint_E_e);
455
456 //! @brief PROC ellint f = (REAL phi, k) REAL
457
458 PROC_R_R_R_DBL (p, genie_ellint_f_real, gsl_sf_ellint_F_e);
459
460 //! @brief PROC ellint p = (REAL phi, k, n) REAL
461
462 PROC_R_R_R_R_DBL (p, genie_ellint_p_real, gsl_sf_ellint_P_e);
463
464 //! @brief PROC ellint rc = (REAL x, y) REAL
465
466 PROC_R_R_R_DBL (p, genie_ellint_rc_real, gsl_sf_ellint_RC_e);
467
468 //! @brief PROC ellint rf = (REAL x, y, z) REAL
469
470 PROC_R_R_R_R_DBL (p, genie_ellint_rf_real, gsl_sf_ellint_RF_e);
471
472 //! @brief PROC ellint rd = (REAL x, y, z) REAL
473
474 PROC_R_R_R_R_DBL (p, genie_ellint_rd_real, gsl_sf_ellint_RD_e);
475
476 //! @brief PROC ellint rj = (REAL x, y, z, p) REAL
477
478 PROC_R_R_R_R_R_DBL (p, genie_ellint_rj_real, gsl_sf_ellint_RJ_e);
479
480 //! @brief PROC expint e1 = (REAL x) REAL
481
482 PROC_R_R (p, genie_expint_e1_real, gsl_sf_expint_E1_e);
483
484 //! @brief PROC expint e2 = (REAL x) REAL
485
486 PROC_R_R (p, genie_expint_e2_real, gsl_sf_expint_E2_e);
487
488 //! @brief PROC expint en = (INT n, REAL x) REAL
489
490 PROC_I_R_R (p, genie_expint_en_real, gsl_sf_expint_En_e);
491
492 //! @brief PROC expint ei = (REAL x) REAL
493
494 PROC_R_R (p, genie_expint_ei_real, gsl_sf_expint_Ei_e);
495
496 //! @brief PROC shi = (REAL x) REAL
497
498 PROC_R_R (p, genie_shi_real, gsl_sf_Shi_e);
499
500 //! @brief PROC chi = (REAL x) REAL
501
502 PROC_R_R (p, genie_chi_real, gsl_sf_Chi_e);
503
504 //! @brief PROC expint 3 = (REAL x) REAL
505
506 PROC_R_R (p, genie_expint_3_real, gsl_sf_expint_3_e);
507
508 //! @brief PROC si = (REAL x) REAL
509
510 PROC_R_R (p, genie_si_real, gsl_sf_Si_e);
511
512 //! @brief PROC ci = (REAL x) REAL
513
514 PROC_R_R (p, genie_ci_real, gsl_sf_Ci_e);
515
516 //! @brief PROC atanint = (REAL x) REAL
517
518 PROC_R_R (p, genie_atanint_real, gsl_sf_atanint_e);
519
520 //! @brief PROC fermi dirac m1 = (REAL x) REAL
521
522 PROC_R_R (p, genie_fermi_dirac_m1_real, gsl_sf_fermi_dirac_m1_e);
523
524 //! @brief PROC fermi dirac 0 = (REAL x) REAL
525
526 PROC_R_R (p, genie_fermi_dirac_0_real, gsl_sf_fermi_dirac_0_e);
527
528 //! @brief PROC fermi dirac 1 = (REAL x) REAL
529
530 PROC_R_R (p, genie_fermi_dirac_1_real, gsl_sf_fermi_dirac_1_e);
531
532 //! @brief PROC fermi dirac 2 = (REAL x) REAL
533
534 PROC_R_R (p, genie_fermi_dirac_2_real, gsl_sf_fermi_dirac_2_e);
535
536 //! @brief PROC fermi dirac int = (INT n, REAL x) REAL
537
538 PROC_I_R_R (p, genie_fermi_dirac_int_real, gsl_sf_fermi_dirac_int_e);
539
540 //! @brief PROC fermi dirac m half = (REAL x) REAL
541
542 PROC_R_R (p, genie_fermi_dirac_mhalf_real, gsl_sf_fermi_dirac_mhalf_e);
543
544 //! @brief PROC fermi dirac half = (REAL x) REAL
545
546 PROC_R_R (p, genie_fermi_dirac_half_real, gsl_sf_fermi_dirac_half_e);
547
548 //! @brief PROC fermi dirac 3 half = (REAL x) REAL
549
550 PROC_R_R (p, genie_fermi_dirac_3half_real, gsl_sf_fermi_dirac_3half_e);
551
552 //! @brief PROC fermi dirac inc0 = (REAL x, b) REAL
553
554 PROC_R_R_R (p, genie_fermi_dirac_inc_0_real, gsl_sf_fermi_dirac_inc_0_e);
555
556 //! @brief PROC digamma = (REAL x) REAL
557
558 PROC_R_R (p, genie_digamma_real, gsl_sf_psi_e);
559
560 //! @brief PROC gamma star = (REAL x) REAL
561
562 PROC_R_R (p, genie_gammastar_real, gsl_sf_gammastar_e);
563
564 //! @brief PROC gamma inv = (REAL x) REAL
565
566 PROC_R_R (p, genie_gammainv_real, gsl_sf_gammainv_e);
567
568 //! @brief PROC double fact = (INT n) REAL
569
570 PROC_I_R (p, genie_doublefact_real, gsl_sf_doublefact_e);
571
572 //! @brief PROC ln double fact = (INT n) REAL
573
574 PROC_I_R (p, genie_lndoublefact_real, gsl_sf_lndoublefact_e);
575
576 //! @brief PROC taylor coeff = (INT n, REAL x) REAL
577
578 PROC_I_R_R (p, genie_taylorcoeff_real, gsl_sf_taylorcoeff_e);
579
580 //! @brief PROC poch = (REAL a, x) REAL
581
582 PROC_R_R_R (p, genie_poch_real, gsl_sf_poch_e);
583
584 //! @brief PROC lnpoch = (REAL a, x) REAL
585
586 PROC_R_R_R (p, genie_lnpoch_real, gsl_sf_lnpoch_e);
587
588 //! @brief PROC pochrel = (REAL a, x) REAL
589
590 PROC_R_R_R (p, genie_pochrel_real, gsl_sf_pochrel_e);
591
592 //! @brief PROC beta inc = (REAL a, b, x) REAL
593
594 PROC_R_R_R_R (p, genie_beta_inc_real, gsl_sf_beta_inc_e);
595
596 //! @brief PROC gamma inc = (REAL a, x) REAL
597
598 PROC_R_R_R (p, genie_gamma_inc_real, gsl_sf_gamma_inc_e);
599
600 //! @brief PROC gamma inc q = (REAL a, x) REAL
601
602 PROC_R_R_R (p, genie_gamma_inc_q_real, gsl_sf_gamma_inc_Q_e);
603
604 //! @brief PROC gamma inc p = (REAL a, x) REAL
605
606 PROC_R_R_R (p, genie_gamma_inc_p_real, gsl_sf_gamma_inc_P_e);
607
608 //! @brief PROC gegenpoly 1 = (REAL lambda, x) REAL
609
610 PROC_R_R_R (p, genie_gegenpoly_1_real, gsl_sf_gegenpoly_1_e);
611
612 //! @brief PROC gegenpoly 2 = (REAL lambda, x) REAL
613
614 PROC_R_R_R (p, genie_gegenpoly_2_real, gsl_sf_gegenpoly_2_e);
615
616 //! @brief PROC gegenpoly 3 = (REAL lambda, x) REAL
617
618 PROC_R_R_R (p, genie_gegenpoly_3_real, gsl_sf_gegenpoly_3_e);
619
620 //! @brief PROC gegenpoly n = (INT n, REAL lambda, x) REAL
621
622 PROC_I_R_R_R (p, genie_gegenpoly_n_real, gsl_sf_gegenpoly_n_e);
623
624 //! @brief PROC laguerre 1 = (REAL a, x) REAL
625
626 PROC_R_R_R (p, genie_laguerre_1_real, gsl_sf_laguerre_1_e);
627
628 //! @brief PROC laguerre 2 = (REAL a, x) REAL
629
630 PROC_R_R_R (p, genie_laguerre_2_real, gsl_sf_laguerre_2_e);
631
632 //! @brief PROC laguerre 3 = (REAL a, x) REAL
633
634 PROC_R_R_R (p, genie_laguerre_3_real, gsl_sf_laguerre_3_e);
635
636 //! @brief PROC laguerre n = (INT n, REAL a, x) REAL
637
638 PROC_I_R_R_R (p, genie_laguerre_n_real, gsl_sf_laguerre_n_e);
639
640 //! @brief PROC lambert w0 = (REAL x) REAL
641
642 PROC_R_R (p, genie_lambert_w0_real, gsl_sf_lambert_W0_e);
643
644 //! @brief PROC lambert wm1 = (REAL x) REAL
645
646 PROC_R_R (p, genie_lambert_wm1_real, gsl_sf_lambert_Wm1_e);
647
648 //! @brief PROC legendre p1 = (REAL x) REAL
649
650 PROC_R_R (p, genie_legendre_p1_real, gsl_sf_legendre_P1_e);
651
652 //! @brief PROC legendre p2 = (REAL x) REAL
653
654 PROC_R_R (p, genie_legendre_p2_real, gsl_sf_legendre_P2_e);
655
656 //! @brief PROC legendre p3 = (REAL x) REAL
657
658 PROC_R_R (p, genie_legendre_p3_real, gsl_sf_legendre_P3_e);
659
660 //! @brief PROC legendre pl = (INT l, REAL x) REAL
661
662 PROC_I_R_R (p, genie_legendre_pl_real, gsl_sf_legendre_Pl_e);
663
664 //! @brief PROC legendre q0 = (REAL x) REAL
665
666 PROC_R_R (p, genie_legendre_q0_real, gsl_sf_legendre_Q0_e);
667
668 //! @brief PROC legendre q1 = (REAL x) REAL
669
670 PROC_R_R (p, genie_legendre_q1_real, gsl_sf_legendre_Q1_e);
671
672 //! @brief PROC legendre ql = (INT l, REAL x) REAL
673
674 PROC_I_R_R (p, genie_legendre_ql_real, gsl_sf_legendre_Ql_e);
675
676 //! @brief PROC conicalp half = (REAL lambda, x) REAL
677
678 PROC_R_R_R (p, genie_conicalp_half_real, gsl_sf_conicalP_half_e);
679
680 //! @brief PROC conicalp mhalf = (REAL lambda, x) REAL
681
682 PROC_R_R_R (p, genie_conicalp_mhalf_real, gsl_sf_conicalP_mhalf_e);
683
684 //! @brief PROC conicalp 0 = (REAL lambda, x) REAL
685
686 PROC_R_R_R (p, genie_conicalp_0_real, gsl_sf_conicalP_0_e);
687
688 //! @brief PROC conicalp 1 = (REAL lambda, x) REAL
689
690 PROC_R_R_R (p, genie_conicalp_1_real, gsl_sf_conicalP_1_e);
691
692 //! @brief PROC conicalp sph reg = (INT n, REAL lambda, x) REAL
693
694 PROC_I_R_R_R (p, genie_conicalp_sph_reg_real, gsl_sf_conicalP_sph_reg_e);
695
696 //! @brief PROC conicalp cyl reg = (INT n, REAL lambda, x) REAL
697
698 PROC_I_R_R_R (p, genie_conicalp_cyl_reg_real, gsl_sf_conicalP_cyl_reg_e);
699
700 //! @brief PROC legendre h3d 0 = (REAL lambda, x) REAL
701
702 PROC_R_R_R (p, genie_legendre_h3d_0_real, gsl_sf_legendre_H3d_0_e);
703
704 //! @brief PROC legendre h3d 1 = (REAL lambda, x) REAL
705
706 PROC_R_R_R (p, genie_legendre_h3d_1_real, gsl_sf_legendre_H3d_1_e);
707
708 //! @brief PROC legendre h3d = (INT l, REAL lambda, x) REAL
709
710 PROC_I_R_R_R (p, genie_legendre_H3d_real, gsl_sf_legendre_H3d_e);
711
712 //! @brief PROC psi int = (INT n) REAL
713
714 PROC_I_R (p, genie_psi_int_real, gsl_sf_psi_int_e);
715
716 //! @brief PROC psi = (INT n) REAL
717
718 PROC_R_R (p, genie_psi_real, gsl_sf_psi_e);
719
720 //! @brief PROC psi 1piy = (INT n) REAL
721
722 PROC_R_R (p, genie_psi_1piy_real, gsl_sf_psi_1piy_e);
723
724 //! @brief PROC psi 1 = (INT n) REAL
725
726 PROC_I_R (p, genie_psi_1_int_real, gsl_sf_psi_1_int_e);
727
728 //! @brief PROC psi 1 = (REAL x) REAL
729
730 PROC_R_R (p, genie_psi_1_real, gsl_sf_psi_1_e);
731
732 //! @brief PROC psi n = (INT n, REAL x) REAL
733
734 PROC_I_R_R (p, genie_psi_n_real, gsl_sf_psi_n_e);
735
736 //! @brief PROC synchrotron 1 = (REAL x) REAL
737
738 PROC_R_R (p, genie_synchrotron_1_real, gsl_sf_synchrotron_1_e);
739
740 //! @brief PROC synchrotron 2 = (REAL x) REAL
741
742 PROC_R_R (p, genie_synchrotron_2_real, gsl_sf_synchrotron_2_e);
743
744 //! @brief PROC transport 2 = (REAL x) REAL
745
746 PROC_R_R (p, genie_transport_2_real, gsl_sf_transport_2_e);
747
748 //! @brief PROC transport 3 = (REAL x) REAL
749
750 PROC_R_R (p, genie_transport_3_real, gsl_sf_transport_3_e);
751
752 //! @brief PROC transport 4 = (REAL x) REAL
753
754 PROC_R_R (p, genie_transport_4_real, gsl_sf_transport_4_e);
755
756 //! @brief PROC transport 5 = (REAL x) REAL
757
758 PROC_R_R (p, genie_transport_5_real, gsl_sf_transport_5_e);
759
760 //! @brief PROC hypot = (REAL x) REAL
761
762 PROC_R_R_R (p, genie_hypot_real, gsl_sf_hypot_e);
763
764 //! @brief PROC sinc = (REAL x) REAL
765
766 PROC_R_R (p, genie_sinc_real, gsl_sf_sinc_e);
767
768 //! @brief PROC lnsinh = (REAL x) REAL
769
770 PROC_R_R (p, genie_lnsinh_real, gsl_sf_lnsinh_e);
771
772 //! @brief PROC lncosh = (REAL x) REAL
773
774 PROC_R_R (p, genie_lncosh_real, gsl_sf_lncosh_e);
775
776 //! @brief PROC angle restrict symm = (REAL theta) REAL
777
778 PROC_RR_R (p, genie_angle_restrict_symm_real, gsl_sf_angle_restrict_symm_e);
779
780 //! @brief PROC angle restrict pos = (REAL theta) REAL
781
782 PROC_RR_R (p, genie_angle_restrict_pos_real, gsl_sf_angle_restrict_pos_e);
783
784 //! @brief PROC zeta int = (INT n) REAL
785
786 PROC_I_R (p, genie_zeta_int_real, gsl_sf_zeta_int_e);
787
788 //! @brief PROC zeta = (REAL s) REAL
789
790 PROC_R_R (p, genie_zeta_real, gsl_sf_zeta_e);
791
792 //! @brief PROC zetam1 int = (INT n) REAL
793
794 PROC_I_R (p, genie_zetam1_int_real, gsl_sf_zetam1_int_e);
795
796 //! @brief PROC zetam1 = (REAL s) REAL
797
798 PROC_R_R (p, genie_zetam1_real, gsl_sf_zetam1_e);
799
800 //! @brief PROC hzeta = (REAL s, q) REAL
801
802 PROC_R_R_R (p, genie_hzeta_real, gsl_sf_hzeta_e);
803
804 //! @brief PROC eta int = (INT n) REAL
805
806 PROC_I_R (p, genie_etaint_real, gsl_sf_eta_int_e);
807
808 //! @brief PROC eta = (REAL s) REAL
809
810 PROC_R_R (p, genie_eta_real, gsl_sf_eta_e);
811
812 //! @brief PROC expm1 = (REAL x) REAL
813
814 PROC_R_R (p, genie_expm1_real, gsl_sf_expm1_e);
815
816 //! @brief PROC exprel = (REAL x) REAL
817
818 PROC_R_R (p, genie_exprel_real, gsl_sf_exprel_e);
819
820 //! @brief PROC exprel2 = (REAL x) REAL
821
822 PROC_R_R (p, genie_exprel_2_real, gsl_sf_exprel_2_e);
823
824 //! @brief PROC exprel n = (INT l, REAL x) REAL
825
826 PROC_I_R_R (p, genie_exprel_n_real, gsl_sf_exprel_n_e);
827
828 //! @brief PROC logabs = (REAL x) REAL
829
830 PROC_R_R (p, genie_log_abs_real, gsl_sf_log_abs_e);
831
832 //! @brief PROC log1plusx = (REAL x) REAL
833
834 PROC_R_R (p, genie_log_1plusx_real, gsl_sf_log_1plusx_e);
835
836 //! @brief PROC log1plusxmx = (REAL x) REAL
837
838 PROC_R_R (p, genie_log_1plusx_mx_real, gsl_sf_log_1plusx_mx_e);
839
840 //! @brief PROC hermite func = (INT n, REAL x) REAL
841
842 PROC_I_R_R (p, genie_hermite_func_real, gsl_sf_hermite_func_e);
843
844 #endif
© 2002-2024 J.M. van der Veer (jmvdveer@xs4all.nl)
|