gsl 1.12.108

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. data/README.rdoc +29 -0
  2. data/Rakefile +54 -0
  3. data/VERSION +2 -0
  4. data/ext/MANIFEST +119 -0
  5. data/ext/alf.c +206 -0
  6. data/ext/array.c +666 -0
  7. data/ext/array_complex.c +247 -0
  8. data/ext/blas.c +29 -0
  9. data/ext/blas1.c +731 -0
  10. data/ext/blas2.c +1093 -0
  11. data/ext/blas3.c +881 -0
  12. data/ext/block.c +44 -0
  13. data/ext/block_source.c +886 -0
  14. data/ext/bspline.c +130 -0
  15. data/ext/bundle.c +3 -0
  16. data/ext/cdf.c +754 -0
  17. data/ext/cheb.c +542 -0
  18. data/ext/combination.c +283 -0
  19. data/ext/common.c +325 -0
  20. data/ext/complex.c +1004 -0
  21. data/ext/const.c +673 -0
  22. data/ext/const_additional.c +120 -0
  23. data/ext/cqp.c +283 -0
  24. data/ext/deriv.c +195 -0
  25. data/ext/dht.c +361 -0
  26. data/ext/diff.c +166 -0
  27. data/ext/dirac.c +395 -0
  28. data/ext/eigen.c +2373 -0
  29. data/ext/error.c +194 -0
  30. data/ext/extconf.rb +281 -0
  31. data/ext/fcmp.c +66 -0
  32. data/ext/fft.c +1092 -0
  33. data/ext/fit.c +205 -0
  34. data/ext/fresnel.c +312 -0
  35. data/ext/function.c +524 -0
  36. data/ext/geometry.c +139 -0
  37. data/ext/graph.c +1638 -0
  38. data/ext/gsl.c +271 -0
  39. data/ext/gsl_narray.c +653 -0
  40. data/ext/histogram.c +1995 -0
  41. data/ext/histogram2d.c +1068 -0
  42. data/ext/histogram3d.c +884 -0
  43. data/ext/histogram3d_source.c +750 -0
  44. data/ext/histogram_find.c +101 -0
  45. data/ext/histogram_oper.c +159 -0
  46. data/ext/ieee.c +98 -0
  47. data/ext/integration.c +1138 -0
  48. data/ext/interp.c +512 -0
  49. data/ext/jacobi.c +739 -0
  50. data/ext/linalg.c +4047 -0
  51. data/ext/linalg_complex.c +741 -0
  52. data/ext/math.c +725 -0
  53. data/ext/matrix.c +39 -0
  54. data/ext/matrix_complex.c +1732 -0
  55. data/ext/matrix_double.c +560 -0
  56. data/ext/matrix_int.c +256 -0
  57. data/ext/matrix_source.c +2733 -0
  58. data/ext/min.c +250 -0
  59. data/ext/monte.c +992 -0
  60. data/ext/multifit.c +1879 -0
  61. data/ext/multimin.c +808 -0
  62. data/ext/multimin_fsdf.c +156 -0
  63. data/ext/multiroots.c +955 -0
  64. data/ext/ndlinear.c +321 -0
  65. data/ext/nmf.c +167 -0
  66. data/ext/nmf_wrap.c +72 -0
  67. data/ext/ntuple.c +469 -0
  68. data/ext/odeiv.c +959 -0
  69. data/ext/ool.c +879 -0
  70. data/ext/oper_complex_source.c +253 -0
  71. data/ext/permutation.c +596 -0
  72. data/ext/poly.c +42 -0
  73. data/ext/poly2.c +265 -0
  74. data/ext/poly_source.c +1885 -0
  75. data/ext/qrng.c +171 -0
  76. data/ext/randist.c +1873 -0
  77. data/ext/rational.c +480 -0
  78. data/ext/rng.c +612 -0
  79. data/ext/root.c +408 -0
  80. data/ext/sf.c +1494 -0
  81. data/ext/sf_airy.c +200 -0
  82. data/ext/sf_bessel.c +867 -0
  83. data/ext/sf_clausen.c +28 -0
  84. data/ext/sf_coulomb.c +206 -0
  85. data/ext/sf_coupling.c +118 -0
  86. data/ext/sf_dawson.c +29 -0
  87. data/ext/sf_debye.c +157 -0
  88. data/ext/sf_dilog.c +42 -0
  89. data/ext/sf_elementary.c +44 -0
  90. data/ext/sf_ellint.c +206 -0
  91. data/ext/sf_elljac.c +29 -0
  92. data/ext/sf_erfc.c +93 -0
  93. data/ext/sf_exp.c +164 -0
  94. data/ext/sf_expint.c +211 -0
  95. data/ext/sf_fermi_dirac.c +148 -0
  96. data/ext/sf_gamma.c +344 -0
  97. data/ext/sf_gegenbauer.c +96 -0
  98. data/ext/sf_hyperg.c +197 -0
  99. data/ext/sf_laguerre.c +112 -0
  100. data/ext/sf_lambert.c +47 -0
  101. data/ext/sf_legendre.c +367 -0
  102. data/ext/sf_log.c +104 -0
  103. data/ext/sf_mathieu.c +238 -0
  104. data/ext/sf_power.c +46 -0
  105. data/ext/sf_psi.c +98 -0
  106. data/ext/sf_synchrotron.c +48 -0
  107. data/ext/sf_transport.c +76 -0
  108. data/ext/sf_trigonometric.c +207 -0
  109. data/ext/sf_zeta.c +119 -0
  110. data/ext/signal.c +310 -0
  111. data/ext/siman.c +718 -0
  112. data/ext/sort.c +208 -0
  113. data/ext/spline.c +395 -0
  114. data/ext/stats.c +799 -0
  115. data/ext/sum.c +168 -0
  116. data/ext/tamu_anova.c +56 -0
  117. data/ext/tensor.c +38 -0
  118. data/ext/tensor_source.c +1123 -0
  119. data/ext/vector.c +38 -0
  120. data/ext/vector_complex.c +2236 -0
  121. data/ext/vector_double.c +1433 -0
  122. data/ext/vector_int.c +204 -0
  123. data/ext/vector_source.c +3329 -0
  124. data/ext/wavelet.c +937 -0
  125. data/include/rb_gsl.h +151 -0
  126. data/include/rb_gsl_array.h +238 -0
  127. data/include/rb_gsl_cheb.h +21 -0
  128. data/include/rb_gsl_common.h +343 -0
  129. data/include/rb_gsl_complex.h +25 -0
  130. data/include/rb_gsl_const.h +29 -0
  131. data/include/rb_gsl_dirac.h +13 -0
  132. data/include/rb_gsl_eigen.h +17 -0
  133. data/include/rb_gsl_fft.h +62 -0
  134. data/include/rb_gsl_fit.h +25 -0
  135. data/include/rb_gsl_function.h +27 -0
  136. data/include/rb_gsl_graph.h +70 -0
  137. data/include/rb_gsl_histogram.h +63 -0
  138. data/include/rb_gsl_histogram3d.h +97 -0
  139. data/include/rb_gsl_integration.h +17 -0
  140. data/include/rb_gsl_interp.h +46 -0
  141. data/include/rb_gsl_linalg.h +25 -0
  142. data/include/rb_gsl_math.h +26 -0
  143. data/include/rb_gsl_odeiv.h +21 -0
  144. data/include/rb_gsl_poly.h +71 -0
  145. data/include/rb_gsl_rational.h +37 -0
  146. data/include/rb_gsl_rng.h +21 -0
  147. data/include/rb_gsl_root.h +22 -0
  148. data/include/rb_gsl_sf.h +119 -0
  149. data/include/rb_gsl_statistics.h +17 -0
  150. data/include/rb_gsl_tensor.h +45 -0
  151. data/include/rb_gsl_with_narray.h +22 -0
  152. data/include/templates_off.h +87 -0
  153. data/include/templates_on.h +241 -0
  154. data/lib/gsl/gnuplot.rb +41 -0
  155. data/lib/gsl/oper.rb +68 -0
  156. data/lib/ool.rb +22 -0
  157. data/lib/ool/conmin.rb +30 -0
  158. metadata +224 -0
@@ -0,0 +1,200 @@
1
+ /*
2
+ sf_airy.c
3
+ Ruby/GSL: Ruby extension library for GSL (GNU Scientific Library)
4
+ (C) Copyright 2001-2006 by Yoshiki Tsunesada
5
+
6
+ Ruby/GSL is free software: you can redistribute it and/or modify it
7
+ under the terms of the GNU General Public License.
8
+ This library is distributed in the hope that it will be useful, but
9
+ WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
+ */
12
+
13
+ #include "rb_gsl_sf.h"
14
+ #include "rb_gsl_array.h"
15
+
16
+ /* m: precision, d(double), s(single), a(apporox) */
17
+ static VALUE rb_gsl_sf_airy_Ai(int argc, VALUE *argv, VALUE obj)
18
+ {
19
+ if (argc == 1) return eval_sf(gsl_sf_airy_Ai, argv[0]);
20
+ else return rb_gsl_sf_eval_double_m(gsl_sf_airy_Ai, argv[0], argv[1]);
21
+ }
22
+
23
+ static VALUE rb_gsl_sf_airy_Ai_e(VALUE obj, VALUE x, VALUE m)
24
+ {
25
+ return rb_gsl_sf_eval_e_m(gsl_sf_airy_Ai_e, x, m);
26
+ }
27
+
28
+ static VALUE rb_gsl_sf_airy_Bi(int argc, VALUE *argv, VALUE obj)
29
+ {
30
+ if (argc == 1) return eval_sf(gsl_sf_airy_Bi, argv[0]);
31
+ else return rb_gsl_sf_eval_double_m(gsl_sf_airy_Bi, argv[0], argv[1]);
32
+ }
33
+
34
+ static VALUE rb_gsl_sf_airy_Bi_e(VALUE obj, VALUE x, VALUE m)
35
+ {
36
+ return rb_gsl_sf_eval_e_m(gsl_sf_airy_Bi_e, x, m);
37
+ }
38
+
39
+ static VALUE rb_gsl_sf_airy_Ai_scaled(int argc, VALUE *argv, VALUE obj)
40
+ {
41
+ if (argc == 1) return eval_sf(gsl_sf_airy_Ai_scaled, argv[0]);
42
+ else return rb_gsl_sf_eval_double_m(gsl_sf_airy_Ai_scaled, argv[0], argv[1]);
43
+ }
44
+
45
+ static VALUE rb_gsl_sf_airy_Ai_scaled_e(VALUE obj, VALUE x, VALUE m)
46
+ {
47
+ return rb_gsl_sf_eval_e_m(gsl_sf_airy_Ai_scaled_e, x, m);
48
+ }
49
+
50
+ static VALUE rb_gsl_sf_airy_Bi_scaled(int argc, VALUE *argv, VALUE obj)
51
+ {
52
+ if (argc == 1) return eval_sf(gsl_sf_airy_Bi_scaled, argv[0]);
53
+ else return rb_gsl_sf_eval_double_m(gsl_sf_airy_Bi_scaled, argv[0], argv[1]);
54
+ }
55
+
56
+ static VALUE rb_gsl_sf_airy_Bi_scaled_e(VALUE obj, VALUE x, VALUE m)
57
+ {
58
+ return rb_gsl_sf_eval_e_m(gsl_sf_airy_Bi_scaled_e, x, m);
59
+ }
60
+
61
+ static VALUE rb_gsl_sf_airy_Ai_deriv(int argc, VALUE *argv, VALUE obj)
62
+ {
63
+ if (argc == 1) return eval_sf(gsl_sf_airy_Ai_deriv, argv[0]);
64
+ else return rb_gsl_sf_eval_double_m(gsl_sf_airy_Ai_deriv, argv[0], argv[1]);
65
+ }
66
+
67
+ static VALUE rb_gsl_sf_airy_Ai_deriv_e(VALUE obj, VALUE x, VALUE m)
68
+ {
69
+ return rb_gsl_sf_eval_e_m(gsl_sf_airy_Ai_deriv_e, x, m);
70
+ }
71
+
72
+ static VALUE rb_gsl_sf_airy_Bi_deriv(int argc, VALUE *argv, VALUE obj)
73
+ {
74
+ if (argc == 1) return eval_sf(gsl_sf_airy_Bi_deriv, argv[0]);
75
+ else return rb_gsl_sf_eval_double_m(gsl_sf_airy_Bi_deriv, argv[0], argv[1]);
76
+ }
77
+
78
+ static VALUE rb_gsl_sf_airy_Bi_deriv_e(VALUE obj, VALUE x, VALUE m)
79
+ {
80
+ return rb_gsl_sf_eval_e_m(gsl_sf_airy_Bi_deriv_e, x, m);
81
+ }
82
+
83
+ static VALUE rb_gsl_sf_airy_Ai_deriv_scaled(int argc, VALUE *argv, VALUE obj)
84
+ {
85
+ if (argc == 1) return eval_sf(gsl_sf_airy_Ai_deriv_scaled, argv[0]);
86
+ else return rb_gsl_sf_eval_double_m(gsl_sf_airy_Ai_deriv_scaled, argv[0], argv[1]);
87
+ }
88
+
89
+ static VALUE rb_gsl_sf_airy_Ai_deriv_scaled_e(VALUE obj, VALUE x, VALUE m)
90
+ {
91
+ return rb_gsl_sf_eval_e_m(gsl_sf_airy_Ai_deriv_scaled_e, x, m);
92
+ }
93
+
94
+ static VALUE rb_gsl_sf_airy_Bi_deriv_scaled(int argc, VALUE *argv, VALUE obj)
95
+ {
96
+ if (argc == 1) return eval_sf(gsl_sf_airy_Bi_deriv_scaled, argv[0]);
97
+ else return rb_gsl_sf_eval_double_m(gsl_sf_airy_Bi_deriv_scaled, argv[0], argv[1]);
98
+ }
99
+
100
+ static VALUE rb_gsl_sf_airy_Bi_deriv_scaled_e(VALUE obj, VALUE x, VALUE m)
101
+ {
102
+ return rb_gsl_sf_eval_e_m(gsl_sf_airy_Bi_deriv_scaled_e, x, m);
103
+ }
104
+
105
+ static VALUE rb_gsl_sf_airy_zero_Ai(VALUE obj, VALUE s)
106
+ {
107
+ return rb_gsl_sf_eval1_uint(gsl_sf_airy_zero_Ai, s);
108
+ }
109
+
110
+ static VALUE rb_gsl_sf_airy_zero_Ai_e(VALUE obj, VALUE s)
111
+ {
112
+ return rb_gsl_sf_eval_e_uint(gsl_sf_airy_zero_Ai_e, s);
113
+ }
114
+
115
+ static VALUE rb_gsl_sf_airy_zero_Bi(VALUE obj, VALUE s)
116
+ {
117
+ return rb_gsl_sf_eval1_uint(gsl_sf_airy_zero_Bi, s);
118
+ }
119
+
120
+ static VALUE rb_gsl_sf_airy_zero_Bi_e(VALUE obj, VALUE s)
121
+ {
122
+ return rb_gsl_sf_eval_e_uint(gsl_sf_airy_zero_Bi_e, s);
123
+ }
124
+
125
+ static VALUE rb_gsl_sf_airy_zero_Ai_deriv(VALUE obj, VALUE s)
126
+ {
127
+ return rb_gsl_sf_eval1_uint(gsl_sf_airy_zero_Ai_deriv, s);
128
+ }
129
+
130
+ static VALUE rb_gsl_sf_airy_zero_Ai_deriv_e(VALUE obj, VALUE s)
131
+ {
132
+ return rb_gsl_sf_eval_e_uint(gsl_sf_airy_zero_Ai_deriv_e, s);
133
+ }
134
+
135
+ static VALUE rb_gsl_sf_airy_zero_Bi_deriv(VALUE obj, VALUE s)
136
+ {
137
+ return rb_gsl_sf_eval1_uint(gsl_sf_airy_zero_Bi_deriv, s);
138
+ }
139
+
140
+ static VALUE rb_gsl_sf_airy_zero_Bi_deriv_e(VALUE obj, VALUE s)
141
+ {
142
+ return rb_gsl_sf_eval_e_uint(gsl_sf_airy_zero_Bi_deriv_e, s);
143
+ }
144
+
145
+ void Init_gsl_sf_airy(VALUE module)
146
+ {
147
+ VALUE mgsl_sf_airy;
148
+
149
+ rb_define_module_function(module, "airy_Ai", rb_gsl_sf_airy_Ai, -1);
150
+ rb_define_module_function(module, "airy_Ai_e", rb_gsl_sf_airy_Ai_e, 2);
151
+ rb_define_module_function(module, "airy_Bi", rb_gsl_sf_airy_Bi, -1);
152
+ rb_define_module_function(module, "airy_Bi_e", rb_gsl_sf_airy_Bi_e, 2);
153
+ rb_define_module_function(module, "airy_Ai_scaled", rb_gsl_sf_airy_Ai_scaled, -1);
154
+ rb_define_module_function(module, "airy_Ai_scaled_e", rb_gsl_sf_airy_Ai_scaled_e, 2);
155
+ rb_define_module_function(module, "airy_Bi_scaled", rb_gsl_sf_airy_Bi_scaled, -1);
156
+ rb_define_module_function(module, "airy_Bi_scaled_e", rb_gsl_sf_airy_Bi_scaled_e, 2);
157
+ rb_define_module_function(module, "airy_Ai_deriv", rb_gsl_sf_airy_Ai_deriv, -1);
158
+ rb_define_module_function(module, "airy_Ai_deriv_e", rb_gsl_sf_airy_Ai_deriv_e, 2);
159
+ rb_define_module_function(module, "airy_Bi_deriv", rb_gsl_sf_airy_Bi_deriv, -1);
160
+ rb_define_module_function(module, "airy_Bi_deriv_e", rb_gsl_sf_airy_Bi_deriv_e, 2);
161
+ rb_define_module_function(module, "airy_Ai_deriv_scaled", rb_gsl_sf_airy_Ai_deriv_scaled, -1);
162
+ rb_define_module_function(module, "airy_Ai_deriv_scaled_e", rb_gsl_sf_airy_Ai_deriv_scaled_e, 2);
163
+ rb_define_module_function(module, "airy_Bi_deriv_scaled", rb_gsl_sf_airy_Bi_deriv_scaled, -1);
164
+ rb_define_module_function(module, "airy_Bi_deriv_scaled_e", rb_gsl_sf_airy_Bi_deriv_scaled_e, 2);
165
+ rb_define_module_function(module, "airy_zero_Ai", rb_gsl_sf_airy_zero_Ai, 1);
166
+ rb_define_module_function(module, "airy_zero_Ai_e", rb_gsl_sf_airy_zero_Ai_e, 1);
167
+ rb_define_module_function(module, "airy_zero_Bi", rb_gsl_sf_airy_zero_Bi, 1);
168
+ rb_define_module_function(module, "airy_zero_Bi_e", rb_gsl_sf_airy_zero_Bi_e, 1);
169
+ rb_define_module_function(module, "airy_zero_Ai_deriv", rb_gsl_sf_airy_zero_Ai_deriv, 1);
170
+ rb_define_module_function(module, "airy_zero_Ai_deriv_e", rb_gsl_sf_airy_zero_Ai_deriv_e, 1);
171
+ rb_define_module_function(module, "airy_zero_Bi_deriv", rb_gsl_sf_airy_zero_Bi_deriv, 1);
172
+ rb_define_module_function(module, "airy_zero_Bi_deriv_e", rb_gsl_sf_airy_zero_Bi_deriv_e, 1);
173
+
174
+ mgsl_sf_airy = rb_define_module_under(module, "Airy");
175
+
176
+ rb_define_module_function(mgsl_sf_airy, "Ai", rb_gsl_sf_airy_Ai, -1);
177
+ rb_define_module_function(mgsl_sf_airy, "Ai_e", rb_gsl_sf_airy_Ai_e, 2);
178
+ rb_define_module_function(mgsl_sf_airy, "Bi", rb_gsl_sf_airy_Bi, -1);
179
+ rb_define_module_function(mgsl_sf_airy, "Bi_e", rb_gsl_sf_airy_Bi_e, 2);
180
+ rb_define_module_function(mgsl_sf_airy, "Ai_scaled", rb_gsl_sf_airy_Ai_scaled, -1);
181
+ rb_define_module_function(mgsl_sf_airy, "Ai_scaled_e", rb_gsl_sf_airy_Ai_scaled_e, 2);
182
+ rb_define_module_function(mgsl_sf_airy, "Bi_scaled", rb_gsl_sf_airy_Bi_scaled, -1);
183
+ rb_define_module_function(mgsl_sf_airy, "Bi_scaled_e", rb_gsl_sf_airy_Bi_scaled_e, 2);
184
+ rb_define_module_function(mgsl_sf_airy, "Ai_deriv", rb_gsl_sf_airy_Ai_deriv, -1);
185
+ rb_define_module_function(mgsl_sf_airy, "Ai_deriv_e", rb_gsl_sf_airy_Ai_deriv_e, 2);
186
+ rb_define_module_function(mgsl_sf_airy, "Bi_deriv", rb_gsl_sf_airy_Bi_deriv, -1);
187
+ rb_define_module_function(mgsl_sf_airy, "Bi_deriv_e", rb_gsl_sf_airy_Bi_deriv_e, 2);
188
+ rb_define_module_function(mgsl_sf_airy, "Ai_deriv_scaled", rb_gsl_sf_airy_Ai_deriv_scaled, -1);
189
+ rb_define_module_function(mgsl_sf_airy, "Ai_deriv_scaled_e", rb_gsl_sf_airy_Ai_deriv_scaled_e, 2);
190
+ rb_define_module_function(mgsl_sf_airy, "Bi_deriv_scaled", rb_gsl_sf_airy_Bi_deriv_scaled, -1);
191
+ rb_define_module_function(mgsl_sf_airy, "Bi_deriv_scaled_e", rb_gsl_sf_airy_Bi_deriv_scaled_e, 2);
192
+ rb_define_module_function(mgsl_sf_airy, "zero_Ai", rb_gsl_sf_airy_zero_Ai, 1);
193
+ rb_define_module_function(mgsl_sf_airy, "zero_Ai_e", rb_gsl_sf_airy_zero_Ai_e, 1);
194
+ rb_define_module_function(mgsl_sf_airy, "zero_Bi", rb_gsl_sf_airy_zero_Bi, 1);
195
+ rb_define_module_function(mgsl_sf_airy, "zero_Bi_e", rb_gsl_sf_airy_zero_Bi_e, 1);
196
+ rb_define_module_function(mgsl_sf_airy, "zero_Ai_deriv", rb_gsl_sf_airy_zero_Ai_deriv, 1);
197
+ rb_define_module_function(mgsl_sf_airy, "zero_Ai_deriv_e", rb_gsl_sf_airy_zero_Ai_deriv_e, 1);
198
+ rb_define_module_function(mgsl_sf_airy, "zero_Bi_deriv", rb_gsl_sf_airy_zero_Bi_deriv, 1);
199
+ rb_define_module_function(mgsl_sf_airy, "zero_Bi_deriv_e", rb_gsl_sf_airy_zero_Bi_deriv_e, 1);
200
+ }
@@ -0,0 +1,867 @@
1
+ /*
2
+ sf_bessel.c
3
+ Ruby/GSL: Ruby extension library for GSL (GNU Scientific Library)
4
+ (C) Copyright 2001-2006 by Yoshiki Tsunesada
5
+
6
+ Ruby/GSL is free software: you can redistribute it and/or modify it
7
+ under the terms of the GNU General Public License.
8
+ This library is distributed in the hope that it will be useful, but
9
+ WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
+ */
12
+
13
+ #include "rb_gsl_sf.h"
14
+ EXTERN VALUE cgsl_vector;
15
+
16
+ /* Cylindrical Bessel Functions */
17
+ static VALUE rb_gsl_sf_bessel_J0(VALUE obj, VALUE x)
18
+ {
19
+ return rb_gsl_sf_eval1(gsl_sf_bessel_J0, x);
20
+ }
21
+
22
+ static VALUE rb_gsl_sf_bessel_J0_e(VALUE obj, VALUE x)
23
+ {
24
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_J0_e, x);
25
+ }
26
+
27
+ static VALUE rb_gsl_sf_bessel_J1(VALUE obj, VALUE x)
28
+ {
29
+ return rb_gsl_sf_eval1(gsl_sf_bessel_J1, x);
30
+ }
31
+
32
+ static VALUE rb_gsl_sf_bessel_J1_e(VALUE obj, VALUE x)
33
+ {
34
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_J1_e, x);
35
+ }
36
+
37
+ static VALUE rb_gsl_sf_bessel_Jn(VALUE obj, VALUE n, VALUE x)
38
+ {
39
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_Jn, n, x);
40
+ }
41
+
42
+ static VALUE rb_gsl_sf_bessel_Jn_e(VALUE obj, VALUE n, VALUE x)
43
+ {
44
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_Jn_e, n, x);
45
+ }
46
+
47
+ static VALUE rb_gsl_sf_bessel_Xn_array(VALUE obj, VALUE n0, VALUE n1, VALUE x,
48
+ int (*f)(int, int, double, double[]))
49
+ {
50
+ int nmin, nmax, n;
51
+ gsl_vector *v = NULL;
52
+ CHECK_FIXNUM(n0); CHECK_FIXNUM(n1);
53
+ Need_Float(x);
54
+ nmin = FIX2INT(n0);
55
+ nmax = FIX2INT(n1);
56
+ n = nmax - nmin + 1;
57
+ v = gsl_vector_alloc(n);
58
+ (*f)(nmin, nmax, NUM2DBL(x), v->data);
59
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
60
+ }
61
+
62
+ static VALUE rb_gsl_sf_bessel_Jn_array(VALUE obj, VALUE n0, VALUE n1, VALUE x)
63
+ {
64
+ return rb_gsl_sf_bessel_Xn_array(obj, n0, n1, x, gsl_sf_bessel_Jn_array);
65
+ }
66
+
67
+ /* Irregular Cylindrical Bessel Functions */
68
+ static VALUE rb_gsl_sf_bessel_Y0(VALUE obj, VALUE x)
69
+ {
70
+ return rb_gsl_sf_eval1(gsl_sf_bessel_Y0, x);
71
+ }
72
+
73
+ static VALUE rb_gsl_sf_bessel_Y0_e(VALUE obj, VALUE x)
74
+ {
75
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_Y0_e, x);
76
+ }
77
+
78
+ static VALUE rb_gsl_sf_bessel_Y1(VALUE obj, VALUE x)
79
+ {
80
+ return rb_gsl_sf_eval1(gsl_sf_bessel_Y1, x);
81
+ }
82
+
83
+ static VALUE rb_gsl_sf_bessel_Y1_e(VALUE obj, VALUE x)
84
+ {
85
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_Y1_e, x);
86
+ }
87
+
88
+ static VALUE rb_gsl_sf_bessel_Yn(VALUE obj, VALUE n, VALUE x)
89
+ {
90
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_Yn, n, x);
91
+ }
92
+
93
+ static VALUE rb_gsl_sf_bessel_Yn_e(VALUE obj, VALUE n, VALUE x)
94
+ {
95
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_Yn_e, n, x);
96
+ }
97
+
98
+ static VALUE rb_gsl_sf_bessel_Yn_array(VALUE obj, VALUE n0, VALUE n1, VALUE x)
99
+ {
100
+ return rb_gsl_sf_bessel_Xn_array(obj, n0, n1, x, gsl_sf_bessel_Yn_array);
101
+ }
102
+
103
+ /* Regular Modified Cylindrical Bessel Functions */
104
+ static VALUE rb_gsl_sf_bessel_I0(VALUE obj, VALUE x)
105
+ {
106
+ return rb_gsl_sf_eval1(gsl_sf_bessel_I0, x);
107
+ }
108
+
109
+ static VALUE rb_gsl_sf_bessel_I0_e(VALUE obj, VALUE x)
110
+ {
111
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_I0_e, x);
112
+ }
113
+
114
+ static VALUE rb_gsl_sf_bessel_I1(VALUE obj, VALUE x)
115
+ {
116
+ return rb_gsl_sf_eval1(gsl_sf_bessel_I1, x);
117
+ }
118
+
119
+ static VALUE rb_gsl_sf_bessel_I1_e(VALUE obj, VALUE x)
120
+ {
121
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_I1_e, x);
122
+ }
123
+
124
+ static VALUE rb_gsl_sf_bessel_In(VALUE obj, VALUE n, VALUE x)
125
+ {
126
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_In, n, x);
127
+ }
128
+
129
+ static VALUE rb_gsl_sf_bessel_In_e(VALUE obj, VALUE n, VALUE x)
130
+ {
131
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_In_e, n, x);
132
+ }
133
+
134
+ static VALUE rb_gsl_sf_bessel_In_array(VALUE obj, VALUE n0, VALUE n1, VALUE x)
135
+ {
136
+ return rb_gsl_sf_bessel_Xn_array(obj, n0, n1, x, gsl_sf_bessel_In_array);
137
+ }
138
+
139
+ static VALUE rb_gsl_sf_bessel_I0_scaled(VALUE obj, VALUE x)
140
+ {
141
+ return rb_gsl_sf_eval1(gsl_sf_bessel_I0_scaled, x);
142
+ }
143
+
144
+ static VALUE rb_gsl_sf_bessel_I0_scaled_e(VALUE obj, VALUE x)
145
+ {
146
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_I0_scaled_e, x);
147
+ }
148
+
149
+ static VALUE rb_gsl_sf_bessel_I1_scaled(VALUE obj, VALUE x)
150
+ {
151
+ return rb_gsl_sf_eval1(gsl_sf_bessel_I1_scaled, x);
152
+ }
153
+
154
+ static VALUE rb_gsl_sf_bessel_I1_scaled_e(VALUE obj, VALUE x)
155
+ {
156
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_I1_scaled_e, x);
157
+ }
158
+
159
+ static VALUE rb_gsl_sf_bessel_In_scaled(VALUE obj, VALUE n, VALUE x)
160
+ {
161
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_In_scaled, n, x);
162
+ }
163
+
164
+ static VALUE rb_gsl_sf_bessel_In_scaled_e(VALUE obj, VALUE n, VALUE x)
165
+ {
166
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_In_scaled_e, n, x);
167
+ }
168
+
169
+ static VALUE rb_gsl_sf_bessel_In_scaled_array(VALUE obj, VALUE n0, VALUE n1,
170
+ VALUE x)
171
+ {
172
+ return rb_gsl_sf_bessel_Xn_array(obj, n0, n1, x, gsl_sf_bessel_In_scaled_array);
173
+ }
174
+
175
+ /* Irregular Modified Cylindrical Bessel Functions */
176
+ static VALUE rb_gsl_sf_bessel_K0(VALUE obj, VALUE x)
177
+ {
178
+ return rb_gsl_sf_eval1(gsl_sf_bessel_K0, x);
179
+ }
180
+
181
+ static VALUE rb_gsl_sf_bessel_K0_e(VALUE obj, VALUE x)
182
+ {
183
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_K0_e, x);
184
+ }
185
+
186
+ static VALUE rb_gsl_sf_bessel_K1(VALUE obj, VALUE x)
187
+ {
188
+ return rb_gsl_sf_eval1(gsl_sf_bessel_K1, x);
189
+ }
190
+
191
+ static VALUE rb_gsl_sf_bessel_K1_e(VALUE obj, VALUE x)
192
+ {
193
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_K1_e, x);
194
+ }
195
+
196
+ static VALUE rb_gsl_sf_bessel_Kn(VALUE obj, VALUE n, VALUE x)
197
+ {
198
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_Kn, n, x);
199
+ }
200
+
201
+ static VALUE rb_gsl_sf_bessel_Kn_e(VALUE obj, VALUE n, VALUE x)
202
+ {
203
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_Kn_e, n, x);
204
+ }
205
+
206
+ static VALUE rb_gsl_sf_bessel_Kn_array(VALUE obj, VALUE n0, VALUE n1, VALUE x)
207
+ {
208
+ return rb_gsl_sf_bessel_Xn_array(obj, n0, n1, x, gsl_sf_bessel_Kn_array);
209
+ }
210
+
211
+ static VALUE rb_gsl_sf_bessel_K0_scaled(VALUE obj, VALUE x)
212
+ {
213
+ return rb_gsl_sf_eval1(gsl_sf_bessel_K0_scaled, x);
214
+ }
215
+
216
+ static VALUE rb_gsl_sf_bessel_K0_scaled_e(VALUE obj, VALUE x)
217
+ {
218
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_K0_scaled_e, x);
219
+ }
220
+
221
+ static VALUE rb_gsl_sf_bessel_K1_scaled(VALUE obj, VALUE x)
222
+ {
223
+ return rb_gsl_sf_eval1(gsl_sf_bessel_K1_scaled, x);
224
+ }
225
+
226
+ static VALUE rb_gsl_sf_bessel_K1_scaled_e(VALUE obj, VALUE x)
227
+ {
228
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_K1_scaled_e, x);
229
+ }
230
+
231
+ static VALUE rb_gsl_sf_bessel_Kn_scaled(VALUE obj, VALUE n, VALUE x)
232
+ {
233
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_Kn_scaled, n, x);
234
+ }
235
+
236
+ static VALUE rb_gsl_sf_bessel_Kn_scaled_e(VALUE obj, VALUE n, VALUE x)
237
+ {
238
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_Kn_scaled_e, n, x);
239
+ }
240
+
241
+ static VALUE rb_gsl_sf_bessel_Kn_scaled_array(VALUE obj, VALUE n0, VALUE n1,
242
+ VALUE x)
243
+ {
244
+ return rb_gsl_sf_bessel_Xn_array(obj, n0, n1, x, gsl_sf_bessel_Kn_scaled_array);
245
+ }
246
+
247
+ /* Spherical Bessel Functions */
248
+ static VALUE rb_gsl_sf_bessel_j0(VALUE obj, VALUE x)
249
+ {
250
+ return rb_gsl_sf_eval1(gsl_sf_bessel_j0, x);
251
+ }
252
+
253
+ static VALUE rb_gsl_sf_bessel_j0_e(VALUE obj, VALUE x)
254
+ {
255
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_j0_e, x);
256
+ }
257
+
258
+ static VALUE rb_gsl_sf_bessel_j1(VALUE obj, VALUE x)
259
+ {
260
+ return rb_gsl_sf_eval1(gsl_sf_bessel_j1, x);
261
+ }
262
+
263
+ static VALUE rb_gsl_sf_bessel_j1_e(VALUE obj, VALUE x)
264
+ {
265
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_j1_e, x);
266
+ }
267
+
268
+ static VALUE rb_gsl_sf_bessel_j2(VALUE obj, VALUE x)
269
+ {
270
+ return rb_gsl_sf_eval1(gsl_sf_bessel_j2, x);
271
+ }
272
+
273
+ static VALUE rb_gsl_sf_bessel_j2_e(VALUE obj, VALUE x)
274
+ {
275
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_j2_e, x);
276
+ }
277
+
278
+ static VALUE rb_gsl_sf_bessel_jl(VALUE obj, VALUE n, VALUE x)
279
+ {
280
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_jl, n, x);
281
+ }
282
+
283
+ static VALUE rb_gsl_sf_bessel_jl_e(VALUE obj, VALUE n, VALUE x)
284
+ {
285
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_jl_e, n, x);
286
+ }
287
+
288
+ static VALUE rb_gsl_sf_bessel_xl_array(VALUE obj, VALUE n1, VALUE x,
289
+ int (*f)(int, double, double[]))
290
+ {
291
+ int nmax, n, status;
292
+ gsl_vector *v = NULL;
293
+ CHECK_FIXNUM(n1);
294
+ Need_Float(x);
295
+ nmax = FIX2INT(n1);
296
+ n = nmax + 1;
297
+ v = gsl_vector_alloc(n);
298
+ status = (*f)(nmax, NUM2DBL(x), v->data);
299
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
300
+ }
301
+
302
+ static VALUE rb_gsl_sf_bessel_jl_array(VALUE obj, VALUE n1, VALUE x)
303
+ {
304
+ return rb_gsl_sf_bessel_xl_array(obj, n1, x, gsl_sf_bessel_jl_array);
305
+ }
306
+
307
+ static VALUE rb_gsl_sf_bessel_jl_steed_array(VALUE obj, VALUE n1, VALUE x)
308
+ {
309
+ return rb_gsl_sf_bessel_xl_array(obj, n1, x, gsl_sf_bessel_jl_steed_array);
310
+ }
311
+
312
+ /* Irregular Cylindrical Bessel Functions */
313
+ static VALUE rb_gsl_sf_bessel_y0(VALUE obj, VALUE x)
314
+ {
315
+ return rb_gsl_sf_eval1(gsl_sf_bessel_y0, x);
316
+ }
317
+
318
+ static VALUE rb_gsl_sf_bessel_y0_e(VALUE obj, VALUE x)
319
+ {
320
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_y0_e, x);
321
+ }
322
+
323
+ static VALUE rb_gsl_sf_bessel_y1(VALUE obj, VALUE x)
324
+ {
325
+ return rb_gsl_sf_eval1(gsl_sf_bessel_y1, x);
326
+ }
327
+
328
+ static VALUE rb_gsl_sf_bessel_y1_e(VALUE obj, VALUE x)
329
+ {
330
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_y1_e, x);
331
+ }
332
+
333
+ static VALUE rb_gsl_sf_bessel_y2(VALUE obj, VALUE x)
334
+ {
335
+ return rb_gsl_sf_eval1(gsl_sf_bessel_y2, x);
336
+ }
337
+
338
+ static VALUE rb_gsl_sf_bessel_y2_e(VALUE obj, VALUE x)
339
+ {
340
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_y2_e, x);
341
+ }
342
+
343
+ static VALUE rb_gsl_sf_bessel_yl(VALUE obj, VALUE n, VALUE x)
344
+ {
345
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_yl, n, x);
346
+ }
347
+
348
+ static VALUE rb_gsl_sf_bessel_yl_e(VALUE obj, VALUE n, VALUE x)
349
+ {
350
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_yl_e, n, x);
351
+ }
352
+
353
+ static VALUE rb_gsl_sf_bessel_yl_array(VALUE obj, VALUE n1, VALUE x)
354
+ {
355
+ return rb_gsl_sf_bessel_xl_array(obj, n1, x, gsl_sf_bessel_yl_array);
356
+ }
357
+
358
+ /* Regular Modified Cylindrical Bessel Functions */
359
+ static VALUE rb_gsl_sf_bessel_i0_scaled(VALUE obj, VALUE x)
360
+ {
361
+ return rb_gsl_sf_eval1(gsl_sf_bessel_i0_scaled, x);
362
+ }
363
+
364
+ static VALUE rb_gsl_sf_bessel_i0_scaled_e(VALUE obj, VALUE x)
365
+ {
366
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_i0_scaled_e, x);
367
+ }
368
+
369
+ static VALUE rb_gsl_sf_bessel_i1_scaled(VALUE obj, VALUE x)
370
+ {
371
+ return rb_gsl_sf_eval1(gsl_sf_bessel_i1_scaled, x);
372
+ }
373
+
374
+ static VALUE rb_gsl_sf_bessel_i1_scaled_e(VALUE obj, VALUE x)
375
+ {
376
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_i1_scaled_e, x);
377
+ }
378
+
379
+ static VALUE rb_gsl_sf_bessel_i2_scaled(VALUE obj, VALUE x)
380
+ {
381
+ return rb_gsl_sf_eval1(gsl_sf_bessel_i2_scaled, x);
382
+ }
383
+
384
+ static VALUE rb_gsl_sf_bessel_i2_scaled_e(VALUE obj, VALUE x)
385
+ {
386
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_i2_scaled_e, x);
387
+ }
388
+
389
+ static VALUE rb_gsl_sf_bessel_il_scaled(VALUE obj, VALUE n, VALUE x)
390
+ {
391
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_il_scaled, n, x);
392
+ }
393
+
394
+ static VALUE rb_gsl_sf_bessel_il_scaled_e(VALUE obj, VALUE n, VALUE x)
395
+ {
396
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_il_scaled_e, n, x);
397
+ }
398
+
399
+ static VALUE rb_gsl_sf_bessel_il_scaled_array(VALUE obj, VALUE n1, VALUE x)
400
+ {
401
+ return rb_gsl_sf_bessel_xl_array(obj, n1, x, gsl_sf_bessel_il_scaled_array);
402
+ }
403
+
404
+ /* Irregular Modified Cylindrical Bessel Functions */
405
+
406
+ static VALUE rb_gsl_sf_bessel_k0_scaled(VALUE obj, VALUE x)
407
+ {
408
+ return rb_gsl_sf_eval1(gsl_sf_bessel_k0_scaled, x);
409
+ }
410
+
411
+ static VALUE rb_gsl_sf_bessel_k0_scaled_e(VALUE obj, VALUE x)
412
+ {
413
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_k0_scaled_e, x);
414
+ }
415
+
416
+ static VALUE rb_gsl_sf_bessel_k1_scaled(VALUE obj, VALUE x)
417
+ {
418
+ return rb_gsl_sf_eval1(gsl_sf_bessel_k1_scaled, x);
419
+ }
420
+
421
+ static VALUE rb_gsl_sf_bessel_k1_scaled_e(VALUE obj, VALUE x)
422
+ {
423
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_k1_scaled_e, x);
424
+ }
425
+
426
+ static VALUE rb_gsl_sf_bessel_k2_scaled(VALUE obj, VALUE x)
427
+ {
428
+ return rb_gsl_sf_eval1(gsl_sf_bessel_k2_scaled, x);
429
+ }
430
+
431
+ static VALUE rb_gsl_sf_bessel_k2_scaled_e(VALUE obj, VALUE x)
432
+ {
433
+ return rb_gsl_sf_eval_e(gsl_sf_bessel_k2_scaled_e, x);
434
+ }
435
+
436
+ static VALUE rb_gsl_sf_bessel_kl_scaled(VALUE obj, VALUE n, VALUE x)
437
+ {
438
+ return rb_gsl_sf_eval_int_double(gsl_sf_bessel_kl_scaled, n, x);
439
+ }
440
+
441
+ static VALUE rb_gsl_sf_bessel_kl_scaled_e(VALUE obj, VALUE n, VALUE x)
442
+ {
443
+ return rb_gsl_sf_eval_e_int_double(gsl_sf_bessel_kl_scaled_e, n, x);
444
+ }
445
+
446
+ static VALUE rb_gsl_sf_bessel_kl_scaled_array(VALUE obj, VALUE n1,
447
+ VALUE x)
448
+ {
449
+ return rb_gsl_sf_bessel_xl_array(obj, n1, x, gsl_sf_bessel_kl_scaled_array);
450
+ }
451
+
452
+ /* Regular Bessel Function - Fractional Order */
453
+
454
+ static VALUE rb_gsl_sf_bessel_Jnu(VALUE obj, VALUE nu, VALUE x)
455
+ {
456
+ return rb_gsl_sf_eval_double_double(gsl_sf_bessel_Jnu, nu, x);
457
+ }
458
+
459
+ static VALUE rb_gsl_sf_bessel_Jnu_e(VALUE obj, VALUE nu, VALUE x)
460
+ {
461
+ return rb_gsl_sf_eval_e_double2(gsl_sf_bessel_Jnu_e, nu, x);
462
+ }
463
+
464
+ /* The new array will be returned, the original array "ary" is not modified */
465
+ static VALUE rb_gsl_sf_bessel_sequence_Jnu_e(int argc, VALUE *argv, VALUE obj)
466
+ {
467
+ size_t i, size;
468
+ int status, flag = 0;
469
+ gsl_vector *v = NULL;
470
+ gsl_mode_t mode;
471
+ char c;
472
+ VALUE nu, m, ary;
473
+
474
+ nu = argv[0];
475
+ switch (argc) {
476
+ case 2:
477
+ ary = argv[1];
478
+ mode = GSL_PREC_DOUBLE;
479
+ break;
480
+ case 3:
481
+ m = argv[1];
482
+ ary = argv[2];
483
+ switch (TYPE(m)) {
484
+ case T_STRING:
485
+ c = tolower(NUM2CHR(m));
486
+ if (c == 'd') mode = GSL_PREC_DOUBLE;
487
+ else if (c == 's') mode = GSL_PREC_SINGLE;
488
+ else if (c == 'a') mode = GSL_PREC_APPROX;
489
+ else mode = GSL_PREC_DOUBLE;
490
+ break;
491
+ case T_FIXNUM:
492
+ mode = FIX2INT(m);
493
+ break;
494
+ default:
495
+ rb_raise(rb_eTypeError, "wrong argument type %s (String or Fixnum expected)",
496
+ rb_class2name(CLASS_OF(m)));
497
+ break;
498
+ }
499
+ default:
500
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 or 3)", argc);
501
+ break;
502
+ }
503
+
504
+ switch (TYPE(ary)) {
505
+ case T_ARRAY:
506
+ size = RARRAY_LEN(ary);
507
+ v = gsl_vector_alloc(size);
508
+ for (i = 0; i < size; i++) gsl_vector_set(v, i, NUM2DBL(rb_ary_entry(ary, i)));
509
+ flag = 1;
510
+ break;
511
+ default:
512
+ CHECK_VECTOR(ary);
513
+ Data_Get_Struct(ary, gsl_vector, v);
514
+ size = v->size;
515
+ flag = 0;
516
+ break;
517
+ }
518
+ status = gsl_sf_bessel_sequence_Jnu_e(NUM2DBL(nu), mode, size, v->data);
519
+ if (flag == 1) return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, v);
520
+ else return ary;
521
+ }
522
+
523
+ /* Irregular Bessel Function - Fractional Order */
524
+ static VALUE rb_gsl_sf_bessel_Ynu(VALUE obj, VALUE nu, VALUE x)
525
+ {
526
+ return rb_gsl_sf_eval_double_double(gsl_sf_bessel_Ynu, nu, x);
527
+ }
528
+
529
+ static VALUE rb_gsl_sf_bessel_Ynu_e(VALUE obj, VALUE nu, VALUE x)
530
+ {
531
+ return rb_gsl_sf_eval_e_double2(gsl_sf_bessel_Ynu_e, nu, x);
532
+ }
533
+
534
+ /* Regular Modified Bessel Function - Fractional Order */
535
+ static VALUE rb_gsl_sf_bessel_Inu(VALUE obj, VALUE nu, VALUE x)
536
+ {
537
+ return rb_gsl_sf_eval_double_double(gsl_sf_bessel_Inu, nu, x);
538
+ }
539
+
540
+ static VALUE rb_gsl_sf_bessel_Inu_e(VALUE obj, VALUE nu, VALUE x)
541
+ {
542
+ return rb_gsl_sf_eval_e_double2(gsl_sf_bessel_Inu_e, nu, x);
543
+ }
544
+
545
+ static VALUE rb_gsl_sf_bessel_Inu_scaled(VALUE obj, VALUE nu, VALUE x)
546
+ {
547
+ return rb_gsl_sf_eval_double_double(gsl_sf_bessel_Inu_scaled, nu, x);
548
+ }
549
+
550
+ static VALUE rb_gsl_sf_bessel_Inu_scaled_e(VALUE obj, VALUE nu, VALUE x)
551
+ {
552
+ return rb_gsl_sf_eval_e_double2(gsl_sf_bessel_Inu_scaled_e, nu, x);
553
+ }
554
+
555
+ /* Irregular Modified Bessel Function - Fractional Order */
556
+ static VALUE rb_gsl_sf_bessel_Knu(VALUE obj, VALUE nu, VALUE x)
557
+ {
558
+ return rb_gsl_sf_eval_double_double(gsl_sf_bessel_Knu, nu, x);
559
+ }
560
+
561
+ static VALUE rb_gsl_sf_bessel_Knu_e(VALUE obj, VALUE nu, VALUE x)
562
+ {
563
+ return rb_gsl_sf_eval_e_double2(gsl_sf_bessel_Knu_e, nu, x);
564
+ }
565
+
566
+ static VALUE rb_gsl_sf_bessel_lnKnu(VALUE obj, VALUE nu, VALUE x)
567
+ {
568
+ return rb_gsl_sf_eval_double_double(gsl_sf_bessel_lnKnu, nu, x);
569
+ }
570
+
571
+ static VALUE rb_gsl_sf_bessel_lnKnu_e(VALUE obj, VALUE nu, VALUE x)
572
+ {
573
+ return rb_gsl_sf_eval_e_double2(gsl_sf_bessel_lnKnu_e, nu, x);
574
+ }
575
+
576
+ static VALUE rb_gsl_sf_bessel_Knu_scaled(VALUE obj, VALUE nu, VALUE x)
577
+ {
578
+ return rb_gsl_sf_eval_double_double(gsl_sf_bessel_Knu_scaled, nu, x);
579
+ }
580
+
581
+ static VALUE rb_gsl_sf_bessel_Knu_scaled_e(VALUE obj, VALUE nu, VALUE x)
582
+ {
583
+ return rb_gsl_sf_eval_e_double2(gsl_sf_bessel_Knu_scaled_e, nu, x);
584
+ }
585
+
586
+ static VALUE rb_gsl_sf_eval_double_uint(double (*func)(double, unsigned int), VALUE ff, VALUE argv);
587
+
588
+ static VALUE rb_gsl_sf_eval_double_uint(double (*func)(double, unsigned int), VALUE ff, VALUE argv)
589
+ {
590
+ gsl_vector *v, *vnew;
591
+ VALUE ary;
592
+ size_t i, n;
593
+ double val, f;
594
+
595
+ f = NUM2DBL(ff);
596
+ switch (TYPE(argv)) {
597
+ case T_FIXNUM:
598
+ case T_BIGNUM:
599
+ case T_FLOAT:
600
+ return rb_float_new((*func)(f, NUM2UINT(argv)));
601
+ break;
602
+ case T_ARRAY:
603
+ n = RARRAY_LEN(argv);
604
+ ary = rb_ary_new2(n);
605
+ for (i = 0; i < n; i++) {
606
+ val = (*func)(f, NUM2UINT(rb_ary_entry(argv, i)));
607
+ rb_ary_store(ary, i, rb_float_new(val));
608
+ }
609
+ return ary;
610
+ break;
611
+ default:
612
+ CHECK_VECTOR(argv);
613
+ Data_Get_Struct(argv, gsl_vector, v);
614
+ n = v->size;
615
+ vnew = gsl_vector_alloc(n);
616
+ for (i = 0; i < n; i++) {
617
+ val = (*func)(f, (unsigned int) gsl_vector_get(v, i));
618
+ gsl_vector_set(vnew, i, val);
619
+ }
620
+ return Data_Wrap_Struct(cgsl_vector, 0, gsl_vector_free, vnew);
621
+ break;
622
+ }
623
+ }
624
+
625
+ /* find s-th 0 point of J0 */
626
+ static VALUE rb_gsl_sf_bessel_zero_J0(VALUE obj, VALUE s)
627
+ {
628
+ return rb_gsl_sf_eval1_uint(gsl_sf_bessel_zero_J0, s);
629
+ }
630
+
631
+ static VALUE rb_gsl_sf_bessel_zero_J0_e(VALUE obj, VALUE s)
632
+ {
633
+ return rb_gsl_sf_eval_e_uint(gsl_sf_bessel_zero_J0_e, s);
634
+ }
635
+
636
+ static VALUE rb_gsl_sf_bessel_zero_J1(VALUE obj, VALUE s)
637
+ {
638
+ return rb_gsl_sf_eval1_uint(gsl_sf_bessel_zero_J1, s);
639
+ }
640
+
641
+ static VALUE rb_gsl_sf_bessel_zero_J1_e(VALUE obj, VALUE s)
642
+ {
643
+ return rb_gsl_sf_eval_e_uint(gsl_sf_bessel_zero_J1_e, s);
644
+ }
645
+
646
+ static VALUE rb_gsl_sf_bessel_zero_Jnu(VALUE obj, VALUE n, VALUE s)
647
+ {
648
+ return rb_gsl_sf_eval_double_uint(gsl_sf_bessel_zero_Jnu, n, s);
649
+ }
650
+
651
+ static VALUE rb_gsl_sf_bessel_zero_Jnu_e(VALUE obj, VALUE n, VALUE s)
652
+ {
653
+ return rb_gsl_sf_eval_e_double_uint(gsl_sf_bessel_zero_Jnu_e, n, s);
654
+ }
655
+
656
+ void Init_gsl_sf_bessel(VALUE module)
657
+ {
658
+ VALUE mgsl_sf_bessel;
659
+
660
+ rb_define_module_function(module, "bessel_J0", rb_gsl_sf_bessel_J0, 1);
661
+ rb_define_module_function(module, "bessel_J0_e", rb_gsl_sf_bessel_J0_e, 1);
662
+ rb_define_module_function(module, "bessel_J1", rb_gsl_sf_bessel_J1, 1);
663
+ rb_define_module_function(module, "bessel_J1_e", rb_gsl_sf_bessel_J1_e, 1);
664
+ rb_define_module_function(module, "bessel_Jn", rb_gsl_sf_bessel_Jn, 2);
665
+ rb_define_module_function(module, "bessel_Jn_e", rb_gsl_sf_bessel_Jn_e, 2);
666
+ rb_define_module_function(module, "bessel_Jn_array", rb_gsl_sf_bessel_Jn_array, 3);
667
+ rb_define_module_function(module, "bessel_Y0", rb_gsl_sf_bessel_Y0, 1);
668
+ rb_define_module_function(module, "bessel_Y0_e", rb_gsl_sf_bessel_Y0_e, 1);
669
+ rb_define_module_function(module, "bessel_Y1", rb_gsl_sf_bessel_Y1, 1);
670
+ rb_define_module_function(module, "bessel_Y1_e", rb_gsl_sf_bessel_Y1_e, 1);
671
+ rb_define_module_function(module, "bessel_Yn", rb_gsl_sf_bessel_Yn, 2);
672
+ rb_define_module_function(module, "bessel_Yn_e", rb_gsl_sf_bessel_Yn_e, 2);
673
+ rb_define_module_function(module, "bessel_Yn_array", rb_gsl_sf_bessel_Yn_array, 3);
674
+ rb_define_module_function(module, "bessel_I0", rb_gsl_sf_bessel_I0, 1);
675
+ rb_define_module_function(module, "bessel_I0_e", rb_gsl_sf_bessel_I0_e, 1);
676
+ rb_define_module_function(module, "bessel_I1", rb_gsl_sf_bessel_I1, 1);
677
+ rb_define_module_function(module, "bessel_I1_e", rb_gsl_sf_bessel_I1_e, 1);
678
+ rb_define_module_function(module, "bessel_In", rb_gsl_sf_bessel_In, 2);
679
+ rb_define_module_function(module, "bessel_In_e", rb_gsl_sf_bessel_In_e, 2);
680
+ rb_define_module_function(module, "bessel_In_array", rb_gsl_sf_bessel_In_array, 3);
681
+ rb_define_module_function(module, "bessel_I0_scaled", rb_gsl_sf_bessel_I0_scaled, 1);
682
+ rb_define_module_function(module, "bessel_I0_scaled_e", rb_gsl_sf_bessel_I0_scaled_e, 1);
683
+ rb_define_module_function(module, "bessel_I1_scaled", rb_gsl_sf_bessel_I1_scaled, 1);
684
+ rb_define_module_function(module, "bessel_I1_scaled_e", rb_gsl_sf_bessel_I1_scaled_e, 1);
685
+ rb_define_module_function(module, "bessel_In_scaled", rb_gsl_sf_bessel_In_scaled, 2);
686
+ rb_define_module_function(module, "bessel_In_scaled_e", rb_gsl_sf_bessel_In_scaled_e, 2);
687
+ rb_define_module_function(module, "bessel_In_scaled_array", rb_gsl_sf_bessel_In_scaled_array, 3);
688
+ rb_define_module_function(module, "bessel_K0", rb_gsl_sf_bessel_K0, 1);
689
+ rb_define_module_function(module, "bessel_K0_e", rb_gsl_sf_bessel_K0_e, 1);
690
+ rb_define_module_function(module, "bessel_K1", rb_gsl_sf_bessel_K1, 1);
691
+ rb_define_module_function(module, "bessel_K1_e", rb_gsl_sf_bessel_K1_e, 1);
692
+ rb_define_module_function(module, "bessel_Kn", rb_gsl_sf_bessel_Kn, 2);
693
+ rb_define_module_function(module, "bessel_Kn_e", rb_gsl_sf_bessel_Kn_e, 2);
694
+ rb_define_module_function(module, "bessel_Kn_array", rb_gsl_sf_bessel_Kn_array, 3);
695
+ rb_define_module_function(module, "bessel_K0_scaled", rb_gsl_sf_bessel_K0_scaled, 1);
696
+ rb_define_module_function(module, "bessel_K0_scaled_e", rb_gsl_sf_bessel_K0_scaled_e, 1);
697
+ rb_define_module_function(module, "bessel_K1_scaled", rb_gsl_sf_bessel_K1_scaled, 1);
698
+ rb_define_module_function(module, "bessel_K1_scaled_e", rb_gsl_sf_bessel_K1_scaled_e, 1);
699
+ rb_define_module_function(module, "bessel_Kn_scaled", rb_gsl_sf_bessel_Kn_scaled, 2);
700
+ rb_define_module_function(module, "bessel_Kn_scaled_e", rb_gsl_sf_bessel_Kn_scaled_e, 2);
701
+ rb_define_module_function(module, "bessel_Kn_scaled_array", rb_gsl_sf_bessel_Kn_scaled_array, 3);
702
+ rb_define_module_function(module, "bessel_j0", rb_gsl_sf_bessel_j0, 1);
703
+ rb_define_module_function(module, "bessel_j0_e", rb_gsl_sf_bessel_j0_e, 1);
704
+ rb_define_module_function(module, "bessel_j1", rb_gsl_sf_bessel_j1, 1);
705
+ rb_define_module_function(module, "bessel_j1_e", rb_gsl_sf_bessel_j1_e, 1);
706
+ rb_define_module_function(module, "bessel_j2", rb_gsl_sf_bessel_j2, 1);
707
+ rb_define_module_function(module, "bessel_j2_e", rb_gsl_sf_bessel_j2_e, 1);
708
+ rb_define_module_function(module, "bessel_jl", rb_gsl_sf_bessel_jl, 2);
709
+ rb_define_module_function(module, "bessel_jl_e", rb_gsl_sf_bessel_jl_e, 2);
710
+ rb_define_module_function(module, "bessel_jl_array", rb_gsl_sf_bessel_jl_array, 2);
711
+ rb_define_module_function(module, "bessel_jl_steed_array", rb_gsl_sf_bessel_jl_steed_array, 2);
712
+ rb_define_module_function(module, "bessel_y0", rb_gsl_sf_bessel_y0, 1);
713
+ rb_define_module_function(module, "bessel_y0_e", rb_gsl_sf_bessel_y0_e, 1);
714
+ rb_define_module_function(module, "bessel_y1", rb_gsl_sf_bessel_y1, 1);
715
+ rb_define_module_function(module, "bessel_y1_e", rb_gsl_sf_bessel_y1_e, 1);
716
+ rb_define_module_function(module, "bessel_y2", rb_gsl_sf_bessel_y2, 1);
717
+ rb_define_module_function(module, "bessel_y2_e", rb_gsl_sf_bessel_y2_e, 1);
718
+ rb_define_module_function(module, "bessel_yl", rb_gsl_sf_bessel_yl, 2);
719
+ rb_define_module_function(module, "bessel_yl_e", rb_gsl_sf_bessel_yl_e, 2);
720
+ rb_define_module_function(module, "bessel_yl_array", rb_gsl_sf_bessel_yl_array, 2);
721
+ rb_define_module_function(module, "bessel_i0_scaled", rb_gsl_sf_bessel_i0_scaled, 1);
722
+ rb_define_module_function(module, "bessel_i0_scaled_e", rb_gsl_sf_bessel_i0_scaled_e, 1);
723
+ rb_define_module_function(module, "bessel_i1_scaled", rb_gsl_sf_bessel_i1_scaled, 1);
724
+ rb_define_module_function(module, "bessel_i1_scaled_e", rb_gsl_sf_bessel_i1_scaled_e, 1);
725
+ rb_define_module_function(module, "bessel_i2_scaled", rb_gsl_sf_bessel_i2_scaled, 1);
726
+ rb_define_module_function(module, "bessel_i2_scaled_e", rb_gsl_sf_bessel_i2_scaled_e, 1);
727
+ rb_define_module_function(module, "bessel_il_scaled", rb_gsl_sf_bessel_il_scaled, 2);
728
+ rb_define_module_function(module, "bessel_il_scaled_e", rb_gsl_sf_bessel_il_scaled_e, 2);
729
+ rb_define_module_function(module, "bessel_il_scaled_array", rb_gsl_sf_bessel_il_scaled_array, 2);
730
+ rb_define_module_function(module, "bessel_k0_scaled", rb_gsl_sf_bessel_k0_scaled, 1);
731
+ rb_define_module_function(module, "bessel_k0_scaled_e", rb_gsl_sf_bessel_k0_scaled_e, 1);
732
+ rb_define_module_function(module, "bessel_k1_scaled", rb_gsl_sf_bessel_k1_scaled, 1);
733
+ rb_define_module_function(module, "bessel_k1_scaled_e", rb_gsl_sf_bessel_k1_scaled_e, 1);
734
+ rb_define_module_function(module, "bessel_k2_scaled", rb_gsl_sf_bessel_k2_scaled, 1);
735
+ rb_define_module_function(module, "bessel_k2_scaled_e", rb_gsl_sf_bessel_k2_scaled_e, 1);
736
+ rb_define_module_function(module, "bessel_kl_scaled", rb_gsl_sf_bessel_kl_scaled, 2);
737
+ rb_define_module_function(module, "bessel_kl_scaled_e", rb_gsl_sf_bessel_kl_scaled_e, 2);
738
+ rb_define_module_function(module, "bessel_kl_scaled_array", rb_gsl_sf_bessel_kl_scaled_array, 2);
739
+ rb_define_module_function(module, "bessel_Jnu", rb_gsl_sf_bessel_Jnu, 2);
740
+ rb_define_module_function(module, "bessel_Jnu_e", rb_gsl_sf_bessel_Jnu_e, 2);
741
+ rb_define_module_function(module, "bessel_sequence_Jnu_e", rb_gsl_sf_bessel_sequence_Jnu_e, -1);
742
+
743
+ rb_define_module_function(module, "bessel_Ynu", rb_gsl_sf_bessel_Ynu, 2);
744
+ rb_define_module_function(module, "bessel_Ynu_e", rb_gsl_sf_bessel_Ynu_e, 2);
745
+ rb_define_module_function(module, "bessel_Inu", rb_gsl_sf_bessel_Inu, 2);
746
+ rb_define_module_function(module, "bessel_Inu_e", rb_gsl_sf_bessel_Inu_e, 2);
747
+ rb_define_module_function(module, "bessel_Inu_scaled", rb_gsl_sf_bessel_Inu_scaled, 2);
748
+ rb_define_module_function(module, "bessel_Inu_scaled_e", rb_gsl_sf_bessel_Inu_scaled_e, 2);
749
+ rb_define_module_function(module, "bessel_Knu", rb_gsl_sf_bessel_Knu, 2);
750
+ rb_define_module_function(module, "bessel_Knu_e", rb_gsl_sf_bessel_Knu_e, 2);
751
+ rb_define_module_function(module, "bessel_lnKnu", rb_gsl_sf_bessel_lnKnu, 2);
752
+ rb_define_module_function(module, "bessel_lnKnu_e", rb_gsl_sf_bessel_lnKnu_e, 2);
753
+ rb_define_module_function(module, "bessel_Knu_scaled", rb_gsl_sf_bessel_Knu_scaled, 2);
754
+ rb_define_module_function(module, "bessel_Knu_scaled_e", rb_gsl_sf_bessel_Knu_scaled_e, 2);
755
+ rb_define_module_function(module, "bessel_zero_J0", rb_gsl_sf_bessel_zero_J0, 1);
756
+ rb_define_module_function(module, "bessel_zero_J0_e", rb_gsl_sf_bessel_zero_J0_e, 1);
757
+ rb_define_module_function(module, "bessel_zero_J1", rb_gsl_sf_bessel_zero_J1, 1);
758
+ rb_define_module_function(module, "bessel_zero_J1_e", rb_gsl_sf_bessel_zero_J1_e, 1);
759
+ rb_define_module_function(module, "bessel_zero_Jnu", rb_gsl_sf_bessel_zero_Jnu, 2);
760
+ rb_define_module_function(module, "bessel_zero_Jnu_e", rb_gsl_sf_bessel_zero_Jnu_e, 2);
761
+
762
+ /*******************************/
763
+ mgsl_sf_bessel = rb_define_module_under(module, "Bessel");
764
+
765
+ rb_define_module_function(mgsl_sf_bessel, "J0", rb_gsl_sf_bessel_J0, 1);
766
+ rb_define_module_function(mgsl_sf_bessel, "J0_e", rb_gsl_sf_bessel_J0_e, 1);
767
+ rb_define_module_function(mgsl_sf_bessel, "J1", rb_gsl_sf_bessel_J1, 1);
768
+ rb_define_module_function(mgsl_sf_bessel, "J1_e", rb_gsl_sf_bessel_J1_e, 1);
769
+ rb_define_module_function(mgsl_sf_bessel, "Jn", rb_gsl_sf_bessel_Jn, 2);
770
+ rb_define_module_function(mgsl_sf_bessel, "Jn_e", rb_gsl_sf_bessel_Jn_e, 2);
771
+ rb_define_module_function(mgsl_sf_bessel, "Jn_array", rb_gsl_sf_bessel_Jn_array, 3);
772
+ rb_define_module_function(mgsl_sf_bessel, "Y0", rb_gsl_sf_bessel_Y0, 1);
773
+ rb_define_module_function(mgsl_sf_bessel, "Y0_e", rb_gsl_sf_bessel_Y0_e, 1);
774
+ rb_define_module_function(mgsl_sf_bessel, "Y1", rb_gsl_sf_bessel_Y1, 1);
775
+ rb_define_module_function(mgsl_sf_bessel, "Y1_e", rb_gsl_sf_bessel_Y1_e, 1);
776
+ rb_define_module_function(mgsl_sf_bessel, "Yn", rb_gsl_sf_bessel_Yn, 2);
777
+ rb_define_module_function(mgsl_sf_bessel, "Yn_e", rb_gsl_sf_bessel_Yn_e, 2);
778
+ rb_define_module_function(mgsl_sf_bessel, "Yn_array", rb_gsl_sf_bessel_Yn_array, 3);
779
+ rb_define_module_function(mgsl_sf_bessel, "I0", rb_gsl_sf_bessel_I0, 1);
780
+ rb_define_module_function(mgsl_sf_bessel, "I0_e", rb_gsl_sf_bessel_I0_e, 1);
781
+ rb_define_module_function(mgsl_sf_bessel, "I1", rb_gsl_sf_bessel_I1, 1);
782
+ rb_define_module_function(mgsl_sf_bessel, "I1_e", rb_gsl_sf_bessel_I1_e, 1);
783
+ rb_define_module_function(mgsl_sf_bessel, "In", rb_gsl_sf_bessel_In, 2);
784
+ rb_define_module_function(mgsl_sf_bessel, "In_e", rb_gsl_sf_bessel_In_e, 2);
785
+ rb_define_module_function(mgsl_sf_bessel, "In_array", rb_gsl_sf_bessel_In_array, 3);
786
+ rb_define_module_function(mgsl_sf_bessel, "I0_scaled", rb_gsl_sf_bessel_I0_scaled, 1);
787
+ rb_define_module_function(mgsl_sf_bessel, "I0_scaled_e", rb_gsl_sf_bessel_I0_scaled_e, 1);
788
+ rb_define_module_function(mgsl_sf_bessel, "I1_scaled", rb_gsl_sf_bessel_I1_scaled, 1);
789
+ rb_define_module_function(mgsl_sf_bessel, "I1_scaled_e", rb_gsl_sf_bessel_I1_scaled_e, 1);
790
+ rb_define_module_function(mgsl_sf_bessel, "In_scaled", rb_gsl_sf_bessel_In_scaled, 2);
791
+ rb_define_module_function(mgsl_sf_bessel, "In_scaled_e", rb_gsl_sf_bessel_In_scaled_e, 2);
792
+ rb_define_module_function(mgsl_sf_bessel, "In_scaled_array", rb_gsl_sf_bessel_In_scaled_array, 3);
793
+ rb_define_module_function(mgsl_sf_bessel, "K0", rb_gsl_sf_bessel_K0, 1);
794
+ rb_define_module_function(mgsl_sf_bessel, "K0_e", rb_gsl_sf_bessel_K0_e, 1);
795
+ rb_define_module_function(mgsl_sf_bessel, "K1", rb_gsl_sf_bessel_K1, 1);
796
+ rb_define_module_function(mgsl_sf_bessel, "K1_e", rb_gsl_sf_bessel_K1_e, 1);
797
+ rb_define_module_function(mgsl_sf_bessel, "Kn", rb_gsl_sf_bessel_Kn, 2);
798
+ rb_define_module_function(mgsl_sf_bessel, "Kn_e", rb_gsl_sf_bessel_Kn_e, 2);
799
+ rb_define_module_function(mgsl_sf_bessel, "Kn_array", rb_gsl_sf_bessel_Kn_array, 3);
800
+ rb_define_module_function(mgsl_sf_bessel, "K0_scaled", rb_gsl_sf_bessel_K0_scaled, 1);
801
+ rb_define_module_function(mgsl_sf_bessel, "K0_scaled_e", rb_gsl_sf_bessel_K0_scaled_e, 1);
802
+ rb_define_module_function(mgsl_sf_bessel, "K1_scaled", rb_gsl_sf_bessel_K1_scaled, 1);
803
+ rb_define_module_function(mgsl_sf_bessel, "K1_scaled_e", rb_gsl_sf_bessel_K1_scaled_e, 1);
804
+ rb_define_module_function(mgsl_sf_bessel, "Kn_scaled", rb_gsl_sf_bessel_Kn_scaled, 2);
805
+ rb_define_module_function(mgsl_sf_bessel, "Kn_scaled_e", rb_gsl_sf_bessel_Kn_scaled_e, 2);
806
+ rb_define_module_function(mgsl_sf_bessel, "Kn_scaled_array", rb_gsl_sf_bessel_Kn_scaled_array, 3);
807
+ rb_define_module_function(mgsl_sf_bessel, "j0", rb_gsl_sf_bessel_j0, 1);
808
+ rb_define_module_function(mgsl_sf_bessel, "j0_e", rb_gsl_sf_bessel_j0_e, 1);
809
+ rb_define_module_function(mgsl_sf_bessel, "j1", rb_gsl_sf_bessel_j1, 1);
810
+ rb_define_module_function(mgsl_sf_bessel, "j1_e", rb_gsl_sf_bessel_j1_e, 1);
811
+ rb_define_module_function(mgsl_sf_bessel, "j2", rb_gsl_sf_bessel_j2, 1);
812
+ rb_define_module_function(mgsl_sf_bessel, "j2_e", rb_gsl_sf_bessel_j2_e, 1);
813
+ rb_define_module_function(mgsl_sf_bessel, "jl", rb_gsl_sf_bessel_jl, 2);
814
+ rb_define_module_function(mgsl_sf_bessel, "jl_e", rb_gsl_sf_bessel_jl_e, 2);
815
+ rb_define_module_function(mgsl_sf_bessel, "jl_array", rb_gsl_sf_bessel_jl_array, 2);
816
+ rb_define_module_function(mgsl_sf_bessel, "jl_steed_array", rb_gsl_sf_bessel_jl_steed_array, 2);
817
+ rb_define_module_function(mgsl_sf_bessel, "y0", rb_gsl_sf_bessel_y0, 1);
818
+ rb_define_module_function(mgsl_sf_bessel, "y0_e", rb_gsl_sf_bessel_y0_e, 1);
819
+ rb_define_module_function(mgsl_sf_bessel, "y1", rb_gsl_sf_bessel_y1, 1);
820
+ rb_define_module_function(mgsl_sf_bessel, "y1_e", rb_gsl_sf_bessel_y1_e, 1);
821
+ rb_define_module_function(mgsl_sf_bessel, "y2", rb_gsl_sf_bessel_y2, 1);
822
+ rb_define_module_function(mgsl_sf_bessel, "y2_e", rb_gsl_sf_bessel_y2_e, 1);
823
+ rb_define_module_function(mgsl_sf_bessel, "yl", rb_gsl_sf_bessel_yl, 2);
824
+ rb_define_module_function(mgsl_sf_bessel, "yl_e", rb_gsl_sf_bessel_yl_e, 2);
825
+ rb_define_module_function(mgsl_sf_bessel, "yl_array", rb_gsl_sf_bessel_yl_array, 2);
826
+ rb_define_module_function(mgsl_sf_bessel, "i0_scaled", rb_gsl_sf_bessel_i0_scaled, 1);
827
+ rb_define_module_function(mgsl_sf_bessel, "i0_scaled_e", rb_gsl_sf_bessel_i0_scaled_e, 1);
828
+ rb_define_module_function(mgsl_sf_bessel, "i1_scaled", rb_gsl_sf_bessel_i1_scaled, 1);
829
+ rb_define_module_function(mgsl_sf_bessel, "i1_scaled_e", rb_gsl_sf_bessel_i1_scaled_e, 1);
830
+ rb_define_module_function(mgsl_sf_bessel, "i2_scaled", rb_gsl_sf_bessel_i2_scaled, 1);
831
+ rb_define_module_function(mgsl_sf_bessel, "i2_scaled_e", rb_gsl_sf_bessel_i2_scaled_e, 1);
832
+ rb_define_module_function(mgsl_sf_bessel, "il_scaled", rb_gsl_sf_bessel_il_scaled, 2);
833
+ rb_define_module_function(mgsl_sf_bessel, "il_scaled_e", rb_gsl_sf_bessel_il_scaled_e, 2);
834
+ rb_define_module_function(mgsl_sf_bessel, "il_scaled_array", rb_gsl_sf_bessel_il_scaled_array, 2);
835
+ rb_define_module_function(mgsl_sf_bessel, "k0_scaled", rb_gsl_sf_bessel_k0_scaled, 1);
836
+ rb_define_module_function(mgsl_sf_bessel, "k0_scaled_e", rb_gsl_sf_bessel_k0_scaled_e, 1);
837
+ rb_define_module_function(mgsl_sf_bessel, "k1_scaled", rb_gsl_sf_bessel_k1_scaled, 1);
838
+ rb_define_module_function(mgsl_sf_bessel, "k1_scaled_e", rb_gsl_sf_bessel_k1_scaled_e, 1);
839
+ rb_define_module_function(mgsl_sf_bessel, "k2_scaled", rb_gsl_sf_bessel_k2_scaled, 1);
840
+ rb_define_module_function(mgsl_sf_bessel, "k2_scaled_e", rb_gsl_sf_bessel_k2_scaled_e, 1);
841
+ rb_define_module_function(mgsl_sf_bessel, "kl_scaled", rb_gsl_sf_bessel_kl_scaled, 2);
842
+ rb_define_module_function(mgsl_sf_bessel, "kl_scaled_e", rb_gsl_sf_bessel_kl_scaled_e, 2);
843
+ rb_define_module_function(mgsl_sf_bessel, "kl_scaled_array", rb_gsl_sf_bessel_kl_scaled_array, 2);
844
+ rb_define_module_function(mgsl_sf_bessel, "Jnu", rb_gsl_sf_bessel_Jnu, 2);
845
+ rb_define_module_function(mgsl_sf_bessel, "Jnu_e", rb_gsl_sf_bessel_Jnu_e, 2);
846
+ rb_define_module_function(mgsl_sf_bessel, "sequence_Jnu_e", rb_gsl_sf_bessel_sequence_Jnu_e, 3);
847
+
848
+ rb_define_module_function(mgsl_sf_bessel, "Ynu", rb_gsl_sf_bessel_Ynu, 2);
849
+ rb_define_module_function(mgsl_sf_bessel, "Ynu_e", rb_gsl_sf_bessel_Ynu_e, 2);
850
+ rb_define_module_function(mgsl_sf_bessel, "Inu", rb_gsl_sf_bessel_Inu, 2);
851
+ rb_define_module_function(mgsl_sf_bessel, "Inu_e", rb_gsl_sf_bessel_Inu_e, 2);
852
+ rb_define_module_function(mgsl_sf_bessel, "Inu_scaled", rb_gsl_sf_bessel_Inu_scaled, 2);
853
+ rb_define_module_function(mgsl_sf_bessel, "Inu_scaled_e", rb_gsl_sf_bessel_Inu_scaled_e, 2);
854
+ rb_define_module_function(mgsl_sf_bessel, "Knu", rb_gsl_sf_bessel_Knu, 2);
855
+ rb_define_module_function(mgsl_sf_bessel, "Knu_e", rb_gsl_sf_bessel_Knu_e, 2);
856
+ rb_define_module_function(mgsl_sf_bessel, "lnKnu", rb_gsl_sf_bessel_lnKnu, 2);
857
+ rb_define_module_function(mgsl_sf_bessel, "lnKnu_e", rb_gsl_sf_bessel_lnKnu_e, 2);
858
+ rb_define_module_function(mgsl_sf_bessel, "Knu_scaled", rb_gsl_sf_bessel_Knu_scaled, 2);
859
+ rb_define_module_function(mgsl_sf_bessel, "Knu_scaled_e", rb_gsl_sf_bessel_Knu_scaled_e, 2);
860
+ rb_define_module_function(mgsl_sf_bessel, "zero_J0", rb_gsl_sf_bessel_zero_J0, 1);
861
+ rb_define_module_function(mgsl_sf_bessel, "zero_J0_e", rb_gsl_sf_bessel_zero_J0_e, 1);
862
+ rb_define_module_function(mgsl_sf_bessel, "zero_J1", rb_gsl_sf_bessel_zero_J1, 1);
863
+ rb_define_module_function(mgsl_sf_bessel, "zero_J1_e", rb_gsl_sf_bessel_zero_J1_e, 1);
864
+ rb_define_module_function(mgsl_sf_bessel, "zero_Jnu", rb_gsl_sf_bessel_zero_Jnu, 2);
865
+ rb_define_module_function(mgsl_sf_bessel, "zero_Jnu_e", rb_gsl_sf_bessel_zero_Jnu_e, 2);
866
+
867
+ }