|
|
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-2026 J. Marcel van der Veer [algol68g@algol68genie.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 A68G_REAL *x;\ 38 POP_OPERAND_ADDRESS (p, x, A68G_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 A68G_REAL *x;\ 47 POP_OPERAND_ADDRESS (p, x, A68G_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 A68G_REAL *x;\ 58 POP_OPERAND_ADDRESS (p, x, A68G_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 A68G_INT s;\ 69 POP_OBJECT (p, &s, A68G_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), A68G_REAL);\ 75 } 76 77 #define PROC_R_R_R(p, g, f)\ 78 void g (NODE_T *p) {\ 79 A68G_REAL *x, *y;\ 80 POP_OPERAND_ADDRESSES (p, x, y, A68G_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 A68G_REAL x;\ 91 POP_OBJECT (p, &x, A68G_REAL);\ 92 A68G_INT s;\ 93 POP_OBJECT (p, &s, A68G_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), A68G_REAL);\ 99 } 100 101 #define PROC_I_R_R_REVERSED(p, g, f)\ 102 void g (NODE_T *p) {\ 103 A68G_REAL x;\ 104 POP_OBJECT (p, &x, A68G_REAL);\ 105 A68G_INT s;\ 106 POP_OBJECT (p, &s, A68G_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), A68G_REAL);\ 112 } 113 114 #define PROC_R_R_R_DBL(p, g, f)\ 115 void g (NODE_T *p) {\ 116 A68G_REAL *x, *y;\ 117 POP_OPERAND_ADDRESSES (p, x, y, A68G_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 A68G_REAL *x, *y, *z;\ 128 POP_ADDRESS (p, z, A68G_REAL);\ 129 POP_OPERAND_ADDRESSES (p, x, y, A68G_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 A68G_REAL x, y;\ 140 POP_OBJECT (p, &y, A68G_REAL);\ 141 POP_OBJECT (p, &x, A68G_REAL);\ 142 A68G_INT s;\ 143 POP_OBJECT (p, &s, A68G_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), A68G_REAL);\ 149 } 150 151 #define PROC_R_R_R_R_DBL(p, g, f)\ 152 void g (NODE_T *p) {\ 153 A68G_REAL *x, *y, *z;\ 154 POP_ADDRESS (p, z, A68G_REAL);\ 155 POP_OPERAND_ADDRESSES (p, x, y, A68G_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 A68G_REAL *x, *y, *z, *rho;\ 166 POP_ADDRESS (p, rho, A68G_REAL);\ 167 POP_ADDRESS (p, z, A68G_REAL);\ 168 POP_OPERAND_ADDRESSES (p, x, y, A68G_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
© 2001-2026 J.M. van der Veer
jmvdveer@algol68genie.nl