diff options
-rw-r--r-- | External_Functions/gsl.mo | 5198 |
1 files changed, 5198 insertions, 0 deletions
diff --git a/External_Functions/gsl.mo b/External_Functions/gsl.mo new file mode 100644 index 0000000..fb3683c --- /dev/null +++ b/External_Functions/gsl.mo @@ -0,0 +1,5198 @@ +package gsl //This Library calls GNU Scientific Library from OpenModelica to compute different functions given in GSL(GNU Scientific Library + +package data_types + model gsl_permutation + extends ExternalObject; + + function constructor + input Integer N; + output gsl_permutation p; + + external "C" p = gsl_permutation_alloc(N) annotation( + Include = "#include <gsl/gsl_permutation.h>", + Library = "gsl", + Library = "gslcblas"); + end constructor; + + function destructor "Release storage of p" + input gsl_permutation p; + + external "C" gsl_permutation_free(p) annotation( + Include = "#include <gsl/gsl_permutation.h>", + Library = "gsl", + Library = "gslcblas"); + end destructor; + end gsl_permutation; + + record gsl_sf_result + //The field val contains the value and the field err contains an estimate of the absolute error in the value. + Real val; + Real err; + end gsl_sf_result; + + record gsl_sf_result_e10 + /* The following struct contains value and error fields as well as an exponent field such that the actual result is obtained as result * 10^(e10)*/ + Real val; + Real err; + Integer e10; + end gsl_sf_result_e10; + end data_types; + + package mathematical + function gsl_log1p + //This function computes the value of log(1 + x) in a way that is accurate for small x + input Real x; + output Real y; + + external "C" y = log1p(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_log1p; + + function gsl_expm1 + //this function computes the value of exp(x)-1 + input Real x; + output Real y; + + external "C" y = gsl_expm1(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_expm1; + + function gsl_hypot + //this function computes the value of sqrt(x^2+y^2) in a way which avoids overflow + input Real x; + input Real y; + output Real z; + + external "C" z = gsl_hypot(x, y) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_hypot; + + function gsl_hypot3 + //This function calculates the value of sqrt(x^2+y^2+z^2) + input Real x; + input Real y; + input Real z; + output Real o; + + external "C" o = gsl_hypot3(x, y, z) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_hypot3; + + function gsl_acosh + // this function calculates the value of arccosh(x) + input Real x; + output Real y; + + external "C" y = acosh(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_acosh; + + function gsl_asinh + // this function calculates the value of arcsinh(x) + input Real x; + output Real y; + + external "C" y = asinh(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_asinh; + + function gsl_atanh + // this function calculates the value of arctanh(x) + input Real x; + output Real y; + + external "C" y = atanh(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_atanh; + + function gsl_ldexp + //this function computes the value of x*2^e + input Real x; + // y should be given the value e + output Real z; + protected + constant Real y = Modelica.Constants.e; + + external "C" z = gsl_ldexp(x, y) annotation( + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end gsl_ldexp; + + function gsl_frexp + //This function splits the number x into its normalized fraction f and exponent e, such that x = f ∗ 2^e + // and 0.5 <= f < 1. The function returns f and stores the exponent in e. + input Real x; + output Integer e; + // it stores the exponent in z + output Real f; + + external "C" f = gsl_frexp(x, e) annotation(Include="#include<gsl/gsl_math.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_frexp; + + function gsl_pow_int + //this function computes x^n + input Real x; + input Integer n; + output Real y; + + external "C" y = gsl_pow_int(x, n) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_pow_int; + + function gsl_pow_2 + //This function calculates square fo the given number + input Real x; + output Real y; + + external "C" y = gsl_pow_2(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_pow_2; + + function gsl_pow_3 + //This function calculates cube of the given number + input Real x; + output Real y; + + external "C" y = gsl_pow_3(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_pow_3; + + function gsl_pow_4 + //This function calculates number to the power of 4 of the given number + input Real x; + output Real y; + + external "C" y = gsl_pow_4(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_pow_4; + + function gsl_pow_5 + //This function calculates number to the power of 5 of the given number + input Real x; + output Real y; + + external "C" y = gsl_pow_5(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_pow_5; + + function gsl_pow_6 + //This function calculates number to the power of 6 of the given number + input Real x; + output Real y; + + external "C" y = gsl_pow_6(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_pow_6; + + function gsl_pow_7 + //This function calculates number to the power of 6 of the given number + input Real x; + output Real y; + + external "C" y = gsl_pow_7(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_pow_7; + + function gsl_pow_8 + //This function calculates number to the power of 6 of the given number + input Real x; + output Real y; + + external "C" y = gsl_pow_8(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_pow_8; + + function gsl_pow_9 + //This function calculates number to the power of 6 of the given number + input Real x; + output Real y; + + external "C" y = gsl_pow_9(x) annotation( + Library = "gsl", + Library = "gslcblas"); + end gsl_pow_9; + + function GSL_SIGN + //This function outputs -1 for negative number and +1 if the number is positive + input Real x; + output Integer y; + + external "C" y = GSL_SIGN(x) annotation( + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_SIGN; + + function GSL_IS_ODD + //This function outputs 1 if number is odd else if number is even it returns zero + input Integer x; + output Integer y; + + external "C" y = GSL_IS_ODD(x) annotation( + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_IS_ODD; + + function GSL_IS_EVEN + //This function outputs 0 if number is odd else if number is even it returns 1 + input Integer x; + output Integer y; + + external "C" y = GSL_IS_EVEN(x) annotation( + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_IS_EVEN; + + function GSL_MAX + // This function calculates the maximum of two numbers + input Real a; + input Real b; + output Real c; + + external "C" c = GSL_MAX(a, b) annotation( + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_MAX; + + function GSL_MAX_DBL + // This function calculates the maximum of the given two floating point numbers + input Real a; + input Real b; + output Real c; + + external "C" c = GSL_MAX_DBL(a, b) annotation( + Inline = true, + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_MAX_DBL; + + function GSL_MIN_DBL + //This function calculates the minimum of two given floating point numbers + input Real a; + input Real b; + output Real c; + + external "C" c = GSL_MIN_DBL(a, b) annotation( + Inline = true, + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_MIN_DBL; + + function GSL_MAX_INT + // This function calculates the maximum of two given integers + input Real a; + input Real b; + output Real c; + + external "C" c = GSL_MAX_INT(a, b) annotation( + Inline = true, + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_MAX_INT; + + function GSL_MIN_INT + // This function calculates the minimum of the two numbers + input Real a; + input Real b; + output Real c; + + external "C" c = GSL_MIN_INT(a, b) annotation( + Inline = true, + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_MIN_INT; + + function GSL_MAX_LDBL + // This function calculates the maximum of two long double numbers + input Real a; + input Real b; + output Real c; + + external "C" c = GSL_MAX_LDBL(a, b) annotation( + Inline = true, + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_MAX_LDBL; + + function GSL_MIN_LDBL + // This function calculates the minimum of two long double numbers + input Real a; + input Real b; + output Real c; + + external "C" c = GSL_MIN_LDBL(a, b) annotation( + Inline = true, + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end GSL_MIN_LDBL; + + function gsl_fcmp + //This function determines whether x and y are approximately equal if they are equal within the range of epsilon it returns zero,if a>b it returns -1 and if b<a it returns 1 + input Real a; + input Real b; + output Real c; + protected + constant Real z = Modelica.Constants.eps; + + external "C" c = gsl_fcmp(a, b, z) annotation( + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_math.h>"); + end gsl_fcmp; + + /**/ + end mathematical; + + package COMPLEX + function gsl_complex_rect + input Real x; + input Real y; + output Real z[2]; + + external "C" z = gsl_complex_rect(x, y) annotation( + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_complex.h>", + Include = "#include<gsl/gsl_complex_math.h>"); + end gsl_complex_rect; + end COMPLEX; + + package Permutation + function gsl_permutation_init + input gsl.data_types.gsl_permutation p; + + external "C" gsl_permutation_init(p) annotation( + Include = "#include <gsl/gsl_permutation.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_permutation_init; + + function gsl_permutation_get + input gsl.data_types.gsl_permutation p; + input Integer i; + output Integer y; + + external "C" y = gsl_permutation_get(p, i) annotation( + Include = "#include <gsl/gsl_permutation.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_permutation_get; + + function gsl_ran_shuffle + input gsl.data_types.gsl_rng r; + input gsl.data_types.gsl_permutation p; + input Integer N; + + external "C" gsl_ran_shuffle(r, p, N, 8) annotation( + Include = "#include <gsl/gsl_permutation.h>", + Include = "#include <gsl/gsl_rng.h>", + Include = "#include <gsl/gsl_randist.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_ran_shuffle; + + /*gsl_ran_shuffle(r, p.data, N, sizeof(size_t))*/ + end Permutation; + + package Special_functions + + package chap_7_5_1 + function gsl_sf_bessel_J0 + // The function takes a real number x as the input and calculates the zeroth order regular cylinderical bessel function + input Real x; + //input to the bessel function + output Real y; + + external "C" y = gsl_sf_bessel_J0(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_J0; + + function gsl_sf_bessel_J0_e + // The function takes a real number x as the input and calculates the zeroth order regular cylinderical bessel function with the error estimation which is stored in result + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_J0_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_J0_e; + + function gsl_sf_bessel_J1 + // The function takes a real number x as the input and calculates the first order regular cylinderical bessel function + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_J1(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_J1; + + function gsl_sf_bessel_J1_e + // The function takes a real number x as the input and calculates the first order regular cylinderical bessel function with error stored in variable result + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_J1_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_J1_e; + + function gsl_sf_bessel_Jn + // The function takes a real number x as the input and calculates the nth order bessel function + input Real x; + input Integer n; + output Real y; + + external "C" y = gsl_sf_bessel_Jn(n, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Jn; + + function gsl_sf_bessel_Jn_e + // The function takes a real number x as the input and calculates the nth order regular cylinderical bessel function with error stored in variable result + input Real x; + input Integer n; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Jn_e(n, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Jn_e; + + function gsl_sf_bessel_Jn_array + /*This routine computes the values of the regular cylindrical Bessel functions J n (x) for n from nmin to nmax inclusive, storing the results in the array result_array*/ + input Integer nmin; + input Integer nmax; + input Real x; + output Real result_array[nmax - nmin]; + output Integer y; + + external "C" y = gsl_sf_bessel_Jn_array(nmin, nmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Jn_array; + end chap_7_5_1; + + package chap_7_5_2 + //These routines compute the irregular cylindrical Bessel function of zeroth order, Y 0 (x), for x > 0. + + function gsl_sf_bessel_Y0 + //This routine computes the irregular cylinderical Bessel functi on of zeroth order + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_Y0(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Y0; + + function gsl_sf_bessel_Y0_e + // These routines compute the irregular cylindrical Bessel function of zeroth order, Y 0 (x), for x > 0 with error which stores the result in the variable result. + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Y0_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Y0_e; + + function gsl_sf_bessel_Y1 + //These routines compute the irregular cylindrical Bessel function of 1st order, Y 1(x), for x > 0. + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_Y1(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Y1; + + function gsl_sf_bessel_Y1_e + //These routines compute the irregular cylindrical Bessel function of 1st order, Y 1 (x), for x > 0 with error. + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Y1_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Y1_e; + + function gsl_sf_bessel_Yn + //These routines compute the irregular cylindrical Bessel function of nth order, Y n (x), for x > 0 + input Real x; + input Integer n; + output Real y; + + external "C" y = gsl_sf_bessel_Yn(n, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Yn; + + function gsl_sf_bessel_Yn_e + //These routines compute the irregular cylindrical Bessel function of nth order, Y n (x), for x > 0 with error and storing the result in the variable result. + input Real x; + input Integer n; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Yn_e(n, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Yn_e; + + function gsl_sf_bessel_Yn_array + //This routine computes the values of the irregular cylindrical Bessel functions Y n (x) for n from nmin to nmax inclusive, storing the results in the array result_array. The domain of the function is x > 0. + input Integer nmin; + input Integer nmax; + input Real x; + output Real result_array[nmax - nmin]; + output Integer y; + + external "C" y = gsl_sf_bessel_Yn_array(nmin, nmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Yn_array; + end chap_7_5_2; + + package chap_7_5_3 + function gsl_sf_bessel_I0 + //This function compute the regular modified cylindrical Bessel function of zeroth order, I 0 (x) + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_I0(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_I0; + + function gsl_sf_bessel_I0_e + //This function compute the regular modified cylindrical Bessel function of zeroth order, I 0 (x) with error estimation + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_I0_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_I0_e; + + function gsl_sf_bessel_I1 + //This function compute the regular modified cylindrical Bessel function of first order, I 1 (x) + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_I1(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_I1; + + function gsl_sf_bessel_I1_e + //This function compute the regular modified cylindrical Bessel function of first order, I 1 (x) with error + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_I1_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_I1_e; + + function gsl_sf_bessel_In + //This function compute the regular modified cylindrical Bessel function of nth order, I n (x) + input Real x; + input Integer n; + output Real y; + + external "C" y = gsl_sf_bessel_In(n, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_In; + + function gsl_sf_bessel_In_e + //hese routines compute the regular modified cylindrical Bessel function of order n, I n (x) with error included in variable 'result' + input Real x; + input Integer n; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_In_e(n, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_In_e; + + function gsl_sf_bessel_In_array + /*This routine computes the values of the regular modified cylindrical Bessel functions I n (x) for n from nmin to nmax inclusive, storing the results in the array result_array. The start of the range nmin must be positive or zero. The values are computed using recurrence relations for efficiency, and therefore may differ slightly + from the exact values.*/ + input Integer nmin; + input Integer nmax; + input Real x; + output Real result_array[nmax - nmin]; + output Integer y; + + external "C" y = gsl_sf_bessel_In_array(nmin, nmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_In_array; + + function gsl_sf_bessel_I0_scaled + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_I0_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_I0_scaled; + + function gsl_sf_bessel_I0_scaled_e + /*These routines compute the scaled regular modified cylindrical Bessel function of zeroth order exp(−|x|)I0(x) */ + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_I0_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_I0_scaled_e; + + function gsl_sf_bessel_I1_scaled + /*These routines compute the scaled regular modified cylindrical Bessel function of first order exp(−|x|)I1(x).*/ + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_I1_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_I1_scaled; + + function gsl_sf_bessel_I1_scaled_e + /*These routines compute the scaled regular modified cylindrical Bessel function of first order exp(−|x|)I1(x) and with the result and error stored in variable 'result'*/ + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_I1_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_I1_scaled_e; + + function gsl_sf_bessel_In_scaled + " These routines compute the scaled regular modified cylindrical Bessel function oforder n, exp(−|x|)In(x) " + input Real x; + input Integer n; + output Real y; + + external "C" y = gsl_sf_bessel_In_scaled(n, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_In_scaled; + + function gsl_sf_bessel_In_scaled_e"These routines compute the scaled regular modified cylindrical Bessel function of order n, exp(−|x|)In(x) with result and error stored in variable 'result'" + input Real x; + input Integer n; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_In_scaled_e(n, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_In_scaled_e; + + function gsl_sf_bessel_In_scaled_array"This routine computes the values of the scaled regular cylindrical Bessel functions exp(−|x|)I n (x) for n from + nmin to nmax inclusive, storing the results in the array result_array. The start of the range nmin must + be positive or zero. The values are computed using recurrence relations for efficiency, and therefore may differ + slightly from the exact values" + input Integer nmin; + input Integer nmax; + input Real x; + output Real result_array[nmax - nmin]; + output Integer y; + + external "C" y = gsl_sf_bessel_In_scaled_array(nmin, nmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_In_scaled_array; + end chap_7_5_3; + + package chap_7_5_4"Regular Modified Cylinderical Bessel Functions" + function gsl_sf_bessel_K0"These routines compute the irregular modified cylindrical Bessel function of zeroth order, K 0 (x), for x > 0." + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_K0(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_K0; + + function gsl_sf_bessel_K0_e"These routines compute the irregular modified cylindrical Bessel function of zeroth order, K0(x), for x > 0 and result and error is stored in variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_K0_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_K0_e; + + function gsl_sf_bessel_K1"These routines compute the irregular modified cylindrical Bessel function of first order, K1(x), for x > 0." + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_K1(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_K1; + + function gsl_sf_bessel_K1_e"These routines compute the irregular modified cylindrical Bessel function of first order, K 1 (x), for x > 0 and the result and error will be stored in variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_K1_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_K1_e; + + function gsl_sf_bessel_Kn"These routines compute the irregular modified cylindrical Bessel function of order n, Kn(x), for x > 0." + input Real x; + input Integer n; + output Real y; + + external "C" y = gsl_sf_bessel_Kn(n, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Kn; + + function gsl_sf_bessel_Kn_e"These routines compute the irregular modified cylindrical Bessel function of order n, Kn(x), for x > 0 with result and error value stored in the variable 'result'" + input Real x; + input Integer n; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Kn_e(n, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Kn_e; + + function gsl_sf_bessel_Kn_array"This routine computes the values of the irregular modified cylindrical Bessel functions Kn(x) for n from nmin + to nmax inclusive, storing the results in the array result_array. The start of the range nmin must be + positive or zero. The domain of the function is x > 0. The values are computed using recurrence relations for + efficiency, and therefore may differ slightly from the exact values." + input Integer nmin; + input Integer nmax; + input Real x; + output Real result_array[nmax - nmin]; + output Integer y; + + external "C" y = gsl_sf_bessel_Kn_array(nmin, nmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Kn_array; + + function gsl_sf_bessel_K0_scaled"These routines compute the scaled irregular modified cylindrical Bessel function of zeroth order exp(x)K0(x) + for x > 0." + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_K0_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_K0_scaled; + + function gsl_sf_bessel_K0_scaled_e"These routines compute the scaled irregular modified cylindrical Bessel function of zeroth order exp(x)K0(x) + for x > 0." + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_K0_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_K0_scaled_e; + + function gsl_sf_bessel_K1_scaled"These routines compute the scaled irregular modified cylindrical Bessel function of first order exp(x)K1(x) for + x > 0." + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_K1_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_K1_scaled; + + function gsl_sf_bessel_K1_scaled_e"These routines compute the scaled irregular modified cylindrical Bessel function of first order exp(x)K 1 (x) for + x > 0 with result and error stored in the variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_K1_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_K1_scaled_e; + + function gsl_sf_bessel_Kn_scaled"These routines compute the scaled irregular modified cylindrical Bessel function of order n, exp(x)Kn(x), for + x > 0" + input Real x; + input Integer n; + output Real y; + + external "C" y = gsl_sf_bessel_Kn_scaled(n, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Kn_scaled; + + function gsl_sf_bessel_Kn_scaled_e"These routines compute the scaled irregular modified cylindrical Bessel function of order n, exp(x)K n (x), for + x > 0 and the value and error of result stored in variable'result'" + input Real x; + input Integer n; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Kn_scaled_e(n, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Kn_scaled_e; + + function gsl_sf_bessel_Kn_scaled_array"This routine computes the values of the scaled irregular cylindrical Bessel functions exp(x)K n (x) for n from + nmin to nmax inclusive, storing the results in the array result_array. The start of the range nmin must + be positive or zero. The domain of the function is x > 0. The values are computed using recurrence relations + for efficiency, and therefore may differ slightly from the exact values." + input Integer nmin; + input Integer nmax; + input Real x; + output Real result_array[nmax - nmin]; + output Integer y; + + external "C" y = gsl_sf_bessel_Kn_scaled_array(nmin, nmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Kn_scaled_array; + end chap_7_5_4; + + package chap_7_5_5 + function gsl_sf_bessel_j0 + //this function computes the regular spherical bessels function j0(x)=sin(x)/x + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_j0(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_j0; + + function gsl_sf_bessel_j0_e + // This function computes spherical bessels zero order function j(x)=sin(x)/x + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_j0_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_j0_e; + + function gsl_sf_bessel_j1 + //This function computes the 1st order spherical bessels function j1(x)=(sin(x)/x-cos(x))/x + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_j1(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_j1; + + function gsl_sf_bessel_j1_e + //This function computes the 1st order spherical bessels function j1(x)=(sin(x)/x-cos(x))/x + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_j1_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_j1_e; + + function gsl_sf_bessel_j2 + //This function computes the 2nd order regular spherical bessels function j 2 (x) = ((3/x 2 − 1) sin(x) −3 cos(x)/x)/x. + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_j2(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_j2; + + function gsl_sf_bessel_j2_e + "This function computes the 2nd order regular spherical bessels function j2(x)= ((3/x^2 − 1) sin(x) −3 cos(x)/x)/x and store the value and the error of answer in the variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_j2_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_j2_e; + + function gsl_sf_bessel_jl"These routines compute the regular spherical Bessel function of order l, jl(x), for l ≥ 0 and x ≥ 0." + input Integer l; + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_jl(l, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_jl; + +function gsl_sf_bessel_jl_e"These routines compute the regular spherical Bessel function of order l, jl(x), for l ≥ 0 and x ≥ 0 and the value and error stored in the variable 'result'" + input Integer l; + //order of the bessel function + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_jl_e(l, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); +end gsl_sf_bessel_jl_e; + + function gsl_sf_bessel_jl_array"This routine computes the values of the regular spherical Bessel functions j l (x) for l from 0 to lmax inclusive + for lmax ≥ 0 and x ≥ 0, storing the results in the array result_array. The values are computed using + recurrence relations for efficiency, and therefore may differ slightly from the exact values." + input Integer lmax; + input Real x; + output Real result_array[lmax]; + output Integer y; + + external "C" y = gsl_sf_bessel_jl_array(lmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_jl_array; + + function gsl_sf_bessel_jl_steed_array"This routine uses Steed’s method to compute the values of the regular spherical Bessel functions j l (x) for l + from 0 to lmax inclusive for lmax ≥ 0 and x ≥ 0, storing the results in the array result_array. Steed’s method is more stable + than the recurrence used in the other functions but is also slower." + input Integer lmax; + input Real x; + output Real result_array[lmax]; + output Integer y; + + external "C" y = gsl_sf_bessel_jl_steed_array(lmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_jl_steed_array; + end chap_7_5_5; + + package chap_7_5_6"Irregular Spherical Bessel Functions" + function gsl_sf_bessel_y0 + //this function computes the irregular spherical bessels function y0(x)=-cos(x)/x + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_y0(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_y0; + + function gsl_sf_bessel_y0_e + // These routines compute the irregular spherical Bessel function of zeroth order, y0(x)=− cos(x)/x. + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_y0_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_y0_e; + + function gsl_sf_bessel_y1 + " These routines compute the irregular spherical Bessel function of first order, y 1 (x) = −(cos(x)/x + sin(x))/x." + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_y1(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_y1; + + function gsl_sf_bessel_y1_e + "These routines compute the irregular spherical Bessel function of first order, y 1 (x) = −(cos(x)/x + sin(x))/x." + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_y1_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_y1_e; + + function gsl_sf_bessel_y2 + "These routines compute the irregular spherical Bessel function of second order, y2(x) = (−3/x^3 +1/x)cos(x)−(3/x^2)sin(x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_y2(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_y2; + + function gsl_sf_bessel_y2_e + "These routines compute the irregular spherical Bessel function of second order, y2 (x) =(−3/x^3 +1/x)cos(x)−(3/x^2)sin(x) with the value and the error stored in variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_y2_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_y2_e; + + function gsl_sf_bessel_yl"These routines compute the irregular spherical Bessel function of order l, yl(x), for l ≥ 0." + input Integer l; + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_yl(l, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_yl; + + function gsl_sf_bessel_yl_e"These routines compute the irregular spherical Bessel function of order l, y l (x), for l ≥ 0.and the value and error stored in the variable 'result'" + input Integer l; + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + external "C" y = gsl_sf_bessel_yl_e(l, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_yl_e; + + function gsl_sf_bessel_yl_array"This routine computes the values of the irregular spherical Bessel functions yl(x) for l from 0 to lmax inclusive for lmax ≥ 0, storing the results in the array result_array. The values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values" + input Integer lmax; + input Real x; + output Real result_array[lmax]; + output Integer y; + + external "C" y = gsl_sf_bessel_yl_array(lmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_yl_array; + end chap_7_5_6; + + package chap_7_5_7 + //regular modified spherical bessel functions + + function gsl_sf_bessel_i0_scaled"These routines compute the scaled regular modified spherical Bessel function of zeroth order, exp(−|x|)i0(x)." + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_i0_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_i0_scaled; + + function gsl_sf_bessel_i0_scaled_e"These routines compute the scaled regular modified spherical Bessel function of zeroth order, exp(−|x|)i 0 (x) with calculated value and error stored in a variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_i0_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_i0_scaled_e; + + function gsl_sf_bessel_i1_scaled"This routine compute the scaled regular modified spherical Bessel function of first order, exp(−|x|)i1(x)." + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_i1_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_i1_scaled; + + function gsl_sf_bessel_i1_scaled_e"This routine computes the scaled regular modified spherical Bessel function of first order, exp(−|x|)i1(x) with the computed value and error stored in variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_i1_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_i1_scaled_e; + + function gsl_sf_bessel_i2_scaled"This routine computes the scaled regular modified spherical Bessel function of second order, exp(−|x|)i 2 (x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_i2_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_i2_scaled; + + function gsl_sf_bessel_i2_scaled_e"This routine computes the scaled regular modified spherical Bessel function of second order, exp(−|x|)i2(x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_i2_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_i2_scaled_e; + + function gsl_sf_bessel_il_scaled"This routine computes the scaled regular modified spherical Bessel function of order l, exp(−|x|)il(x)" + input Real x; + input Integer l; + output Real y; + + external "C" y = gsl_sf_bessel_il_scaled(l, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_il_scaled; + + function gsl_sf_bessel_il_scaled_e"This routine computes the scaled regular modified spherical Bessel function of order l, exp(−|x|)il(x) with value and error of the result stored in the variable'result'" + input Real x; + input Integer n; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_il_scaled_e(n, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_il_scaled_e; + + function gsl_sf_bessel_il_scaled_array"This routine computes the values of the scaled regular modified spherical Bessel functions exp(−|x|)i l (x) for l from 0 to lmax inclusive for lmax ≥ 0, storing the results in the array result_array. The values are + computed using recurrence relations for efficiency, and therefore may differ slightly from the exact values." + input Integer lmax; + input Real x; + output Real result_array[lmax]; + output Integer y; + + external "C" y = gsl_sf_bessel_il_scaled_array(lmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_il_scaled_array; + end chap_7_5_7; + + package chap_7_5_8"Irregular Modified Spherical Bessel Functions" + /*The irregular modified spherical Bessel functions k l (x) are related to the irregular modified Bessel functions of frac- + tional order, k l (x) =(( π/(2x))^0.5)Kl+1/2 (x). + */ + function gsl_sf_bessel_k0_scaled"This routine computes the scaled irregular modified spherical Bessel function of zeroth order, exp(x)k0(x), + for x > 0" + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_k0_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_k0_scaled; + + function gsl_sf_bessel_k0_scaled_e"This routine computes the scaled irregular modified spherical Bessel function of zeroth order, exp(x)k0(x), + for x > 0 with value and error computed , stored in variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_k0_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_k0_scaled_e; + + function gsl_sf_bessel_k1_scaled"This routine computes the scaled irregular modified spherical Bessel function of first order, exp(x)k 1 (x), for + x > 0" + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_k1_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_k1_scaled; + + function gsl_sf_bessel_k1_scaled_e"This routine computes the scaled irregular modified spherical Bessel function of first order, exp(x)k1(x), for + x > 0 with the value and error stored in the variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_k1_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_k1_scaled_e; + + function gsl_sf_bessel_k2_scaled"This routine computes the scaled irregular modified spherical Bessel function of second order, exp(x)k2(x), + for x > 0" + input Real x; + output Real y; + + external "C" y = gsl_sf_bessel_k2_scaled(x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_k2_scaled; + + function gsl_sf_bessel_k2_scaled_e"This routine computes the scaled irregular modified spherical Bessel function of second order, exp(x)k2(x), + for x > 0 with value computed and the error stored in the variable 'result' " + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_k2_scaled_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_k2_scaled_e; + + function gsl_sf_bessel_kl_scaled"This routine computes the scaled irregular modified spherical Bessel function of order l, exp(x)kl(x), for + x > 0" + input Real x; + input Integer l; + output Real y; + + external "C" y = gsl_sf_bessel_kl_scaled(l, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_kl_scaled; + + function gsl_sf_bessel_kl_scaled_e"This routine computes the scaled irregular modified spherical Bessel function of order l, exp(x)kl(x), for + x > 0 with value and error computed stored in the variable 'result' " + input Real x; + input Integer n; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_kl_scaled_e(n, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_kl_scaled_e; + + function gsl_sf_bessel_kl_scaled_array"This routine computes the values of the scaled irregular modified spherical Bessel functions exp(x)k l (x) for + l from 0 to lmax inclusive for lmax ≥ 0 and x > 0, storing the results in the array result_array. The + values are computed using recurrence relations for efficiency, and therefore may differ slightly from the exact + values" + input Integer lmax; + input Real x; + output Real result_array[lmax]; + output Integer y; + + external "C" y = gsl_sf_bessel_kl_scaled_array(lmax, x, result_array) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_kl_scaled_array; + end chap_7_5_8; + + package chap_7_5_9"Regular Bessel Function—Fractional Order" + function gsl_sf_bessel_Jnu"These routines compute the regular cylindrical Bessel function of fractional order ν, Jν(x)" + input Real x; + input Real nu; + output Real y; + + external "C" y = gsl_sf_bessel_Jnu(nu, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Jnu; + + function gsl_sf_bessel_Jnu_e"These routines compute the regular cylindrical Bessel function of fractional order ν, Jν(x) with computed value and error stored in the variable 'result'" + input Real x; + input Real nu; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Jnu_e(nu, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Jnu_e; + end chap_7_5_9; + + package chap_7_5_10"Irregular Bessel Functions—Fractional Order" + function gsl_sf_bessel_Ynu"These routines compute the irregular cylindrical Bessel function of fractional order ν, Yν(x)" + input Real x; + input Real nu; + output Real y; + + external "C" y = gsl_sf_bessel_Ynu(nu, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Ynu; + + function gsl_sf_bessel_Ynu_e"These routines compute the irregular cylindrical Bessel function of fractional order ν, Yν(x) with value and error stored in the variable 'result'" + input Real x; + input Real nu; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Ynu_e(nu, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Ynu_e; + end chap_7_5_10; + + package chap_7_5_11"Regular Modified Bessel Functions—Fractional Order" + function gsl_sf_bessel_Inu"These routines compute the regular modified Bessel function of fractional order ν,Iν(x) for x>0, ν>0." + input Real x; + input Real nu; + output Real y; + + external "C" y = gsl_sf_bessel_Inu(nu, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Inu; + + function gsl_sf_bessel_Inu_e"These routines compute the regular modified Bessel function of fractional order ν, Iν(x) for x>0, ν>0 with the value and error computed is stored in the variable 'result'" + input Real x; + input Real nu; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Inu_e(nu, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Inu_e; + + function gsl_sf_bessel_Inu_scaled"These routines compute the scaled regular modified Bessel function of fractional order ν, exp(−|x|)Iν(x) for + x>0, ν>0" + input Real x; + input Real nu; + output Real y; + + external "C" y = gsl_sf_bessel_Inu_scaled(nu, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Inu_scaled; + + function gsl_sf_bessel_Inu_scaled_e"These routines compute the scaled regular modified Bessel function of fractional order ν, exp(−|x|)Iν(x) for + x>0, ν>0 with the value and error computed stored in the variable 'result'" + input Real x; + input Real nu; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Inu_scaled_e(nu, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Inu_scaled_e; + end chap_7_5_11; + + package chap_7_5_12"Irregular Modified Bessel Functions—Fractional Order" + + + function gsl_sf_bessel_Knu"This routine computes the irregular modified Bessel function of fractional order ν, Kν(x) for x>0, ν>0." + input Real x; + input Real nu; + output Real y; + + external "C" y = gsl_sf_bessel_Knu(nu, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Knu; + + function gsl_sf_bessel_Knu_e"This routine computes the irregular modified Bessel function of fractional order ν, Kν(x) for x>0, ν>0 with the value and the error computed stored in the variable 'result'" + input Real x; + input Real nu; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Knu_e(nu, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Knu_e; + + function gsl_sf_bessel_lnKnu"This routine computes the logarithm of the irregular modified Bessel function of fractional order ν, ln(Kν(x)) + for x > 0, ν > 0" + input Real x; + input Real nu; + output Real y; + + external "C" y = gsl_sf_bessel_lnKnu(nu, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_lnKnu; + + function gsl_sf_bessel_lnKnu_e"This routine computes the logarithm of the irregular modified Bessel function of fractional order ν, ln(Kν(x)) + for x > 0, ν > 0 with the computed value and error stored in the variable 'result'" + input Real x; + input Real nu; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_lnKnu_e(nu, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_lnKnu_e; + + function gsl_sf_bessel_Knu_scaled"This routine computes the scaled irregular modified Bessel function of fractional order ν, exp(+|x|)Kν(x) for + x > 0, ν > 0" + input Real x; + input Real nu; + output Real y; + + external "C" y = gsl_sf_bessel_Knu_scaled(nu, x) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Knu_scaled; + + function gsl_sf_bessel_Knu_scaled_e"This routine computes the scaled irregular modified Bessel function of fractional order ν, exp(+|x|)Kν(x) for + x > 0, ν > 0 with the computed value and error stored in the variable 'result'" + input Real x; + input Real nu; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_Knu_scaled_e(nu, x, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_Knu_scaled_e; + end chap_7_5_12; + + package chap_7_5_13"Zeros of Regular Bessel Functions" + function gsl_sf_bessel_zero_J0"This routine computes the location of the x-th positive zero of the Bessel function J0(x)." + input Integer s; + output Real y; + + external "C" y = gsl_sf_bessel_zero_J0(s) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_zero_J0; + + function gsl_sf_bessel_zero_J0_e"These routines compute the location of the s-th positive zero of the Bessel function J0(x) with the value and the error computed stored in the variable 'result'" + input Real s; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_zero_J0_e(s, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_zero_J0_e; + + function gsl_sf_bessel_zero_J1"These routines compute the location of the s-th positive zero of the Bessel function J 1 (x)." + input Real s; + output Real y; + + external "C" y = gsl_sf_bessel_zero_J1(s) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_zero_J1; + + function gsl_sf_bessel_zero_J1_e "These routines compute the location of the s-th positive zero of the Bessel function J 1 (x) with value and error stored in the variable 'result'" + input Real s; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_zero_J1_e(s, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_zero_J1_e; + + function gsl_sf_bessel_zero_Jnu"These routines compute the location of the s-th positive zero of the Bessel function J ν (x). The current imple- + mentation does not support negative values of nu" + input Real s; + input Real nu; + output Real y; + + external "C" y = gsl_sf_bessel_zero_Jnu(nu, s) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_zero_Jnu; + + function gsl_sf_bessel_zero_Jnu_e"These routines compute the location of the s-th positive zero of the Bessel function Jν(x). The current imple- + mentation does not support negative values of nu with computed value and error stored in the variable 'result'" + input Real s; + input Real nu; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_bessel_zero_Jnu_e(nu, s, result) annotation( + Include = "#include <gsl/gsl_sf_bessel.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_bessel_zero_Jnu_e; + end chap_7_5_13; + + package chap_7_6 + "The Clausen function is defined by the following integral, + Cl2(x) = −Integral(limits:zero to x)(dt*log(2*sin (t/2)))" + + function gsl_sf_clausen"These routines compute the Clausen integral Cl2(x)." + input Real x; + output Real y; + + external "C" y = gsl_sf_clausen(x) annotation( + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_sf_clausen.h>"); + end gsl_sf_clausen; + + function gsl_sf_clausen_e"These routines compute the Clausen integral Cl2(x) with the value and error stored in variable result" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_clausen_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_clausen.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_clausen_e; + end chap_7_6; + + package chap_7_7_1"Normalized Hydrogenic Bound States of Coulomb Functions" + function gsl_sf_hydrogenicR_1 + input Real Z; + //atomic number of the atom + input Real r; + //radus of the atom + output Real R; + //lowest-order normalized hydrogenic bound state radial wavefunction + + external "C" R = gsl_sf_hydrogenicR_1(Z, r) annotation( + Include = "#include <gsl/gsl_sf_coulomb.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_hydrogenicR_1; + + function gsl_sf_hydrogenicR_1_e + input Real Z; + //atomic number of the atom + input Real r; + //radus of the atom + output gsl.data_types.gsl_sf_result result; + // The value and error is stored in this variable result + output Integer y; + //lowest-order normalized hydrogenic bound state radial wavefunction + + external "C" y = gsl_sf_hydrogenicR_1_e(Z, r, result) annotation( + Include = "#include <gsl/gsl_sf_coulomb.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_hydrogenicR_1_e; + + function gsl_sf_hydrogenicR + input Integer n; + //order of the wavefunction + input Integer l; + input Real Z; + //atomic number of the atom + input Real r; + //radus of the atom + output Real R; + //lowest-order normalized hydrogenic bound state radial wavefunction + + external "C" R = gsl_sf_hydrogenicR(n, l, Z, r) annotation( + Include = "#include <gsl/gsl_sf_coulomb.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_hydrogenicR; + + function gsl_sf_hydrogenicR_e + input Integer n; + input Integer l; + input Real Z; + //atomic number of the atom + input Real r; + //radus of the atom + output gsl.data_types.gsl_sf_result result; + //The value and error computed is stored in this variable + output Integer y; + //lowest-order normalized hydrogenic bound state radial wavefunction + + external "C" y = gsl_sf_hydrogenicR_e(n, l, Z, r, result) annotation( + Include = "#include <gsl/gsl_sf_coulomb.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_hydrogenicR_e; + end chap_7_7_1; + + package chap_7_7_2 + function gsl_sf_coulomb_wave_FG_e"This function computes the Coulomb wave functions FL(η,x), G L−k (η, x) and their derivatives FL '(η, x), G'L−k (η, x) with respect to x. The parameters are restricted to L, L − k > −1/2, x > 0 and integer k. L itself is not restricted to being an integer. The results are stored in the parameters F, G for the function values + and Fp, Gp for the derivative values. If an overflow occurs, GSL_EOVRFLW is returned and scaling exponents + are stored in the modifiable parameters exp_F, exp_G." + input Real eta; + // eta=Z/k,where Z is atomic number + input Real x; + input Real L_F;//angular momentum + input Integer k; + //L_F-k>-1/2 + output gsl.data_types.gsl_sf_result F; + //coulomb wave function + output gsl.data_types.gsl_sf_result Fp; + //derivative of wave function + output gsl.data_types.gsl_sf_result G; + //coulomb wave function + output gsl.data_types.gsl_sf_result Gp; + //derivative of wave function + output Real exp_F; + //out of bound error exponenet stored here + output Real exp_G; + //out of bound error exponent stored here + output Integer y; + + external "C" y = gsl_sf_coulomb_wave_FG_e(eta, x, L_F, k, F, Fp, G, Gp, exp_F, exp_G) annotation( + Include = "#include<gsl/gsl_sf_coulomb.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coulomb_wave_FG_e; + + function gsl_sf_coulomb_wave_F_array"This function computes the Coulomb wave function F L (η, x) for L = Lmin . . . Lmin + kmax, storing the + results in fc_array. In the case of overflow the exponent is stored in F_exponent" + input Real L_min"angular momentum"; + input Integer kmax; + input Real eta; + input Real x; + output Real fc_array[kmax]; + output Real F_exponent; + output Integer y; + + external "C" y = gsl_sf_coulomb_wave_F_array(L_min, kmax, eta, x, fc_array, F_exponent) annotation( + Include = "#include<gsl/gsl_sf_coulomb.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coulomb_wave_F_array; + + + function gsl_sf_coulomb_wave_FG_array"This function computes the coulombs wavefunctions FL(η, x), GL(η, x) for L = Lmin . . . Lmin + kmax storing the re- + sults in fc_array and gc_array. In the case of overflow the exponents are stored in F_exponent and + G_exponent" + input Real L_min; + input Integer kmax; + input Real eta; + input Real x; + output Real fc_array[kmax]; + output Real gc_array[kmax]; + output Real F_exponent; + output Real G_exponent; + output Integer y; + + external "C" y = gsl_sf_coulomb_wave_FG_array(L_min, kmax, eta, x, fc_array, gc_array, F_exponent, G_exponent) annotation( + Include = "#include<gsl/gsl_sf_coulomb.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coulomb_wave_FG_array; + + function gsl_sf_coulomb_wave_FGp_array"This function computes the coulombs wave functions FL(η,x), GL(η, x) and their derivatives FL0(η,x), G0L(η, x) for L = + Lmin . . . Lmin + kmax storing the results in fc_array, gc_array, fcp_array and gcp_array. In + the case of overflow the exponents are stored in F_exponent and G_exponent" + input Real L_min; + input Integer kmax; + input Real eta; + input Real x; + output Real fc_array[kmax]; + output Real fcp_array[kmax]; + output Real gc_array[kmax]; + output Real gcp_array[kmax]; + output Real F_exponent; + output Real G_exponent; + output Integer y; + + external "C" y = gsl_sf_coulomb_wave_FGp_array(L_min, kmax, eta, x, fc_array, fcp_array, gc_array, gcp_array, F_exponent, G_exponent) annotation( + Include = "#include<gsl/gsl_sf_coulomb.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coulomb_wave_FGp_array; + + function gsl_sf_coulomb_wave_sphF_array"This function computes the Coulomb wave function divided by the argument F L (η, x)/x for L = + Lmin . . . Lmin + kmax, storing the results in fc_array. In the case of overflow the exponent is stored + in F_exponent. This function reduces to spherical Bessel functions in the limit η → 0." + input Real L_min; + input Integer kmax; + input Real eta; + input Real x; + output Real fc_array[kmax]; + output Real F_exponent; + output Integer y; + + external "C" y = gsl_sf_coulomb_wave_sphF_array(L_min, kmax, eta, x, fc_array, F_exponent) annotation( + Include = "#include<gsl/gsl_sf_coulomb.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coulomb_wave_sphF_array; + annotation( + Documentation); + end chap_7_7_2; + + package chap_7_7_3"Coulomb Wave Function Normalization Constant" + function gsl_sf_coulomb_CL_e"This function computes the Coulomb wave function normalization constant C L (η) for L > −1 and stores the computed value and error in the variable 'result'" + input Real L; + input Real eta; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_coulomb_CL_e(L, eta, result) annotation( + Include = "#include<gsl/gsl_sf_coulomb.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coulomb_CL_e; + + function gsl_sf_coulomb_CL_array"This function computes the Coulomb wave function normalization constant C L (η) for L = Lmin . . . Lmin + + kmax, Lmin > −1." + input Real Lmin; + input Integer kmax; + input Real eta; + output Real cl[kmax]; + output Integer y; + + external "C" y = gsl_sf_coulomb_CL_array(Lmin, kmax, eta, cl) annotation( + Include = "#include<gsl/gsl_sf_coulomb.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coulomb_CL_array; + end chap_7_7_3; + + + +/*The Wigner 3-j, 6-j and 9-j symbols give the coupling coefficients for combined angular momentum vectors. Since + the arguments of the standard coupling coefficient functions are integer or half-integer, the arguments of the follow- + ing functions are, by convention, integers equal to twice the actual spin value. For information on the 3-j coeffi- + cients see Abramowitz & Stegun, Section 27.9. The functions described in the section chap_7_8_1,chap_7_8_2 and chap_7_8_3 are declared in the header file + gsl_sf_coupling.h.*/ + package chap_7_8_1 + + + function gsl_sf_coupling_3j/* this routine calculates the wigners 3j coefficient */ + input Integer two_ja; + input Integer two_jb; + input Integer two_jc; + input Integer two_ma; + input Integer two_mb; + input Integer two_mc; + output Real y; + + external "C" y = gsl_sf_coupling_3j(two_ja, two_jb, two_jc, two_ma, two_mb, two_mc) annotation( + Include = "#include<gsl/gsl_sf_coupling.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coupling_3j; + + function gsl_sf_coupling_3j_e /*This routine calculates the wigners 3j coefficient with error stored in the variable 'result' */ + input Integer two_ja; + input Integer two_jb; + input Integer two_jc; + input Integer two_ma; + input Integer two_mb; + input Integer two_mc; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_coupling_3j_e(two_ja, two_jb, two_jc, two_ma, two_mb, two_mc, result) annotation( + Include = "#include<gsl/gsl_sf_coupling.h>", + Include = "#include<gsl/gsl_sf_result>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coupling_3j_e; + annotation( + Documentation(info = "<html><head></head><body>jflfjjljjjljfdfjlfdljsdlkjldf;lkfesjfnvk nin;oknewo;kwdl;;kvnvlkvkokllreokvkm llv c v knvlndnsdndnkmdnmnmnknknvkndvdn</body></html>")); + end chap_7_8_1; + + package chap_7_8_2 + function gsl_sf_coupling_6j"This routine calculates wigners 6j coefficient " + input Integer two_ja; + input Integer two_jb; + input Integer two_jc; + input Integer two_ma; + input Integer two_mb; + input Integer two_mc; + output Real y; + + external "C" y = gsl_sf_coupling_6j(two_ja, two_jb, two_jc, two_ma, two_mb, two_mc) annotation( + Include = "#include<gsl/gsl_sf_coupling.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coupling_6j; + + function gsl_sf_coupling_6j_e"This routine calculates wigners 6j coefficient with the error which is stored in variable 'result'" + input Integer two_ja; + input Integer two_jb; + input Integer two_jc; + input Integer two_ma; + input Integer two_mb; + input Integer two_mc; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_coupling_6j_e(two_ja, two_jb, two_jc, two_ma, two_mb, two_mc, result) annotation( + Include = "#include<gsl/gsl_sf_coupling.h>", + Include = "#include<gsl/gsl_sf_result>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coupling_6j_e; + end chap_7_8_2; + + /* + + double gsl_sf_coupling_9j(int two_ja, int two_jb, int two_jc, int two_jd, int two_je, int two_jf, + int two_jg, int two_jh, int two_ji) + int gsl_sf_coupling_9j_e(int two_ja, int two_jb, int two_jc, int two_jd, int two_je, int two_jf, int two_jg, + int two_jh, int two_ji, gsl_sf_result * result) + These routines compute the Wigner 9-j coeffici + + */ + + package chap_7_8_3 + function gsl_sf_coupling_9j"This routine calculates the wigners 9j coefficient which is stored in the variable y" + input Integer two_ja; + input Integer two_jb; + input Integer two_jc; + input Integer two_jd; + input Integer two_je; + input Integer two_jf; + input Integer two_jg; + input Integer two_jh; + input Integer two_ji; + output Real y; + + external "C" y = gsl_sf_coupling_9j(two_ja, two_jb, two_jc, two_jd, two_je, two_jf, two_jg, two_jh, two_ji) annotation( + Include = "#include<gsl/gsl_sf_coupling.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coupling_9j; + + function gsl_sf_coupling_9j_e"This routine calculates the wigners 9j coefficient with error stored in the variable 'result'" + input Integer two_ja; + input Integer two_jb; + input Integer two_jc; + input Integer two_jd; + input Integer two_je; + input Integer two_jf; + input Integer two_jg; + input Integer two_jh; + input Integer two_ji; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_coupling_9j_e(two_ja, two_jb, two_jc, two_jd, two_je, two_jf, two_jg, two_jh, two_ji, result) annotation( + Include = "#include<gsl/gsl_sf_coupling.h>", + Include = "#include<gsl/gsl_sf_result>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_coupling_9j_e; + end chap_7_8_3; + + package chap_7_9" + A table of Dawson’s integral can be found in Abramowitz & Stegun, Table 7.5. The Dawson functions are declared in + the header file gsl_sf_dawson.h." + function gsl_sf_dawson"This routine calculates the Dawson Integral " + input Real x; + output Real y; + + external "C" y = gsl_sf_dawson(x) annotation( + Include = "#include <gsl/gsl_sf_dawson.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_dawson; + function gsl_sf_dawson_e"This routine calculates the Dawson Integral with the result with error stored in the variable 'result'" + + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_dawson_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_dawson.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_dawson_e; + end chap_7_9; + + package chap_7_10"The Debye functions D n (x) + For information see Abramowitz & Stegun, Section 27.1. The Debye functions are declared in the header file + gsl_sf_debye.h." + + + function gsl_sf_debye_1"This routine computes the first order Debye function" + input Real x; + output Real y; + + external "C" y = gsl_sf_debye_1(x)annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_1; + + function gsl_sf_debye_1_e"This routine computes the first order Debye function with error which are stored in the variable 'result'" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_debye_1_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_1_e; + + function gsl_sf_debye_2"This routine computes the second-order Debye function D2(x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_debye_2(x) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_2; + + function gsl_sf_debye_2_e"This routine computes the second-order Debye function D2(x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_debye_2_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_2_e; + + function gsl_sf_debye_3"This routines compute the third-order Debye function D 3 (x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_debye_3(x) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_3; + + function gsl_sf_debye_3_e"This routine computes the third-order Debye function D 3 (x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_debye_3_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_3_e; + + function gsl_sf_debye_4"This routine computes the fourth-order Debye function D 4 (x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_debye_4(x) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_4; + + function gsl_sf_debye_4_e"This routine computes the fourth-order Debye function D 4 (x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_debye_4_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_4_e; + + function gsl_sf_debye_5"This routine computes the fifth-order Debye function D 5 (x)." + input Real x; + output Real y; + + external "C" y = gsl_sf_debye_5(x) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_5; + + function gsl_sf_debye_5_e"This routine computes the fifth-order Debye function D 5 (x)." + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_debye_5_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_5_e; + + function gsl_sf_debye_6"This routine computes the sixth-order Debye function D 6 (x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_debye_6(x) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_6; + + function gsl_sf_debye_6_e"This routine computes the sixth-order Debye function D 6 (x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_debye_6_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_debye.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_debye_6_e; + end chap_7_10; + + package chap_7_11_1"Real Argument" + function gsl_sf_dilog"These routines compute the dilogarithm for a real argument" + input Real x; + output Real y; + + external "C" y = gsl_sf_dilog(x) annotation( + Include = "#include <gsl/gsl_sf_dilog.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_dilog; + + function gsl_sf_dilog_e"These routines compute the dilogarithm for a real argument" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_dilog_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_dilog.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_dilog_e; + end chap_7_11_1; + + package chap_7_11_2 + function gsl_sf_complex_dilog_e" This function computes the full complex-valued dilogarithm for the complex argument z = r exp(iθ). The real + and imaginary parts of the result are returned in result_re, result_im." + input Real r; + input Real theta; + output gsl.data_types.gsl_sf_result result_re; + output gsl.data_types.gsl_sf_result result_im; + output Integer y; + + external "C" y = gsl_sf_complex_dilog_e(r, theta, result_re, result_im) annotation( + Include = "#include<gsl/gsl_sf_dilog.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_complex_dilog_e; + + /* int gsl_sf_complex_dilog_e(double r, double theta, gsl_sf_result * result_re, gsl_sf_result * re- + sult_im)*/ + end chap_7_11_2; + + package chap_7_12"Elementary Operations:The following functions allow for the propagation of errors when combining quantities by multiplication. The func- + tions are declared in the header file gsl_sf_elementary.h." + function gsl_sf_multiply + input Real x; + input Real y; + output Real z; + + external "C" z = gsl_sf_multiply(x, y) annotation( + Include = "#include<gsl/gsl_sf_elementary.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_multiply; + + function gsl_sf_multiply_e"This function multiplies x and y storing the product and its associated error in result" + input Real x; + input Real y; + output gsl.data_types.gsl_sf_result result; + output Integer z; + + external "C" z = gsl_sf_multiply_e(x, y, result) annotation( + Include = "#include<gsl/gsl_sf_elementary.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_multiply_e; + + function gsl_sf_multiply_err_e"This + p function multiplies x and y with associated absolute errors dx and dy. The product xy ± + xy *((dx/x)^2 + (dy/y)^2)^0.5 is stored in result" + input Real x; + input Real dx; + input Real y; + input Real dy; + output gsl.data_types.gsl_sf_result result; + output Integer z; + + external "C" z = gsl_sf_multiply_err_e(x, dx, y, dy, result) annotation( + Include = "#include<gsl/gsl_sf_elementary.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_multiply_err_e; + end chap_7_12; + + package chap_7_15_1"These routines compute the error function erf(x)" + function gsl_sf_erf"This routine computes the error function erf(x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_erf(x) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_erf; + + function gsl_sf_erf_e"This routine computes the error function erf(x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_erf_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Include = "#include<gsl/gsl.sf.result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_erf_e; + end chap_7_15_1; + + package chap_7_15_2"Complementary Error Function" + function gsl_sf_erfc"This routine computes the complementary error function erfc(x) = 1 − erf(x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_erfc(x) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_erfc; + + function gsl_sf_erfc_e"This routine computes the complementary error function erfc(x) = 1 − erf(x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_erfc_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Include = "#include<gsl/gsl.sf.result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_erfc_e; + end chap_7_15_2; + + package chap_7_15_3"Log Complementary Error Function" + function gsl_sf_log_erfc"These routines compute the logarithm of the complementary error function log(erfc(x))" + input Real x; + output Real y; + + external "C" y = gsl_sf_log_erfc(x) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_log_erfc; + + function gsl_sf_log_erfc_e"These routines compute the logarithm of the complementary error function log(erfc(x))" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_log_erfc_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Include = "#include<gsl/gsl.sf.result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_log_erfc_e; + end chap_7_15_3; + + package chap_7_15_4"Probability functions" + + function gsl_sf_erf_Z"This routine computes the Gaussian probability density function Z(x) = (1/ (2π)^0.5) exp(−x^2 /2)" + input Real x; + output Real y; + + external "C" y = gsl_sf_erf_Z(x) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_erf_Z; + + function gsl_sf_erf_Z_e"This routine computes the Gaussian probability density function Z(x) = (1/ (2π)^0.5) exp(−x^2 /2)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_erf_Z_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Include = "#include<gsl/gsl.sf.result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_erf_Z_e; + + function gsl_sf_erf_Q"This routine computes the upper tail of the Gaussian probability function Q(x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_erf_Q(x) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_erf_Q; + + function gsl_sf_erf_Q_e"This routine computes the upper tail of the Gaussian probability function Q(x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_erf_Q_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Include = "#include<gsl/gsl.sf.result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_erf_Q_e; + + + + function gsl_sf_hazard"This routine computes the hazard function for the normal distribution" + input Real x; + output Real y; + + external "C" y = gsl_sf_hazard(x) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_hazard; + + function gsl_sf_hazard_e"This routine computes the hazard function for the normal distribution" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_hazard_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_erf.h>", + Include = "#include<gsl/gsl.sf.result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_hazard_e; + end chap_7_15_4; + + package chap_7_16_1"Exponential Function" + + function gsl_sf_exp"This routine provide an exponential function exp(x) using GSL semantics and error checking" + input Real x; + output Real y; + + external "C" y = gsl_sf_exp(x) annotation( + Include = "#include <gsl/gsl_sf_exp.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exp; + + function gsl_sf_exp_e"This routine provides an exponential function exp(x) using GSL semantics and error checking." + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_exp_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_exp.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exp_e; + + function gsl_sf_exp_e10_e"This function computes the exponential exp(x) using the gsl_sf_result_e10 type to return a result with + extended range. This function may be useful if the value of exp(x) would overflow the numeric range of + double." + input Real x; + output gsl.data_types.gsl_sf_result_e10 result; + output Integer y; + + external "C" y = gsl_sf_exp_e10_e(x, result) annotation( + Include = "#include <gsl/gsl_sf_exp.h>", + Include = "#include <gsl/gsl_sf_result_e10.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exp_e10_e; + + function gsl_sf_exp_mult"These routines exponentiate x and multiply by the factor y to return the product y exp(x)" + input Real x; + input Real y; + output Real z; + + external "C" z = gsl_sf_exp_mult(x, y) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Library = "gsl", + Library = "gslcbla)"); + end gsl_sf_exp_mult; + + function gsl_sf_exp_mult_e"These routines exponentiate x and multiply by the factor y to return the product y exp(x)" + input Real x; + input Real y; + output gsl.data_types.gsl_sf_result result; + output Integer z; + + external "C" z = gsl_sf_exp_mult_e(x, y, result) annotation( + Include = "#include <gsl/gsl_sf_exp.h>", + Include = "#include <gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exp_mult_e; + + function gsl_sf_exp_mult_e10_e"This function computes the product y exp(x) using the gsl_sf_result_e10 type to return a result with + extended numeric range" + input Real x; + input Real y; + output gsl.data_types.gsl_sf_result_e10 result; + output Integer z; + + external "C" z = gsl_sf_exp_mult_e10_e(x, y, result) annotation( + Include = "#include <gsl/gsl_sf_exp.h>", + Include = "#include <gsl/gsl_sf_result_e10.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exp_mult_e10_e; + end chap_7_16_1; + + package chap_7_16_2"Relative Exponential Functions" + function gsl_sf_expm1 + //This routines compute the quantity exp(x) − 1 using an algorithm that is accurate for small x. + input Real x; + output Real y; + + external "C" y = gsl_sf_expm1(x) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expm1; + + function gsl_sf_expm1_e + //This routines compute the quantity exp(x) − 1 using an algorithm that is accurate for small x. + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_expm1_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expm1_e; + + function gsl_sf_exprel + //These routines compute the quantity (exp(x) − 1)/x using an algorithm that is accurate for small x + input Real x; + output Real y; + + external "C" y = gsl_sf_exprel(x) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exprel; + + function gsl_sf_exprel_e + //These routines compute the quantity (exp(x) − 1)/x using an algorithm that is accurate for small x + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_exprel_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exprel_e; + + function gsl_sf_exprel_2 + //This routines compute the quantity 2(exp(x) − 1 − x)/x^2 using an algorithm that is accurate for small x + input Real x; + output Real y; + + external "C" y = gsl_sf_exprel_2(x) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exprel_2; + + function gsl_sf_exprel_2_e + //This routines compute the quantity 2(exp(x) − 1 − x)/x^2 using an algorithm that is accurate for small x + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_exprel_2_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exprel_2_e; + + function gsl_sf_exprel_n"This routine computes the N -relative exponential, which is the n-th generalization of the functions + gsl_sf_exprel() and gsl_sf_exprel_2()" + input Integer n; + input Real x; + output Real z; + + external "C" z = gsl_sf_exprel_n(n, x) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exprel_n; + + function gsl_sf_exprel_n_e"These routines compute the N -relative exponential, which is the n-th generalization of the functions + gsl_sf_exprel() and gsl_sf_exprel_2()" + input Integer n; + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_exprel_n_e(n, x, result) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exprel_n_e; + end chap_7_16_2; + + package chap_7_16_3"Exponentiation With Error Estimate" + function gsl_sf_exp_err_e + //This function exponentiates x with an associated absolute error dx + input Real x; + input Real dx; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_exp_err_e(x, dx, result) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exp_err_e; + + function gsl_sf_exp_err_e10_e + //This function exponentiates a quantity x with an associated absolute error dx using the gsl_sf_result_e10 + input Real x; + input Real dx; + output gsl.data_types.gsl_sf_result_e10 result; + output Integer y; + + external "C" y = gsl_sf_exp_err_e10_e(x, dx, result) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Include = "#include<gsl/gsl_sf_result_e10.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exp_err_e10_e; + + function gsl_sf_exp_mult_err_e + //This routine computes the product y exp(x) for the quantities x, y with associated absolute errors dx, dy. + input Real x; + input Real dx; + input Real y; + input Real dy; + output gsl.data_types.gsl_sf_result result; + output Integer z; + + external "C" z = gsl_sf_exp_mult_err_e(x, dx, y, dy, result) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exp_mult_err_e; + + function gsl_sf_exp_mult_err_e10_e + //This routine computes the product y exp(x) for the quantities x, y with associated absolute errors dx, dy usingthe gsl_sf_result_e10 type to return a result with extended range + input Real x; + input Real dx; + input Real y; + input Real dy; + output gsl.data_types.gsl_sf_result_e10 result; + output Integer z; + + external "C" z = gsl_sf_exp_mult_err_e10_e(x, dx, y, dy, result) annotation( + Include = "#include<gsl/gsl_sf_exp.h>", + Include = "#include<gsl/gsl_sf_result_e10.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_exp_mult_err_e10_e; + end chap_7_16_3; + + package chap_7_17_1 + function gsl_sf_expint_E1 + //These routines compute the exponential integral E 1 (x), + input Real x; + output Real y; + + external "C" y = gsl_sf_expint_E1(x) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_E1; + + function gsl_sf_expint_E1_e + //These routines compute the exponential integral E 1 (x), + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_expint_E1_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_E1_e; + + function gsl_sf_expint_E2 + //These routines compute the exponential integral E 2 (x), + input Real x; + output Real y; + + external "C" y = gsl_sf_expint_E2(x) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_E2; + + function gsl_sf_expint_E2_e + //These routines compute the exponential integral E 2 (x), + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_expint_E2_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_E2_e; + + function gsl_sf_expint_En + //These routines compute the exponential integral E n (x), + input Integer n; + input Real x; + output Real y; + + external "C" y = gsl_sf_expint_En(n, x) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_En; + + function gsl_sf_expint_En_e + //These routines compute the exponential integral E 2 (x), + input Integer n; + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_expint_En_e(n, x, result) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_En_e; + end chap_7_17_1; + + package chap_7_17_2 + function gsl_sf_expint_Ei + //These routines compute the exponential integral Ei(x) + input Real x; + output Real y; + + external "C" y = gsl_sf_expint_Ei(x) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_Ei; + + function gsl_sf_expint_Ei_e + //These routines compute the exponential integral Ei(x) + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_expint_Ei_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_Ei_e; + end chap_7_17_2; + + package chap_7_17_3" Hyperbolic Integrals" + function gsl_sf_Shi + //hyperbolic integrals + input Real x; + output Real y; + + external "C" y = gsl_sf_Shi(x) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_Shi; + + function gsl_sf_Shi_e + //hyperbolic integral + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_Shi_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_Shi_e; + + function gsl_sf_Chi + //hyperbolic integrals + input Real x; + output Real y; + + external "C" y = gsl_sf_Chi(x) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_Chi; + + function gsl_sf_Chi_e + //hyperbolic integral + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_Chi_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_Chi_e; + end chap_7_17_3; + + package chap_7_17_4"Ei_3(x)" + function gsl_sf_expint_3"This routine computes third order exponential integral " + input Real x; + output Real y; + + external "C" y = gsl_sf_expint_3(x) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_3; + + function gsl_sf_expint_3_e"This routine computes third order exponential integral " + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_expint_3_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_expint_3_e; + end chap_7_17_4; + + package chap_7_17_5"Trignometric Integrals" + function gsl_sf_Si"This routine computes the Sine integral" + input Real x; + output Real y; + + external "C" y = gsl_sf_Si(x) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_Si; + + function gsl_sf_Si_e"This routine computes the Sine integral" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_Si_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Include = "#include<gsl/gsl_sf_result>", + Library = "gsl", + Library = "gslcbas"); + end gsl_sf_Si_e; + + function gsl_sf_Ci"This routine computes the Cosine integral" + input Real x; + output Real y; + + external "C" y = gsl_sf_Ci(x) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_Ci; + + function gsl_sf_Ci_e"This routine computes the Cosine integral" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_Ci_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_expint.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_Ci_e; + end chap_7_17_5; + + package chap_7_18_1 + function gsl_sf_fermi_dirac_m1"This routine computes the complete Fermi-Dirac integral with an index of −1. This integral is given by + F −1 (x) = e^x /(1 + e^x )" + input Real x; + output Real y; + + external "C" y = gsl_sf_fermi_dirac_m1(x) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_m1; + + function gsl_sf_fermi_dirac_m1_e"This routine computes the complete Fermi-Dirac integral with an index of −1. This integral is given by + F −1 (x) = e^x /(1 + e^x )" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_fermi_dirac_m1_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_sf_result.h>"); + end gsl_sf_fermi_dirac_m1_e; + + + function gsl_sf_fermi_dirac_0"This routine computes the complete Fermi-Dirac integral with an index of 0. This integral is given by F 0 (x) = + ln(1 + e^x )." + input Real x; + output Real y; + + external "C" y = gsl_sf_fermi_dirac_0(x) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_0; + + function gsl_sf_fermi_dirac_0_e"These routines compute the complete Fermi-Dirac integral with an index of 0. This integral is given by F 0 (x) = + ln(1 + e^x )." + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_fermi_dirac_0_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_0_e; + + function gsl_sf_fermi_dirac_1"This routine computes the complete Fermi-Dirac integral with an index of 1," + input Real x; + output Real y; + + external "C" y = gsl_sf_fermi_dirac_1(x) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_1; + + + function gsl_sf_fermi_dirac_1_e"This routine computes the complete Fermi-Dirac integral with an index of 1," + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_fermi_dirac_1_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_1_e; + + function gsl_sf_fermi_dirac_2"This routine computes the complete Fermi-Dirac integral with an index of 2" + input Real x; + output Real y; + + external "C" y = gsl_sf_fermi_dirac_2(x) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_2; + + + function gsl_sf_fermi_dirac_2_e"This routine computes the complete Fermi-Dirac integral with an index of 2" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_fermi_dirac_2_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_2_e; + + + function gsl_sf_fermi_dirac_int"This + routine computes the complete Fermi-Dirac integral with an integer index of j" + input Integer j; + input Real x; + output Real y; + + external "C" y = gsl_sf_fermi_dirac_int(j, x) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_int; + + function gsl_sf_fermi_dirac_int_e"This routine computes the complete Fermi-Dirac integral with an integer index of j" + input Integer j; + input Real x; + output gsl.data_types.gsl_sf_result result; + output Real y; + + external "C" y = gsl_sf_fermi_dirac_int_e(j, x, result) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_int_e; + + function gsl_sf_fermi_dirac_mhalf"This routine computes the complete Fermi-Dirac integral F −1/2 (x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_fermi_dirac_mhalf(x) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_mhalf; + + function gsl_sf_fermi_dirac_mhalf_e"This routine computes the complete Fermi-Dirac integral F −1/2 (x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_fermi_dirac_mhalf_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas", + Include = "#include<gsl/gsl_sf_result.h>"); + end gsl_sf_fermi_dirac_mhalf_e; + + function gsl_sf_fermi_dirac_half"This routine computes the complete Fermi-Dirac integral F 1/2 (x)" + input Real x; + output Real y; + + external "C" y = gsl_sf_fermi_dirac_half(x) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_half; + + function gsl_sf_fermi_dirac_half_e"This routine computes the complete Fermi-Dirac integral F 1/2 (x)" + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_fermi_dirac_half_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_half_e; + + function gsl_sf_fermi_dirac_3half"This routine computes the complete Fermi-Dirac integral F 3/2 (x)." + input Real x; + output Real y; + + external "C" y = gsl_sf_fermi_dirac_3half(x) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_3half; + + function gsl_sf_fermi_dirac_3half_e"This routine computes the complete Fermi-Dirac integral F 3/2 (x)." + input Real x; + output gsl.data_types.gsl_sf_result result; + output Integer y; + + external "C" y = gsl_sf_fermi_dirac_3half_e(x, result) annotation( + Include = "#include<gsl/gsl_sf_fermi_dirac.h>", + Include = "#include<gsl/gsl_sf_result.h>", + Library = "gsl", + Library = "gslcblas"); + end gsl_sf_fermi_dirac_3half_e; + end chap_7_18_1; + end Special_functions; + + + + package Linear_Algebra + package chap_14_1 + end chap_14_1; + end Linear_Algebra; + + + package STATISTICS + package chap_21_1 + function gsl_stats_mean + input Real data[:]; + input Integer stride; + input Integer n; + output Real mean; + external "C" mean=gsl_stats_mean( data[:], stride,n)annotation(Include="#include<gsl/gsl_statistics_double.h>",Include="#include<gsl/gsl_statistics_int.h>", Library="gsl",Library="gslcblas"); + end gsl_stats_mean; + end chap_21_1; + end STATISTICS; + + package Examples + package Mathematical + model gsl_log1p + //This model computes the value of log(1 + x) in a way that is accurate for small x by calling the function gsl_log1p(x) + parameter Real x = -2; + Real y; + algorithm + y := gsl.mathematical.gsl_log1p(x); + end gsl_log1p; + + model gsl_expm1 + //This model computes the value of exp(x)-1 in a way that is accurate for small x by calling the function gsl_expm1 + parameter Real x = 0.01; + Real y; + algorithm + y := gsl.mathematical.gsl_expm1(x); + end gsl_expm1; + + model gsl_hypot + //it calculates the value of sqrt(x^2+y^2) + parameter Real x = 2; + parameter Real y = 2.1; + Real z; + algorithm + z := gsl.mathematical.gsl_hypot(x, y); + end gsl_hypot; + + model gsl_hypot3 + //this example calculates the value of sqrt(x^2+y^2+z^2) by calling the function gsl_hypot3 + parameter Real x = 2.0; + parameter Real y = 2.1; + parameter Real z = 2.2; + Real o; + algorithm + o := gsl.mathematical.gsl_hypot3(x, y, z); + end gsl_hypot3; + + model gsl_acosh + //this example calls gsl_acosh to calculate the inverse of cosh + parameter Real x = 2; + Real y; + algorithm + y := gsl.mathematical.gsl_acosh(x); + end gsl_acosh; + + model gsl_asinh + //this example calls gsl_asinh to calculate the inverse of sinh + parameter Real x = 2; + Real y; + algorithm + y := gsl.mathematical.gsl_asinh(x); + end gsl_asinh; + + model gsl_atanh + //this example calls gsl_atanh to calculate the inverse of tanh + parameter Real x = 0.5; + Real y; + algorithm + y := gsl.mathematical.gsl_atanh(x); + end gsl_atanh; + + model gsl_ldexp + //this function computes the value of x*2^e by calling the function gsl_ldexp + parameter Real x = 2.0; + // constant Real y = Modelica.Constants.e; + // y should be given the value e + Real z; + algorithm + z := gsl.mathematical.gsl_ldexp(x); + end gsl_ldexp; + + model gsl_frexp + /*This model calls the function gsl_frexp and splits the number x into its normalized fraction f and exponent e, such that x = f ∗ 2^e and 0.5 <= f < 1. The function returns f and stores the exponent in e.*/ + parameter Real x = 2; + Integer e; // it stores the exponent in z + output Real f; + algorithm + (e, f) := gsl.mathematical.gsl_frexp(x); + end gsl_frexp; + + model gsl_pow_int + //this function computes x^n + parameter Real x = 0; + parameter Integer n = 0; + Real y; + algorithm + y := gsl.mathematical.gsl_pow_int(x, n); + end gsl_pow_int; + + model gsl_pow_2 + //This function calculates square fo the given number + parameter Real x = 2.2; + Real y; + algorithm + y := gsl.mathematical.gsl_pow_2(x); + end gsl_pow_2; + + model gsl_pow_3 + //This function calculates cube of the given number + parameter Real x = 2.02; + Real y; + algorithm + y := gsl.mathematical.gsl_pow_3(x); + end gsl_pow_3; + + model gsl_pow_4 + //This function calculates number to the power of 4 of the given number + parameter Real x = 0.02; + Real y; + algorithm + y := gsl.mathematical.gsl_pow_4(x); + end gsl_pow_4; + + model gsl_pow_5 + //This model calculates number to the power of 5 of the given number by calling the function gsl_pow_5(x) + parameter Real x = 0.2; + Real y; + algorithm + y := gsl.mathematical.gsl_pow_5(x); + end gsl_pow_5; + + model gsl_pow_6 + //This model calculates number to the power of 6 of the given number by calling the the function gsl_pow_6(x) + parameter Real x = 2.0; + Real y; + algorithm + y := gsl.mathematical.gsl_pow_6(x); + end gsl_pow_6; + + model gsl_pow_7 + //This function calculates number to the power of 7 by calling the function gsl_pow_7(x) + parameter Real x = 2.0; + Real y; + algorithm + y := gsl.mathematical.gsl_pow_7(x); + end gsl_pow_7; + + model gsl_pow_8 + //This model calculates number to the power of 8 by calling the function gsl_pow_8 + parameter Real x = 2.2; + Real y; + algorithm + y := gsl.mathematical.gsl_pow_8(x); + end gsl_pow_8; + + model gsl_pow_9 + //This function calculates number to the power of 9 of the given number + parameter Real x = 2.2; + Real y; + algorithm + y := gsl.mathematical.gsl_pow_9(x); + end gsl_pow_9; + + model GSL_SIGN + //This model calculates the sign of the number by calling the function GSL_SIGN(x) + parameter Real x = -4; + Integer y; + algorithm + y := gsl.mathematical.GSL_SIGN(x); + end GSL_SIGN; + + model GSL_IS_ODD + //This model outputs 1 for odd number and 0 if the number is even by calling the function GSL_IS_ODD(x) + parameter Integer x = 2; + Real y(start = 0); + algorithm + y := gsl.mathematical.GSL_IS_ODD(x); + end GSL_IS_ODD; + + model GSL_IS_EVEN + //This model outputs 1 for odd number and 0 if the number is even by calling the function GSL_IS_EVEN(x) + parameter Integer x = 2; + Real y; + algorithm + y := gsl.mathematical.GSL_IS_EVEN(x); + end GSL_IS_EVEN; + + model GSL_MAX + //This model calls the function GSL_MAX(a,b) which return the maximum of a and b + parameter Real a = 1.0; + parameter Real b = 2.0; + Real c; + algorithm + c := gsl.mathematical.GSL_MAX(a, b); + end GSL_MAX; + + model GSL_MAX_DBL + // This model gives the maximum of two double numbers by calling the function GSL_MAX_DBL + parameter Real a = 2.0; + parameter Real b = 3.0; + Real c; + algorithm + c := gsl.mathematical.GSL_MAX_DBL(a, b); + end GSL_MAX_DBL; + + model GSL_MIN_DBL + // This model gives the minimum of two double numbers by calling the function GSL_MIN_DBL + parameter Real a = 2.0; + parameter Real b = 3.0; + Real c; + algorithm + c := gsl.mathematical.GSL_MIN_DBL(a, b); + end GSL_MIN_DBL; + + model GSL_MAX_INT + // This model gives the maximum of two integers by calling the function GSL_MAX_INT + parameter Real a = 2; + parameter Real b = 3; + Real c; + algorithm + c := gsl.mathematical.GSL_MAX_INT(a, b); + end GSL_MAX_INT; + + model GSL_MIN_INT + // This model gives the minimum of two integers by calling the function GSL_MIN_INT + parameter Real a = 2.5; + parameter Real b = 3; + Real c; + algorithm + c := gsl.mathematical.GSL_MIN_INT(a, b); + end GSL_MIN_INT; + + model GSL_MAX_LDBL + // This model gives the maximum of two Real numbers by calling the function GSL_MAX_LDBL + parameter Real a = 2.00001; + parameter Real b = 3.00001; + Real c; + algorithm + c := gsl.mathematical.GSL_MAX_LDBL(a, b); + end GSL_MAX_LDBL; + + model GSL_MIN_LDBL + // This model gives the minimum of two Real by calling the function GSL_MAX_DBL + parameter Real a = 2.00001; + parameter Real b = 3.00001; + Real c; + algorithm + c := gsl.mathematical.GSL_MIN_LDBL(a, b); + end GSL_MIN_LDBL; + + model gsl_fcmp + //This model calls the function gsl_fcmp(a,b) and returns zero if they are equal in given range and -1 if a<b and +1 if a>b + parameter Real a = 4.0; + parameter Real b = 2.2; + Real c; + algorithm + c := gsl.mathematical.gsl_fcmp(a, b); + end gsl_fcmp; + + /**/ + end Mathematical; + + package Permutation + /*this model initialise the permutation with 10 elements to {0,1,2,3,4,5,6,7,8,9}*/ + //this model calls the function gsl_permutation_init(p) to initialize the permutation to {0,1,2,3,4,5,6,7,8,9} + //this model calls the function gsl_permutation_init(p) to initialize the permutation to {0,1,2,3,4,5,6,7,8,9} + //this model calls the function gsl_permutation_init(p) to initialize the permutation to {0,1,2,3,4,, + + model gsl_per_init + /*this model initializes the permutation p to{0,1,2,3,4,5,6,7,8,9}*/ + parameter Integer N = 10; + gsl.data_types.gsl_permutation p = gsl.data_types.gsl_permutation(N); + Integer y[10]; + algorithm + gsl.Permutation.gsl_permutation_init(p); + for i in 1:10 loop + y[i] := gsl.Permutation.gsl_permutation_get(p, i - 1); + end for; + end gsl_per_init; + end Permutation; + + package COMPLEX + model gsl_complex_rect + /*this model calls the function gsl_complex_rect*/ + parameter Real a = 10; + parameter Real b = 4; + Real z[2]; + algorithm + z := gsl.COMPLEX.gsl_complex_rect(a, b); + end gsl_complex_rect; + end COMPLEX; + + package special_functions + package chap_7_5_1 + model gsl_sf_bessel_J0 + //this model calls the function gsl_sf_bessel_J0 by taking value of x as input and returning y as output + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_1.gsl_sf_bessel_J0(x); + end gsl_sf_bessel_J0; + + model gsl_sf_bessel_J0_e + //this model calls the function gsl_sf_bessel_J0_e by taking value of x as input and returning the output in variable result + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_1.gsl_sf_bessel_J0_e(x); + end gsl_sf_bessel_J0_e; + + model gsl_sf_bessel_J1 + //this model calls the function gsl_sf_bessel_J1 by taking value of x as input and returning y as output + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_1.gsl_sf_bessel_J1(x); + end gsl_sf_bessel_J1; + + model gsl_sf_bessel_J1_e + //this model calls the function gsl_sf_bessel_J1_e by taking value of x as input and returning the output in the variable result + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_1.gsl_sf_bessel_J1_e(x); + end gsl_sf_bessel_J1_e; + + model gsl_sf_bessel_Jn + //this model calls the function gsl_sf_bessel_Jn by taking value of x and n as input and returning y as output + parameter Real x = 10; + parameter Integer n = 1; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_1.gsl_sf_bessel_Jn(x, n); + end gsl_sf_bessel_Jn; + + model gsl_sf_bessel_Jn_e + parameter Real x = 10; + parameter Integer n = 1; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_1.gsl_sf_bessel_Jn_e(x, n); + end gsl_sf_bessel_Jn_e; + + model gsl_sf_bessel_Jn_array + parameter Integer nmin = 2; + parameter Integer nmax = 10; + parameter Real x = 4; + Real result_array[nmax - nmin]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_1.gsl_sf_bessel_Jn_array(nmin, nmax, x); + end gsl_sf_bessel_Jn_array; + end chap_7_5_1; + + package chap_7_5_2 + model gsl_sf_bessel_Y0 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_2.gsl_sf_bessel_Y0(x); + end gsl_sf_bessel_Y0; + + model gsl_sf_bessel_Y0_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_2.gsl_sf_bessel_Y0_e(x); + end gsl_sf_bessel_Y0_e; + + model gsl_sf_bessel_Y1 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_2.gsl_sf_bessel_Y1(x); + end gsl_sf_bessel_Y1; + + model gsl_sf_bessel_Y1_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_2.gsl_sf_bessel_Y1_e(x); + end gsl_sf_bessel_Y1_e; + + model gsl_sf_bessel_Yn + parameter Real x = 10; + parameter Integer n = 1; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_2.gsl_sf_bessel_Yn(x, n); + end gsl_sf_bessel_Yn; + + model gsl_sf_bessel_Yn_e + parameter Real x = 10; + parameter Integer n = 1; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_2.gsl_sf_bessel_Yn_e(x, n); + end gsl_sf_bessel_Yn_e; + + model gsl_sf_bessel_Yn_array + parameter Integer nmin = 2; + parameter Integer nmax = 10; + parameter Real x = 4; + Real result_array[nmax - nmin]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_2.gsl_sf_bessel_Yn_array(nmin, nmax, x); + end gsl_sf_bessel_Yn_array; + end chap_7_5_2; + + package chap_7_5_3 + model gsl_sf_bessel_I0 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_I0(x); + end gsl_sf_bessel_I0; + + model gsl_sf_bessel_I0_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_I0_e(x); + end gsl_sf_bessel_I0_e; + + model gsl_sf_bessel_I1 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_I1(x); + end gsl_sf_bessel_I1; + + model gsl_sf_bessel_I1_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_I1_e(x); + end gsl_sf_bessel_I1_e; + + model gsl_sf_bessel_In + parameter Real x = 10; + parameter Integer n = 1; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_In(x, n); + end gsl_sf_bessel_In; + + model gsl_sf_bessel_In_e + parameter Real x = 10; + parameter Integer n = 1; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_In_e(x, n); + end gsl_sf_bessel_In_e; + + model gsl_sf_bessel_In_array + parameter Integer nmin = 2; + parameter Integer nmax = 10; + parameter Real x = 4; + Real result_array[nmax - nmin]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_In_array(nmin, nmax, x); + end gsl_sf_bessel_In_array; + + model gsl_sf_bessel_I0_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_I0_scaled(x); + end gsl_sf_bessel_I0_scaled; + + model gsl_sf_bessel_I0_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_I0_scaled_e(x); + end gsl_sf_bessel_I0_scaled_e; + + model gsl_sf_bessel_I1_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_I1_scaled(x); + end gsl_sf_bessel_I1_scaled; + + model gsl_sf_bessel_I1_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_I1_scaled_e(x); + end gsl_sf_bessel_I1_scaled_e; + + model gsl_sf_bessel_In_scaled + parameter Real x = 10; + parameter Integer n = 1; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_In_scaled(x, n); + end gsl_sf_bessel_In_scaled; + + model gsl_sf_bessel_In_scaled_e + parameter Real x = 10; + parameter Integer n = 1; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_In_scaled_e(x, n); + end gsl_sf_bessel_In_scaled_e; + + model gsl_sf_bessel_In_scaled_array + parameter Integer nmin = 2; + parameter Integer nmax = 10; + parameter Real x = 4; + Real result_array[nmax - nmin]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_3.gsl_sf_bessel_In_scaled_array(nmin, nmax, x); + end gsl_sf_bessel_In_scaled_array; + end chap_7_5_3; + + package chap_7_5_4 + model gsl_sf_bessel_K0 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_K0(x); + end gsl_sf_bessel_K0; + + model gsl_sf_bessel_K0_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_K0_e(x); + end gsl_sf_bessel_K0_e; + + model gsl_sf_bessel_K1 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_K1(x); + end gsl_sf_bessel_K1; + + model gsl_sf_bessel_K1_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_K1_e(x); + end gsl_sf_bessel_K1_e; + + model gsl_sf_bessel_Kn + parameter Real x = 10; + parameter Integer n = 1; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_Kn(x, n); + end gsl_sf_bessel_Kn; + + model gsl_sf_bessel_Kn_e + parameter Real x = 10; + parameter Integer n = 1; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_Kn_e(x, n); + end gsl_sf_bessel_Kn_e; + + model gsl_sf_bessel_Kn_array + parameter Integer nmin = 2; + parameter Integer nmax = 10; + parameter Real x = 4; + Real result_array[nmax - nmin]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_Kn_array(nmin, nmax, x); + end gsl_sf_bessel_Kn_array; + + model gsl_sf_bessel_K0_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_K0_scaled(x); + end gsl_sf_bessel_K0_scaled; + + model gsl_sf_bessel_K0_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_K0_scaled_e(x); + end gsl_sf_bessel_K0_scaled_e; + + model gsl_sf_bessel_K1_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_K1_scaled(x); + end gsl_sf_bessel_K1_scaled; + + model gsl_sf_bessel_K1_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_K1_scaled_e(x); + end gsl_sf_bessel_K1_scaled_e; + + model gsl_sf_bessel_Kn_scaled + parameter Real x = 10; + parameter Integer n = 1; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_Kn_scaled(x, n); + end gsl_sf_bessel_Kn_scaled; + + model gsl_sf_bessel_Kn_scaled_e + parameter Real x = 10; + parameter Integer n = 1; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_Kn_scaled_e(x, n); + end gsl_sf_bessel_Kn_scaled_e; + + model gsl_sf_bessel_Kn_scaled_array + parameter Integer nmin = 2; + parameter Integer nmax = 10; + parameter Real x = 4; + Real result_array[nmax - nmin]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_4.gsl_sf_bessel_Kn_scaled_array(nmin, nmax, x); + end gsl_sf_bessel_Kn_scaled_array; + end chap_7_5_4; + + package chap_7_5_5 + model gsl_sf_bessel_j0 + //This model calls the function gsl_sf_bessel_j0 to calculate the value of spherical bessel function j0(x)=sin(x)/x + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j0(x); + end gsl_sf_bessel_j0; + + model gsl_sf_bessel_j0_e + //This model calls the function gsl_sf_bessel_j0 to calculate the value of spherical bessel function j0(x)=sin(x)/x + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j0_e(x); + end gsl_sf_bessel_j0_e; + + model gsl_sf_bessel_j1 + //This model calls the function gsl_sf_bessel_j1 to calculate the value of spherical bessel function j1(x)=(sin(x)/x - cos(x))/x + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j1(x); + end gsl_sf_bessel_j1; + + model gsl_sf_bessel_j1_e + //This model calls the function gsl_sf_bessel_j1 to calculate the value of spherical bessel function j1(x)=(sin(x)/x -cos(x))/x + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j1_e(x); + end gsl_sf_bessel_j1_e; + + model gsl_sf_bessel_j2 + //These routines compute the regular spherical Bessel function of second order, j 2 (x) = ((3/x 2 − 1) sin(x) −3 cos(x)/x)/x + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j2(x); + end gsl_sf_bessel_j2; + + model gsl_sf_bessel_j2_e + //These routines compute the regular spherical Bessel function of second order, j 2 (x) = ((3/x 2 − 1) sin(x) −3 cos(x)/x)/x + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j2_e(x); + end gsl_sf_bessel_j2_e; + + model gsl_sf_bessel_jl + //These routines compute the regular spherical Bessel function of order l, j1(x), for l ≥ 0 and x ≥ 0. + parameter Integer l = 10; + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_jl(l, x); + end gsl_sf_bessel_jl; + + model gsl_sf_bessel_jl_e + parameter Integer l = 10; + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_jl_e(l, x); + end gsl_sf_bessel_jl_e; + + model gsl_sf_bessel_jl_array + // parameter Integer nmin; + parameter Integer lmax = 10; + parameter Real x = 10; + Real result_array[lmax]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_jl_array(lmax, x); + end gsl_sf_bessel_jl_array; + + model gsl_sf_bessel_jl_steed_array + // parameter Integer nmin; + parameter Integer lmax = 10; + parameter Real x = 10; + Real result_array[lmax]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_jl_steed_array(lmax, x); + end gsl_sf_bessel_jl_steed_array; + end chap_7_5_5; + + package chap_7_5_6 + model gsl_sf_bessel_j0 + //This model calls the function gsl_sf_bessel_j0 to calculate the value of irregular spherical irregular spherical bessel function j0(x)=sin(x)/x + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j0(x); + end gsl_sf_bessel_j0; + + model gsl_sf_bessel_j0_e + //This model calls the function gsl_sf_bessel_j0 to calculate the value of irregular spherical bessel function j0(x)=sin(x)/x + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j0_e(x); + end gsl_sf_bessel_j0_e; + + model gsl_sf_bessel_j1 + //This model calls the function gsl_sf_bessel_j1 to calculate the value of irregular spherical bessel function j1(x)=(sin(x)/x - cos(x))/x + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j1(x); + end gsl_sf_bessel_j1; + + model gsl_sf_bessel_j1_e + //This model calls the function gsl_sf_bessel_j1 to calculate the value of irregular spherical bessel function j1(x)=(sin(x)/x -cos(x))/x + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j1_e(x); + end gsl_sf_bessel_j1_e; + + model gsl_sf_bessel_j2 + //These routines compute the regular irregular spherical Bessel function of second order, j 2 (x) = ((3/x 2 − 1) sin(x) −3 cos(x)/x)/x + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j2(x); + end gsl_sf_bessel_j2; + + model gsl_sf_bessel_j2_e + //These routines compute the irregular spherical Bessel function of second order, j 2 (x) = ((3/x 2 − 1) sin(x) −3 cos(x)/x)/x + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_j2_e(x); + end gsl_sf_bessel_j2_e; + + model gsl_sf_bessel_jl + //These routines compute the irregular spherical Bessel function of order l, j1(x), for l ≥ 0 and x ≥ 0. + parameter Integer l = 10; + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_jl(l, x); + end gsl_sf_bessel_jl; + + model gsl_sf_bessel_jl_e + parameter Integer l = 10; + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_jl_e(l, x); + end gsl_sf_bessel_jl_e; + + model gsl_sf_bessel_jl_array + // parameter Integer nmin; + parameter Integer lmax = 10; + parameter Real x = 10; + Real result_array[lmax]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_5.gsl_sf_bessel_jl_array(lmax, x); + end gsl_sf_bessel_jl_array; + end chap_7_5_6; + + package chap_7_5_7 + model gsl_sf_bessel_i0_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_7.gsl_sf_bessel_i0_scaled(x); + end gsl_sf_bessel_i0_scaled; + + model gsl_sf_bessel_i0_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_7.gsl_sf_bessel_i0_scaled_e(x); + end gsl_sf_bessel_i0_scaled_e; + + model gsl_sf_bessel_i1_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_7.gsl_sf_bessel_i1_scaled(x); + end gsl_sf_bessel_i1_scaled; + + model gsl_sf_bessel_i1_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_7.gsl_sf_bessel_i1_scaled_e(x); + end gsl_sf_bessel_i1_scaled_e; + + model gsl_sf_bessel_i2_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_7.gsl_sf_bessel_i2_scaled(x); + end gsl_sf_bessel_i2_scaled; + + model gsl_sf_bessel_i2_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_7.gsl_sf_bessel_i2_scaled_e(x); + end gsl_sf_bessel_i2_scaled_e; + + model gsl_sf_bessel_il_scaled + parameter Real x = 10; + parameter Integer l = 1; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_7.gsl_sf_bessel_il_scaled(x, l); + end gsl_sf_bessel_il_scaled; + + model gsl_sf_bessel_il_scaled_e + parameter Real x = 10; + parameter Integer l = 1; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_7.gsl_sf_bessel_il_scaled_e(x, l); + end gsl_sf_bessel_il_scaled_e; + + model gsl_sf_bessel_il_scaled_array + parameter Integer lmax = 10; + parameter Real x = 4; + Real result_array[lmax]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_7.gsl_sf_bessel_il_scaled_array(lmax, x); + end gsl_sf_bessel_il_scaled_array; + end chap_7_5_7; + + package chap_7_5_8 + model gsl_sf_bessel_k0_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_8.gsl_sf_bessel_k0_scaled(x); + end gsl_sf_bessel_k0_scaled; + + model gsl_sf_bessel_k0_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_8.gsl_sf_bessel_k0_scaled_e(x); + end gsl_sf_bessel_k0_scaled_e; + + model gsl_sf_bessel_k1_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_8.gsl_sf_bessel_k1_scaled(x); + end gsl_sf_bessel_k1_scaled; + + model gsl_sf_bessel_k1_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_8.gsl_sf_bessel_k1_scaled_e(x); + end gsl_sf_bessel_k1_scaled_e; + + model gsl_sf_bessel_k2_scaled + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_8.gsl_sf_bessel_k2_scaled(x); + end gsl_sf_bessel_k2_scaled; + + model gsl_sf_bessel_k2_scaled_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_8.gsl_sf_bessel_k2_scaled_e(x); + end gsl_sf_bessel_k2_scaled_e; + + model gsl_sf_bessel_kl_scaled + parameter Real x = 10; + parameter Integer l = 1; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_8.gsl_sf_bessel_kl_scaled(x, l); + end gsl_sf_bessel_kl_scaled; + + model gsl_sf_bessel_kl_scaled_e + parameter Real x = 10; + parameter Integer l = 1; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_8.gsl_sf_bessel_kl_scaled_e(x, l); + end gsl_sf_bessel_kl_scaled_e; + + model gsl_sf_bessel_kl_scaled_array + parameter Integer lmax = 10; + parameter Real x = 4; + Real result_array[lmax]; + Integer y; + algorithm + (result_array, y) := gsl.Special_functions.chap_7_5_8.gsl_sf_bessel_kl_scaled_array(lmax, x); + end gsl_sf_bessel_kl_scaled_array; + end chap_7_5_8; + + package chap_7_5_9 + model gsl_sf_bessel_Jnu + parameter Real x = 10; + parameter Real nu = 1.5; + Real y; + algorithm + y := gsl.Special_functions.chap_7_5_9.gsl_sf_bessel_Jnu(nu, x); + end gsl_sf_bessel_Jnu; + + model gsl_sf_bessel_Jnu_e + parameter Real x = 10; + parameter Real nu = 1.5; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_9.gsl_sf_bessel_Jnu_e(x, nu); + end gsl_sf_bessel_Jnu_e; + end chap_7_5_9; + + package chap_7_5_10 + model gsl_sf_bessel_Ynu + parameter Real x = 10; + parameter Real nu = 1.5; + Real y; + algorithm + y := gsl.Special_functions.chap_7_5_10.gsl_sf_bessel_Ynu(nu, x); + end gsl_sf_bessel_Ynu; + + model gsl_sf_bessel_Ynu_e + parameter Real x = 10; + parameter Real nu = 1.5; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_10.gsl_sf_bessel_Ynu_e(x, nu); + end gsl_sf_bessel_Ynu_e; + end chap_7_5_10; + + package chap_7_5_11 + model gsl_sf_bessel_Inu + parameter Real x = 10; + parameter Real nu = 1.5; + Real y; + algorithm + y := gsl.Special_functions.chap_7_5_11.gsl_sf_bessel_Inu(nu, x); + end gsl_sf_bessel_Inu; + + model gsl_sf_bessel_Inu_e + parameter Real x = 10; + parameter Real nu = 1.5; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_11.gsl_sf_bessel_Inu_e(x, nu); + end gsl_sf_bessel_Inu_e; + + model gsl_sf_bessel_Inu_scaled + parameter Real x = 10; + parameter Real nu = 1.5; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_11.gsl_sf_bessel_Inu_scaled(x, nu); + end gsl_sf_bessel_Inu_scaled; + + model gsl_sf_bessel_Inu_scaled_e + parameter Real x = 10; + parameter Real nu = 1.5; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_11.gsl_sf_bessel_Inu_scaled_e(x, nu); + end gsl_sf_bessel_Inu_scaled_e; + end chap_7_5_11; + + package chap_7_5_12 + model gsl_sf_bessel_Knu + parameter Real x = 10; + parameter Real nu = 1.5; + Real y; + algorithm + y := gsl.Special_functions.chap_7_5_12.gsl_sf_bessel_Knu(nu, x); + end gsl_sf_bessel_Knu; + + model gsl_sf_bessel_Knu_e + parameter Real x = 10; + parameter Real nu = 1.5; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_12.gsl_sf_bessel_Knu_e(x, nu); + end gsl_sf_bessel_Knu_e; + + model gsl_sf_bessel_lnKnu + parameter Real x = 10; + parameter Real nu = 1.5; + Real y; + algorithm + y := gsl.Special_functions.chap_7_5_12.gsl_sf_bessel_lnKnu(nu, x); + end gsl_sf_bessel_lnKnu; + + model gsl_sf_bessel_lnKnu_e + parameter Real x = 10; + parameter Real nu = 1.5; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_12.gsl_sf_bessel_lnKnu_e(x, nu); + end gsl_sf_bessel_lnKnu_e; + + model gsl_sf_bessel_Knu_scaled + parameter Real x = 10; + parameter Real nu = 1.5; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_5_12.gsl_sf_bessel_Knu_scaled(x, nu); + end gsl_sf_bessel_Knu_scaled; + + model gsl_sf_bessel_Knu_scaled_e + parameter Real x = 10; + parameter Real nu = 1.5; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_12.gsl_sf_bessel_Knu_scaled_e(x, nu); + end gsl_sf_bessel_Knu_scaled_e; + end chap_7_5_12; + + package chap_7_5_13 + model gsl_sf_bessel_zero_J0 + parameter Integer s= 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_5_13.gsl_sf_bessel_zero_J0(s); + end gsl_sf_bessel_zero_J0; + + model gsl_sf_bessel_zero_J0_e + parameter Integer s = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_13.gsl_sf_bessel_zero_J0_e(s); + end gsl_sf_bessel_zero_J0_e; + + model gsl_sf_bessel_zero_J1 + parameter Integer s = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_5_13.gsl_sf_bessel_zero_J1(s); + end gsl_sf_bessel_zero_J1; + + model gsl_sf_bessel_zero_J1_e + parameter Integer s = 10; + output gsl.data_types.gsl_sf_result result; + output Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_13.gsl_sf_bessel_zero_J1_e(s); + end gsl_sf_bessel_zero_J1_e; + + model gsl_sf_bessel_zero_Jnu + parameter Integer s = 10; + parameter Real nu = 1.5; + output Real y; + algorithm + y := gsl.Special_functions.chap_7_5_13.gsl_sf_bessel_zero_Jnu(nu, s); + end gsl_sf_bessel_zero_Jnu; + + model gsl_sf_bessel_zero_Jnu_e + parameter Integer s = 10; + parameter Real nu = 1.5; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_5_13.gsl_sf_bessel_zero_Jnu_e(nu, s); + end gsl_sf_bessel_zero_Jnu_e; + end chap_7_5_13; + + package chap_7_6 + model gsl_sf_clausen + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_6.gsl_sf_clausen(x); + end gsl_sf_clausen; + + model gsl_sf_clausen_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_6.gsl_sf_clausen_e(x); + end gsl_sf_clausen_e; + end chap_7_6; + + package chap_7_7_1 + model gsl_sf_hydrogenicR_1 + parameter Real Z = 10; + parameter Real r = 10; + Real R; + algorithm + R := gsl.Special_functions.chap_7_7_1.gsl_sf_hydrogenicR_1(Z, r); + end gsl_sf_hydrogenicR_1; + + model gsl_sf_hydrogenicR_1_e + parameter Real Z = 10; + parameter Real r = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_7_1.gsl_sf_hydrogenicR_1_e(Z, r); + end gsl_sf_hydrogenicR_1_e; + + model gsl_sf_hydrogenicR + parameter Integer n = 1; + parameter Integer l = 0; + parameter Real Z = 10; + parameter Real r = 0.1; + Real R; + algorithm + R := gsl.Special_functions.chap_7_7_1.gsl_sf_hydrogenicR(n, l, Z, r); + end gsl_sf_hydrogenicR; + + model gsl_sf_hydrogenicR_e + parameter Integer n = 1; + parameter Integer l = 0; + parameter Real Z = 10; + parameter Real r = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_7_1.gsl_sf_hydrogenicR_e(n, l, Z, r); + end gsl_sf_hydrogenicR_e; + end chap_7_7_1; + + package chap_7_7_2 + model gsl_sf_coulomb_wave_FG_e + parameter Real eta = 1; + // eta=Z/k,where Z is atomic number + parameter Real x = 0.1;//radius + parameter Real L_F = 1; + parameter Integer k = 1; + //L_F-k>-1/2 + gsl.data_types.gsl_sf_result F; + //coulomb wave function + gsl.data_types.gsl_sf_result Fp; + //derivative of wave function + gsl.data_types.gsl_sf_result G; + //coulomb wave function + gsl.data_types.gsl_sf_result Gp; + //derivative of wave function + Real exp_F; + //out of bound error exponent stored here + Real exp_G; + //out of bound error exponent stored here + Integer y; + algorithm + (F, Fp, G, Gp, exp_F, exp_G, y) := gsl.Special_functions.chap_7_7_2.gsl_sf_coulomb_wave_FG_e(eta, x, L_F, k); + end gsl_sf_coulomb_wave_FG_e; + + model gsl_sf_coulomb_wave_F_array + parameter Real L_min = 1; + parameter Integer kmax = 2; + parameter Real eta = 1; + parameter Real x = 1; + Real fc_array[kmax]; + Real F_exponent; + Integer y; + algorithm + (fc_array, F_exponent, y) := gsl.Special_functions.chap_7_7_2.gsl_sf_coulomb_wave_F_array(L_min, kmax, eta, x); + end gsl_sf_coulomb_wave_F_array; + + model gsl_sf_coulomb_wave_FG_array + parameter Real L_min = 1; + parameter Integer kmax = 2; + parameter Real eta = 1; + parameter Real x = 1.5; + Real fc_array[kmax]; + Real gc_array[kmax]; + Real F_exponent; + Real G_exponent; + Integer y; + algorithm + (fc_array, gc_array, F_exponent, G_exponent, y) := gsl.Special_functions.chap_7_7_2.gsl_sf_coulomb_wave_FG_array(L_min, kmax, eta, x); + end gsl_sf_coulomb_wave_FG_array; + + model gsl_sf_coulomb_wave_FGp_array + parameter Real L_min = 1; + parameter Integer kmax = 2; + parameter Real eta = 1; + parameter Real x = 1.5; + Real fc_array[kmax]; + Real fcp_array[kmax]; + Real gc_array[kmax]; + Real gcp_array[kmax]; + Real F_exponent; + Real G_exponent; + Integer y; + algorithm + (fc_array, fcp_array, gc_array, gcp_array, F_exponent, G_exponent, y) := gsl.Special_functions.chap_7_7_2.gsl_sf_coulomb_wave_FGp_array(L_min, kmax, eta, x); + end gsl_sf_coulomb_wave_FGp_array; + + model gsl_sf_coulomb_wave_sphF_array + parameter Real L_min = 1; + parameter Integer kmax = 2; + parameter Real eta = 1; + parameter Real x = 1.5; + Real fc_array[kmax]; + Real F_exponent; + Integer y; + algorithm + (fc_array, F_exponent, y) := gsl.Special_functions.chap_7_7_2.gsl_sf_coulomb_wave_sphF_array(L_min, kmax, eta, x); + end gsl_sf_coulomb_wave_sphF_array; + end chap_7_7_2; + + package chap_7_7_3 + model gsl_sf_coulomb_CL_e + parameter Real L = 1; + parameter Real eta = 1.5; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_7_3.gsl_sf_coulomb_CL_e(L, eta); + end gsl_sf_coulomb_CL_e; + + model gsl_sf_coulomb_CL_array + parameter Real Lmin = 1; + parameter Integer kmax = 2; + parameter Real eta = 1.5; + Real cl[kmax]; + Integer y; + algorithm + (cl, y) := gsl.Special_functions.chap_7_7_3.gsl_sf_coulomb_CL_array(Lmin, kmax, eta); + end gsl_sf_coulomb_CL_array; + end chap_7_7_3; + + package chap_7_8_1 + model gsl_sf_coupling_3j + parameter Integer two_ja = 0; + parameter Integer two_jb = 0; + parameter Integer two_jc = 0; + parameter Integer two_ma = 0; + parameter Integer two_mb = 0; + parameter Integer two_mc = 0; + Real y; + algorithm + y := gsl.Special_functions.chap_7_8_1.gsl_sf_coupling_3j(two_ja, two_jb, two_jc, two_ma, two_mb, two_mc); + end gsl_sf_coupling_3j; + + model gsl_sf_coupling_3j_e + parameter Integer two_ja = 0; + parameter Integer two_jb = 0; + parameter Integer two_jc = 0; + parameter Integer two_ma = 0; + parameter Integer two_mb = 0; + parameter Integer two_mc = 0; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_8_1.gsl_sf_coupling_3j_e(two_ja, two_jb, two_jc, two_ma, two_mb, two_mc); + end gsl_sf_coupling_3j_e; + end chap_7_8_1; + + package chap_7_8_2 + model gsl_sf_coupling_6j + parameter Integer two_ja = 0; + parameter Integer two_jb = 0; + parameter Integer two_jc = 0; + parameter Integer two_ma = 0; + parameter Integer two_mb = 0; + parameter Integer two_mc = 0; + Real y; + algorithm + y := gsl.Special_functions.chap_7_8_2.gsl_sf_coupling_6j(two_ja, two_jb, two_jc, two_ma, two_mb, two_mc); + end gsl_sf_coupling_6j; + + model gsl_sf_coupling_6j_e + parameter Integer two_ja = 0; + parameter Integer two_jb = 0; + parameter Integer two_jc = 0; + parameter Integer two_ma = 0; + parameter Integer two_mb = 0; + parameter Integer two_mc = 0; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_8_2.gsl_sf_coupling_6j_e(two_ja, two_jb, two_jc, two_ma, two_mb, two_mc); + end gsl_sf_coupling_6j_e; + end chap_7_8_2; + + package chap_7_8_3 + model gsl_sf_coupling_9j + parameter Integer two_ja = 0; + parameter Integer two_jb = 0; + parameter Integer two_jc = 0; + parameter Integer two_jd = 0; + parameter Integer two_je = 0; + parameter Integer two_jf = 0; + parameter Integer two_jg = 0; + parameter Integer two_jh = 0; + parameter Integer two_ji = 0; + Real y; + algorithm + y := gsl.Special_functions.chap_7_8_3.gsl_sf_coupling_9j(two_ja, two_jb, two_jc, two_jd, two_je, two_jf, two_jg, two_jh, two_ji); + end gsl_sf_coupling_9j; + + model gsl_sf_coupling_9j_e + parameter Integer two_ja = 0; + parameter Integer two_jb = 0; + parameter Integer two_jc = 0; + parameter Integer two_jd = 0; + parameter Integer two_je = 0; + parameter Integer two_jf = 0; + parameter Integer two_jg = 0; + parameter Integer two_jh = 0; + parameter Integer two_ji = 0; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_8_3.gsl_sf_coupling_9j_e(two_ja, two_jb, two_jc, two_jd, two_je, two_jf, two_jg, two_jh, two_ji); + end gsl_sf_coupling_9j_e; + end chap_7_8_3; + + package chap_7_9 + model gsl_sf_dawson + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_9.gsl_sf_dawson(x); + end gsl_sf_dawson; + + model gsl_sf_dawson_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_9.gsl_sf_dawson_e(x); + end gsl_sf_dawson_e; + end chap_7_9; + + package chap_7_10 + model gsl_sf_debye_1 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_10.gsl_sf_debye_1(x); + end gsl_sf_debye_1; + + model gsl_sf_debye_1_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_10.gsl_sf_debye_1_e(x); + end gsl_sf_debye_1_e; + + model gsl_sf_debye_2 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_10.gsl_sf_debye_2(x); + end gsl_sf_debye_2; + + model gsl_sf_debye_2_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_10.gsl_sf_debye_2_e(x); + end gsl_sf_debye_2_e; + + model gsl_sf_debye_3 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_10.gsl_sf_debye_3(x); + end gsl_sf_debye_3; + + model gsl_sf_debye_3_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_10.gsl_sf_debye_3_e(x); + end gsl_sf_debye_3_e; + + model gsl_sf_debye_4 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_10.gsl_sf_debye_4(x); + end gsl_sf_debye_4; + + model gsl_sf_debye_4_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_10.gsl_sf_debye_4_e(x); + end gsl_sf_debye_4_e; + + model gsl_sf_debye_5 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_10.gsl_sf_debye_5(x); + end gsl_sf_debye_5; + + model gsl_sf_debye_5_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_10.gsl_sf_debye_5_e(x); + end gsl_sf_debye_5_e; + + model gsl_sf_debye_6 + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_10.gsl_sf_debye_6(x); + end gsl_sf_debye_6; + + model gsl_sf_debye_6_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_10.gsl_sf_debye_6_e(x); + end gsl_sf_debye_6_e; + end chap_7_10; + + package chap_7_11_1 + model gsl_sf_dilog + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_11_1.gsl_sf_dilog(x); + end gsl_sf_dilog; + + model gsl_sf_dilog_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_11_1.gsl_sf_dilog_e(x); + end gsl_sf_dilog_e; + end chap_7_11_1; + + package chap_7_11_2 + model gsl_sf_complex_dilog_e + parameter Real r = 10; + parameter Real theta = 1; + gsl.data_types.gsl_sf_result result_re; + gsl.data_types.gsl_sf_result result_im; + Integer y; + algorithm + (result_re, result_im, y) := gsl.Special_functions.chap_7_11_2.gsl_sf_complex_dilog_e(r, theta); + end gsl_sf_complex_dilog_e; + end chap_7_11_2; + + package chap_7_12 + model gsl_sf_multiply + parameter Real x = 2.5; + parameter Real y = 2.5; + Real z; + algorithm + z := gsl.Special_functions.chap_7_12.gsl_sf_multiply(x, y); + end gsl_sf_multiply; + + model gsl_sf_multiply_e + parameter Real x = 2.5; + parameter Real y = 2.5; + gsl.data_types.gsl_sf_result result; + Integer z; + algorithm + (result, z) := gsl.Special_functions.chap_7_12.gsl_sf_multiply_e(x, y); + end gsl_sf_multiply_e; + + model gsl_sf_multiply_err_e + parameter Real x = 2; + parameter Real dx = 0.5; + parameter Real y = 2; + parameter Real dy = 0.2; + gsl.data_types.gsl_sf_result result; + Integer z; + algorithm + (result, z) := gsl.Special_functions.chap_7_12.gsl_sf_multiply_err_e(x, dx, y, dy); + end gsl_sf_multiply_err_e; + end chap_7_12; + + package chap_7_15_1 + model gsl_sf_erf + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_15_1.gsl_sf_erf(x); + end gsl_sf_erf; + + model gsl_sf_erf_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_15_1.gsl_sf_erf_e(x); + end gsl_sf_erf_e; + end chap_7_15_1; + + package chap_7_15_2 + model gsl_sf_erfc + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_15_2.gsl_sf_erfc(x); + end gsl_sf_erfc; + + model gsl_sf_erfc_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_15_2.gsl_sf_erfc_e(x); + end gsl_sf_erfc_e; + end chap_7_15_2; + + package chap_7_15_3 + model gsl_sf_log_erfc + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_15_3.gsl_sf_log_erfc(x); + end gsl_sf_log_erfc; + + model gsl_sf_log_erfc_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_15_3.gsl_sf_log_erfc_e(x); + end gsl_sf_log_erfc_e; + end chap_7_15_3; + + package chap_7_15_4 + model gsl_sf_erf_Z + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_15_4.gsl_sf_erf_Z(x); + end gsl_sf_erf_Z; + + model gsl_sf_erf_Z_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_15_4.gsl_sf_erf_Z_e(x); + end gsl_sf_erf_Z_e; + + model gsl_sf_erf_Q + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_15_4.gsl_sf_erf_Q(x); + end gsl_sf_erf_Q; + + model gsl_sf_erf_Q_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_15_4.gsl_sf_erf_Q_e(x); + end gsl_sf_erf_Q_e; + + model gsl_sf_hazard + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_15_4.gsl_sf_hazard(x); + end gsl_sf_hazard; + + model gsl_sf_hazard_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_15_4.gsl_sf_hazard_e(x); + end gsl_sf_hazard_e; + end chap_7_15_4; + + package chap_7_16_1 + model gsl_sf_exp + //this model calls the function gsl_sf_exp by taking value of x as input and returning y as output + parameter Real x = 10; + Real y(start = 1); + algorithm + y := gsl.Special_functions.chap_7_16_1.gsl_sf_exp(x); + end gsl_sf_exp; + + model gsl_sf_exp_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_16_1.gsl_sf_exp_e(x); + end gsl_sf_exp_e; + + model gsl_sf_exp_e10_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result_e10 result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_16_1.gsl_sf_exp_e10_e(x); + end gsl_sf_exp_e10_e; + + model gsl_sf_exp_mult + //this model calls the function gsl_sf_exp by taking value of x as input and returning y as output + parameter Real x = 10; + parameter Real y = 10; + Real z; + algorithm + z := gsl.Special_functions.chap_7_16_1.gsl_sf_exp_mult(x, y); + end gsl_sf_exp_mult; + + model gsl_sf_exp_mult_e + parameter Real x = 10; + parameter Real y = 10; + gsl.data_types.gsl_sf_result result; + Integer z; + algorithm + (result, z) := gsl.Special_functions.chap_7_16_1.gsl_sf_exp_mult_e(x, y); + end gsl_sf_exp_mult_e; + + model gsl_sf_exp_mult_e10_e + parameter Real x = 10; + parameter Real y = 10; + gsl.data_types.gsl_sf_result_e10 result; + Integer z; + algorithm + (result, z) := gsl.Special_functions.chap_7_16_1.gsl_sf_exp_mult_e10_e(x, y); + end gsl_sf_exp_mult_e10_e; + end chap_7_16_1; + + package chap_7_16_2 + model gsl_sf_expm1 + parameter Real x = 0.00034; + Real y; + algorithm + y := gsl.Special_functions.chap_7_16_2.gsl_sf_expm1(x); + end gsl_sf_expm1; + + model gsl_sf_expm1_e + parameter Real x = 0.000002; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_16_2.gsl_sf_expm1_e(x); + end gsl_sf_expm1_e; + + model gsl_sf_exprel + parameter Real x = 0.000002; + Real y; + algorithm + y := gsl.Special_functions.chap_7_16_2.gsl_sf_exprel(x); + end gsl_sf_exprel; + + model gsl_sf_exprel_e + parameter Real x = 0.002; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_16_2.gsl_sf_exprel_e(x); + end gsl_sf_exprel_e; + + model gsl_sf_exprel_2 + parameter Real x = 0.002; + Real y; + algorithm + y := gsl.Special_functions.chap_7_16_2.gsl_sf_exprel_2(x); + end gsl_sf_exprel_2; + + model gsl_sf_exprel_2_e + parameter Real x = 0.002; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_16_2.gsl_sf_exprel_2_e(x); + end gsl_sf_exprel_2_e; + + model gsl_sf_exprel_n + parameter Integer n = 2; + parameter Real x = 0.002; + Real z; + algorithm + z := gsl.Special_functions.chap_7_16_2.gsl_sf_exprel_n(n, x); + end gsl_sf_exprel_n; + + model gsl_sf_exprel_n_e + parameter Integer n = 2; + parameter Real x = 0.2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_16_2.gsl_sf_exprel_n_e(n, x); + end gsl_sf_exprel_n_e; + end chap_7_16_2; + + package chap_7_16_3 + model gsl_sf_exp_err_e + //This model calls the function gsl_sf_exp_err_e which exponentiates x with an associated absolute error dx + parameter Real x = 0.15; + parameter Real dx = 0.00015; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_16_3.gsl_sf_exp_err_e(x, dx); + end gsl_sf_exp_err_e; + + model gsl_sf_exp_err_e10_e + //this model calls the function gsl_sf_exp_err_e10_e which exponentiates x with an associated absolute error dx + parameter Real x = 0.15; + parameter Real dx = 0.000015; + gsl.data_types.gsl_sf_result_e10 result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_16_3.gsl_sf_exp_err_e10_e(x, dx); + end gsl_sf_exp_err_e10_e; + + model gsl_sf_exp_mult_err_e + parameter Real x = 0.15; + parameter Real dx = 0.0000000015; + parameter Real y = 1; + parameter Real dy = 0.00000001; + gsl.data_types.gsl_sf_result result; + Integer z; + algorithm + (result, z) := gsl.Special_functions.chap_7_16_3.gsl_sf_exp_mult_err_e(x, dx, y, dy); + end gsl_sf_exp_mult_err_e; + + model gsl_sf_exp_mult_err_e10_e + parameter Real x = 0.15; + parameter Real dx = 0.0000000015; + parameter Real y = 1; + parameter Real dy = 0.000000001; + gsl.data_types.gsl_sf_result_e10 result; + Integer z; + algorithm + (result, z) := gsl.Special_functions.chap_7_16_3.gsl_sf_exp_mult_err_e10_e(x, dx, y, dy); + end gsl_sf_exp_mult_err_e10_e; + end chap_7_16_3; + + package chap_7_17_1 + model gsl_sf_expint_E1 + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_17_1.gsl_sf_expint_E1(x); + end gsl_sf_expint_E1; + + model gsl_sf_expint_E1_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_17_1.gsl_sf_expint_E1_e(x); + end gsl_sf_expint_E1_e; + + model gsl_sf_expint_E2 + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_17_1.gsl_sf_expint_E2(x); + end gsl_sf_expint_E2; + + model gsl_sf_expint_E2_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_17_1.gsl_sf_expint_E2_e(x); + end gsl_sf_expint_E2_e; + + model gsl_sf_expint_En + parameter Integer n = 2; + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_17_1.gsl_sf_expint_En(n, x); + end gsl_sf_expint_En; + + model gsl_sf_expint_En_e + parameter Integer n = 4; + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_17_1.gsl_sf_expint_En_e(n, x); + end gsl_sf_expint_En_e; + end chap_7_17_1; + + package chap_7_17_2 + model gsl_sf_expint_Ei + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_17_2.gsl_sf_expint_Ei(x); + end gsl_sf_expint_Ei; + + model gsl_sf_expint_Ei_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_17_2.gsl_sf_expint_Ei_e(x); + end gsl_sf_expint_Ei_e; + end chap_7_17_2; + + package chap_7_17_3 + model gsl_sf_Shi + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_17_3.gsl_sf_Shi(x); + end gsl_sf_Shi; + + model gsl_sf_Shi_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_17_3.gsl_sf_Shi_e(x); + end gsl_sf_Shi_e; + + model gsl_sf_Chi + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_17_3.gsl_sf_Chi(x); + end gsl_sf_Chi; + + model gsl_sf_Chi_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_17_3.gsl_sf_Chi_e(x); + end gsl_sf_Chi_e; + end chap_7_17_3; + + package chap_7_17_4 + model gsl_sf_expint_3 + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_17_4.gsl_sf_expint_3(x); + end gsl_sf_expint_3; + + model gsl_sf_expint_3_e + parameter Real x = 10; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_17_4.gsl_sf_expint_3_e(x); + end gsl_sf_expint_3_e; + end chap_7_17_4; + + package chap_7_17_5 + model gsl_sf_Si + parameter Real x = 10; + Real y; + algorithm + y := gsl.Special_functions.chap_7_17_5.gsl_sf_Si(x); + end gsl_sf_Si; + + model gsl_sf_Si_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_17_5.gsl_sf_Si_e(x); + end gsl_sf_Si_e; + + model gsl_sf_Ci + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_17_5.gsl_sf_Ci(x); + end gsl_sf_Ci; + + model gsl_sf_Ci_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_17_5.gsl_sf_Ci_e(x); + end gsl_sf_Ci_e; + end chap_7_17_5; + + package chap_7_18_1 + model gsl_sf_fermi_dirac_m1 + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_m1(x); + end gsl_sf_fermi_dirac_m1; + + model gsl_sf_fermi_dirac_m1_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_m1_e(x); + end gsl_sf_fermi_dirac_m1_e; + + model gsl_sf_fermi_dirac_0 + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_0(x); + end gsl_sf_fermi_dirac_0; + + model gsl_sf_fermi_dirac_0_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_0_e(x); + end gsl_sf_fermi_dirac_0_e; + + model gsl_sf_fermi_dirac_1 + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_1(x); + end gsl_sf_fermi_dirac_1; + + model gsl_sf_fermi_dirac_1_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_1_e(x); + end gsl_sf_fermi_dirac_1_e; + + model gsl_sf_fermi_dirac_2 + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_2(x); + end gsl_sf_fermi_dirac_2; + + model gsl_sf_fermi_dirac_2_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_2_e(x); + end gsl_sf_fermi_dirac_2_e; + + model gsl_sf_fermi_dirac_int + parameter Integer j = 2; + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_int(j, x); + end gsl_sf_fermi_dirac_int; + + model gsl_sf_fermi_dirac_int_e + parameter Integer j = 2; + parameter Real x = 3; + gsl.data_types.gsl_sf_result result; + Real y; + algorithm + (result, y) := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_int_e(j, x); + end gsl_sf_fermi_dirac_int_e; + + model gsl_sf_fermi_dirac_mhalf + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_mhalf(x); + end gsl_sf_fermi_dirac_mhalf; + + model gsl_sf_fermi_dirac_mhalf_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_mhalf_e(x); + end gsl_sf_fermi_dirac_mhalf_e; + + model gsl_sf_fermi_dirac_half + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_half(x); + end gsl_sf_fermi_dirac_half; + + model gsl_sf_fermi_dirac_half_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_half_e(x); + end gsl_sf_fermi_dirac_half_e; + + model gsl_sf_fermi_dirac_3half + parameter Real x = 2; + Real y; + algorithm + y := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_3half(x); + end gsl_sf_fermi_dirac_3half; + + model gsl_sf_fermi_dirac_3half_e + parameter Real x = 2; + gsl.data_types.gsl_sf_result result; + Integer y; + algorithm + (result, y) := gsl.Special_functions.chap_7_18_1.gsl_sf_fermi_dirac_3half_e(x); + end gsl_sf_fermi_dirac_3half_e; + end chap_7_18_1; + end special_functions; + + package statistics + package chap_21_1 + model gsl_stats_mean + parameter Real data[:]={1,2,3,4,5}; + parameter Integer stride=1; + parameter Integer n=size(data,1); + Real mean; + algorithm + mean:=gsl.STATISTICS.chap_21_1.gsl_stats_mean(data[:],stride,n); + end gsl_stats_mean; + end chap_21_1; + end statistics; + end Examples; +end gsl;
\ No newline at end of file |