gsl 1.15.3 → 1.16.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.travis.yml +24 -0
  4. data/AUTHORS +10 -2
  5. data/COPYING +341 -339
  6. data/ChangeLog +612 -554
  7. data/Gemfile +4 -0
  8. data/README.md +77 -0
  9. data/Rakefile +14 -93
  10. data/THANKS +1 -1
  11. data/examples/blas/blas.rb +1 -1
  12. data/examples/bspline.rb +3 -3
  13. data/examples/complex/functions.rb +4 -4
  14. data/examples/complex/mul.rb +1 -1
  15. data/examples/const/physconst.rb +4 -4
  16. data/examples/const/travel.rb +4 -4
  17. data/examples/eigen/nonsymmv.rb +1 -1
  18. data/examples/eigen/qhoscillator.rb +3 -3
  19. data/examples/fft/radix2.rb +1 -1
  20. data/examples/fft/real-halfcomplex.rb +3 -3
  21. data/examples/fft/real-halfcomplex2.rb +3 -3
  22. data/examples/fit/expfit.rb +1 -1
  23. data/examples/fit/multifit.rb +1 -1
  24. data/examples/fit/ndlinear.rb +44 -44
  25. data/examples/fit/nonlinearfit.rb +1 -1
  26. data/examples/fit/wlinear.rb +3 -3
  27. data/examples/function/function.rb +1 -1
  28. data/examples/function/min.rb +1 -1
  29. data/examples/function/synchrotron.rb +2 -2
  30. data/examples/gallery/koch.rb +1 -1
  31. data/examples/histogram/cauchy.rb +2 -2
  32. data/examples/histogram/exponential.rb +1 -1
  33. data/examples/histogram/histo3d.rb +1 -1
  34. data/examples/histogram/histogram-pdf.rb +2 -2
  35. data/examples/histogram/xexp.rb +1 -1
  36. data/examples/integration/ahmed.rb +2 -2
  37. data/examples/integration/cosmology.rb +7 -7
  38. data/examples/integration/friedmann.rb +4 -4
  39. data/examples/integration/qng.rb +1 -1
  40. data/examples/interp/demo.rb +2 -2
  41. data/examples/linalg/LQ_solve.rb +1 -1
  42. data/examples/linalg/LU.rb +1 -1
  43. data/examples/linalg/LU2.rb +1 -1
  44. data/examples/linalg/LU_narray.rb +1 -1
  45. data/examples/linalg/PTLQ.rb +1 -1
  46. data/examples/linalg/QRPT.rb +1 -1
  47. data/examples/linalg/chol.rb +1 -1
  48. data/examples/linalg/chol_narray.rb +1 -1
  49. data/examples/linalg/complex.rb +1 -1
  50. data/examples/math/elementary.rb +1 -1
  51. data/examples/math/functions.rb +1 -1
  52. data/examples/math/inf_nan.rb +1 -1
  53. data/examples/math/minmax.rb +1 -1
  54. data/examples/math/power.rb +1 -1
  55. data/examples/math/test.rb +1 -1
  56. data/examples/min.rb +1 -1
  57. data/examples/multimin/bundle.rb +1 -1
  58. data/examples/multimin/cqp.rb +17 -17
  59. data/examples/multiroot/fsolver3.rb +1 -1
  60. data/examples/odeiv/binarysystem.rb +12 -12
  61. data/examples/odeiv/demo.rb +3 -3
  62. data/examples/odeiv/frei1.rb +7 -7
  63. data/examples/odeiv/frei2.rb +4 -4
  64. data/examples/odeiv/oscillator.rb +1 -1
  65. data/examples/odeiv/sedov.rb +3 -3
  66. data/examples/odeiv/whitedwarf.rb +11 -11
  67. data/examples/permutation/ex1.rb +2 -2
  68. data/examples/permutation/permutation.rb +1 -1
  69. data/examples/poly/demo.rb +1 -1
  70. data/examples/random/diffusion.rb +1 -1
  71. data/examples/random/generator.rb +2 -2
  72. data/examples/random/randomwalk.rb +3 -3
  73. data/examples/random/rng.rb +1 -1
  74. data/examples/roots/bisection.rb +1 -1
  75. data/examples/roots/brent.rb +1 -1
  76. data/examples/roots/demo.rb +1 -1
  77. data/examples/roots/newton.rb +2 -2
  78. data/examples/roots/recombination.gp +0 -1
  79. data/examples/sf/hyperg.rb +1 -1
  80. data/examples/sf/sphbessel.rb +1 -1
  81. data/examples/sort/sort.rb +1 -1
  82. data/examples/tamu_anova.rb +4 -4
  83. data/examples/vector/add.rb +1 -1
  84. data/examples/vector/decimate.rb +1 -1
  85. data/examples/vector/gnuplot.rb +8 -8
  86. data/examples/vector/vector.rb +2 -2
  87. data/examples/wavelet/wavelet1.rb +1 -1
  88. data/ext/{alf.c → gsl_native/alf.c} +10 -10
  89. data/ext/{array.c → gsl_native/array.c} +70 -159
  90. data/ext/{array_complex.c → gsl_native/array_complex.c} +63 -66
  91. data/ext/{blas.c → gsl_native/blas.c} +2 -3
  92. data/ext/{blas1.c → gsl_native/blas1.c} +35 -36
  93. data/ext/{blas2.c → gsl_native/blas2.c} +57 -62
  94. data/ext/{blas3.c → gsl_native/blas3.c} +57 -58
  95. data/ext/{block.c → gsl_native/block.c} +14 -18
  96. data/ext/{block_source.c → gsl_native/block_source.h} +110 -112
  97. data/ext/gsl_native/bspline.c +122 -0
  98. data/ext/{bundle.c → gsl_native/bundle.c} +0 -0
  99. data/ext/{cdf.c → gsl_native/cdf.c} +79 -93
  100. data/ext/{cheb.c → gsl_native/cheb.c} +78 -89
  101. data/ext/{combination.c → gsl_native/combination.c} +11 -19
  102. data/ext/{common.c → gsl_native/common.c} +9 -41
  103. data/ext/{complex.c → gsl_native/complex.c} +116 -118
  104. data/ext/gsl_native/const.c +331 -0
  105. data/ext/{const_additional.c → gsl_native/const_additional.c} +13 -34
  106. data/ext/gsl_native/cqp.c +283 -0
  107. data/ext/{deriv.c → gsl_native/deriv.c} +25 -33
  108. data/ext/{dht.c → gsl_native/dht.c} +23 -31
  109. data/ext/{diff.c → gsl_native/diff.c} +26 -28
  110. data/ext/{dirac.c → gsl_native/dirac.c} +45 -46
  111. data/ext/{eigen.c → gsl_native/eigen.c} +1044 -1095
  112. data/ext/{error.c → gsl_native/error.c} +18 -18
  113. data/ext/gsl_native/extconf.rb +118 -0
  114. data/ext/{fft.c → gsl_native/fft.c} +197 -204
  115. data/ext/{fit.c → gsl_native/fit.c} +17 -18
  116. data/ext/gsl_native/fresnel.c +312 -0
  117. data/ext/{function.c → gsl_native/function.c} +37 -43
  118. data/ext/{geometry.c → gsl_native/geometry.c} +16 -16
  119. data/ext/{graph.c → gsl_native/graph.c} +39 -89
  120. data/ext/{gsl.c → gsl_native/gsl.c} +12 -33
  121. data/ext/{gsl_narray.c → gsl_native/gsl_narray.c} +20 -30
  122. data/ext/{histogram.c → gsl_native/histogram.c} +133 -160
  123. data/ext/{histogram2d.c → gsl_native/histogram2d.c} +78 -104
  124. data/ext/{histogram3d.c → gsl_native/histogram3d.c} +76 -76
  125. data/ext/{histogram3d_source.c → gsl_native/histogram3d_source.c} +196 -197
  126. data/ext/{histogram_find.c → gsl_native/histogram_find.c} +32 -34
  127. data/ext/{histogram_oper.c → gsl_native/histogram_oper.c} +43 -52
  128. data/ext/{ieee.c → gsl_native/ieee.c} +9 -21
  129. data/{include → ext/gsl_native/include}/rb_gsl.h +4 -26
  130. data/{include → ext/gsl_native/include}/rb_gsl_array.h +15 -39
  131. data/{include → ext/gsl_native/include}/rb_gsl_cheb.h +0 -2
  132. data/{include → ext/gsl_native/include}/rb_gsl_common.h +61 -61
  133. data/{include → ext/gsl_native/include}/rb_gsl_complex.h +1 -1
  134. data/{include → ext/gsl_native/include}/rb_gsl_const.h +0 -6
  135. data/ext/gsl_native/include/rb_gsl_dirac.h +6 -0
  136. data/{include → ext/gsl_native/include}/rb_gsl_eigen.h +1 -1
  137. data/{include → ext/gsl_native/include}/rb_gsl_fft.h +0 -13
  138. data/{include → ext/gsl_native/include}/rb_gsl_fit.h +0 -2
  139. data/{include → ext/gsl_native/include}/rb_gsl_function.h +0 -4
  140. data/{include → ext/gsl_native/include}/rb_gsl_graph.h +2 -4
  141. data/{include → ext/gsl_native/include}/rb_gsl_histogram.h +8 -8
  142. data/{include → ext/gsl_native/include}/rb_gsl_histogram3d.h +50 -50
  143. data/{include → ext/gsl_native/include}/rb_gsl_integration.h +1 -1
  144. data/{include → ext/gsl_native/include}/rb_gsl_interp.h +0 -5
  145. data/{include → ext/gsl_native/include}/rb_gsl_linalg.h +2 -6
  146. data/{include → ext/gsl_native/include}/rb_gsl_math.h +0 -6
  147. data/{include → ext/gsl_native/include}/rb_gsl_odeiv.h +0 -3
  148. data/{include → ext/gsl_native/include}/rb_gsl_poly.h +3 -7
  149. data/{include → ext/gsl_native/include}/rb_gsl_rational.h +1 -8
  150. data/{include → ext/gsl_native/include}/rb_gsl_rng.h +0 -1
  151. data/{include → ext/gsl_native/include}/rb_gsl_root.h +1 -1
  152. data/{include → ext/gsl_native/include}/rb_gsl_sf.h +39 -48
  153. data/{include → ext/gsl_native/include}/rb_gsl_statistics.h +1 -1
  154. data/{include → ext/gsl_native/include}/rb_gsl_tensor.h +0 -2
  155. data/{include → ext/gsl_native/include}/rb_gsl_with_narray.h +3 -1
  156. data/{include → ext/gsl_native/include}/templates_off.h +0 -0
  157. data/{include → ext/gsl_native/include}/templates_on.h +1 -1
  158. data/ext/{integration.c → gsl_native/integration.c} +164 -189
  159. data/ext/{interp.c → gsl_native/interp.c} +25 -38
  160. data/ext/gsl_native/jacobi.c +733 -0
  161. data/ext/{linalg.c → gsl_native/linalg.c} +462 -589
  162. data/ext/{linalg_complex.c → gsl_native/linalg_complex.c} +93 -106
  163. data/ext/{math.c → gsl_native/math.c} +48 -67
  164. data/ext/{matrix.c → gsl_native/matrix.c} +13 -16
  165. data/ext/{matrix_complex.c → gsl_native/matrix_complex.c} +119 -123
  166. data/ext/{matrix_double.c → gsl_native/matrix_double.c} +79 -82
  167. data/ext/{matrix_int.c → gsl_native/matrix_int.c} +53 -54
  168. data/ext/{matrix_source.c → gsl_native/matrix_source.h} +292 -318
  169. data/ext/{min.c → gsl_native/min.c} +45 -76
  170. data/ext/{monte.c → gsl_native/monte.c} +50 -64
  171. data/ext/{multifit.c → gsl_native/multifit.c} +142 -151
  172. data/ext/{multimin.c → gsl_native/multimin.c} +64 -92
  173. data/ext/{multimin_fsdf.c → gsl_native/multimin_fsdf.c} +16 -16
  174. data/ext/{multiroots.c → gsl_native/multiroots.c} +73 -76
  175. data/ext/{multiset.c → gsl_native/multiset.c} +4 -8
  176. data/ext/{ndlinear.c → gsl_native/ndlinear.c} +320 -321
  177. data/ext/{nmf.c → gsl_native/nmf.c} +11 -11
  178. data/ext/{nmf_wrap.c → gsl_native/nmf_wrap.c} +1 -1
  179. data/ext/{ntuple.c → gsl_native/ntuple.c} +23 -23
  180. data/ext/{odeiv.c → gsl_native/odeiv.c} +101 -116
  181. data/ext/gsl_native/ool.c +879 -0
  182. data/ext/{permutation.c → gsl_native/permutation.c} +39 -37
  183. data/ext/{poly.c → gsl_native/poly.c} +10 -13
  184. data/ext/{poly2.c → gsl_native/poly2.c} +16 -16
  185. data/ext/{poly_source.c → gsl_native/poly_source.h} +249 -293
  186. data/ext/{qrng.c → gsl_native/qrng.c} +9 -20
  187. data/ext/{randist.c → gsl_native/randist.c} +222 -247
  188. data/ext/{rational.c → gsl_native/rational.c} +12 -12
  189. data/ext/{rng.c → gsl_native/rng.c} +30 -47
  190. data/ext/{root.c → gsl_native/root.c} +47 -48
  191. data/ext/{sf.c → gsl_native/sf.c} +196 -244
  192. data/ext/{sf_airy.c → gsl_native/sf_airy.c} +2 -2
  193. data/ext/{sf_bessel.c → gsl_native/sf_bessel.c} +7 -7
  194. data/ext/{sf_clausen.c → gsl_native/sf_clausen.c} +1 -1
  195. data/ext/{sf_coulomb.c → gsl_native/sf_coulomb.c} +40 -40
  196. data/ext/{sf_coupling.c → gsl_native/sf_coupling.c} +30 -30
  197. data/ext/{sf_dawson.c → gsl_native/sf_dawson.c} +1 -1
  198. data/ext/{sf_debye.c → gsl_native/sf_debye.c} +1 -10
  199. data/ext/{sf_dilog.c → gsl_native/sf_dilog.c} +1 -1
  200. data/ext/{sf_elementary.c → gsl_native/sf_elementary.c} +3 -3
  201. data/ext/{sf_ellint.c → gsl_native/sf_ellint.c} +43 -43
  202. data/ext/{sf_elljac.c → gsl_native/sf_elljac.c} +3 -3
  203. data/ext/{sf_erfc.c → gsl_native/sf_erfc.c} +1 -5
  204. data/ext/{sf_exp.c → gsl_native/sf_exp.c} +3 -3
  205. data/ext/{sf_expint.c → gsl_native/sf_expint.c} +2 -12
  206. data/ext/{sf_fermi_dirac.c → gsl_native/sf_fermi_dirac.c} +1 -1
  207. data/ext/{sf_gamma.c → gsl_native/sf_gamma.c} +2 -6
  208. data/ext/{sf_gegenbauer.c → gsl_native/sf_gegenbauer.c} +1 -1
  209. data/ext/{sf_hyperg.c → gsl_native/sf_hyperg.c} +1 -1
  210. data/ext/{sf_laguerre.c → gsl_native/sf_laguerre.c} +4 -4
  211. data/ext/{sf_lambert.c → gsl_native/sf_lambert.c} +1 -1
  212. data/ext/{sf_legendre.c → gsl_native/sf_legendre.c} +1 -1
  213. data/ext/{sf_log.c → gsl_native/sf_log.c} +4 -4
  214. data/ext/gsl_native/sf_mathieu.c +235 -0
  215. data/ext/{sf_power.c → gsl_native/sf_power.c} +1 -1
  216. data/ext/{sf_psi.c → gsl_native/sf_psi.c} +3 -12
  217. data/ext/{sf_synchrotron.c → gsl_native/sf_synchrotron.c} +1 -1
  218. data/ext/{sf_transport.c → gsl_native/sf_transport.c} +1 -1
  219. data/ext/{sf_trigonometric.c → gsl_native/sf_trigonometric.c} +4 -4
  220. data/ext/{sf_zeta.c → gsl_native/sf_zeta.c} +1 -5
  221. data/ext/{signal.c → gsl_native/signal.c} +63 -68
  222. data/ext/{siman.c → gsl_native/siman.c} +45 -49
  223. data/ext/{sort.c → gsl_native/sort.c} +6 -7
  224. data/ext/{spline.c → gsl_native/spline.c} +28 -46
  225. data/ext/{stats.c → gsl_native/stats.c} +105 -118
  226. data/ext/{sum.c → gsl_native/sum.c} +34 -34
  227. data/ext/{tamu_anova.c → gsl_native/tamu_anova.c} +1 -1
  228. data/ext/{tensor.c → gsl_native/tensor.c} +8 -11
  229. data/ext/{tensor_source.c → gsl_native/tensor_source.h} +147 -148
  230. data/ext/{vector.c → gsl_native/vector.c} +11 -14
  231. data/ext/{vector_complex.c → gsl_native/vector_complex.c} +179 -184
  232. data/ext/{vector_double.c → gsl_native/vector_double.c} +178 -183
  233. data/ext/{vector_int.c → gsl_native/vector_int.c} +27 -29
  234. data/ext/{vector_source.c → gsl_native/vector_source.h} +428 -443
  235. data/ext/{wavelet.c → gsl_native/wavelet.c} +224 -246
  236. data/gsl.gemspec +29 -0
  237. data/lib/gsl.rb +8 -3
  238. data/lib/gsl/gnuplot.rb +3 -3
  239. data/lib/gsl/oper.rb +35 -60
  240. data/lib/gsl/version.rb +3 -0
  241. data/lib/rbgsl.rb +1 -3
  242. data/rdoc/alf.rdoc +5 -5
  243. data/rdoc/blas.rdoc +9 -9
  244. data/rdoc/bspline.rdoc +17 -17
  245. data/rdoc/changes.rdoc +4 -9
  246. data/rdoc/cheb.rdoc +25 -25
  247. data/rdoc/cholesky_complex.rdoc +21 -21
  248. data/rdoc/combi.rdoc +37 -37
  249. data/rdoc/complex.rdoc +22 -22
  250. data/rdoc/const.rdoc +47 -47
  251. data/rdoc/dht.rdoc +49 -49
  252. data/rdoc/diff.rdoc +42 -42
  253. data/rdoc/ehandling.rdoc +6 -6
  254. data/rdoc/eigen.rdoc +153 -153
  255. data/rdoc/fft.rdoc +146 -146
  256. data/rdoc/fit.rdoc +109 -109
  257. data/rdoc/function.rdoc +11 -11
  258. data/rdoc/graph.rdoc +17 -17
  259. data/rdoc/hist.rdoc +103 -103
  260. data/rdoc/hist2d.rdoc +42 -42
  261. data/rdoc/hist3d.rdoc +9 -9
  262. data/rdoc/integration.rdoc +110 -110
  263. data/rdoc/interp.rdoc +71 -71
  264. data/rdoc/intro.rdoc +8 -8
  265. data/rdoc/linalg.rdoc +188 -188
  266. data/rdoc/linalg_complex.rdoc +1 -1
  267. data/rdoc/math.rdoc +58 -58
  268. data/rdoc/matrix.rdoc +275 -275
  269. data/rdoc/min.rdoc +57 -57
  270. data/rdoc/monte.rdoc +22 -22
  271. data/rdoc/multimin.rdoc +95 -95
  272. data/rdoc/multiroot.rdoc +80 -80
  273. data/rdoc/narray.rdoc +32 -32
  274. data/rdoc/ndlinear.rdoc +54 -54
  275. data/rdoc/nonlinearfit.rdoc +100 -100
  276. data/rdoc/ntuple.rdoc +31 -31
  277. data/rdoc/odeiv.rdoc +88 -88
  278. data/rdoc/perm.rdoc +90 -90
  279. data/rdoc/poly.rdoc +66 -66
  280. data/rdoc/qrng.rdoc +21 -21
  281. data/rdoc/randist.rdoc +82 -82
  282. data/rdoc/ref.rdoc +57 -57
  283. data/rdoc/rng.rdoc +85 -85
  284. data/rdoc/roots.rdoc +57 -57
  285. data/rdoc/sf.rdoc +428 -428
  286. data/rdoc/siman.rdoc +19 -19
  287. data/rdoc/sort.rdoc +30 -30
  288. data/rdoc/start.rdoc +8 -8
  289. data/rdoc/stats.rdoc +52 -52
  290. data/rdoc/sum.rdoc +12 -12
  291. data/rdoc/tensor.rdoc +31 -31
  292. data/rdoc/tut.rdoc +1 -1
  293. data/rdoc/use.rdoc +39 -39
  294. data/rdoc/vector.rdoc +188 -188
  295. data/rdoc/vector_complex.rdoc +24 -24
  296. data/rdoc/wavelet.rdoc +46 -46
  297. data/test/gsl/blas_test.rb +79 -0
  298. data/test/gsl/bspline_test.rb +63 -0
  299. data/test/gsl/cdf_test.rb +1512 -0
  300. data/test/gsl/cheb_test.rb +80 -0
  301. data/test/gsl/combination_test.rb +100 -0
  302. data/test/gsl/complex_test.rb +20 -0
  303. data/test/gsl/const_test.rb +29 -0
  304. data/test/gsl/deriv_test.rb +62 -0
  305. data/test/gsl/dht_test.rb +79 -0
  306. data/test/gsl/diff_test.rb +53 -0
  307. data/test/gsl/eigen_test.rb +563 -0
  308. data/test/gsl/err_test.rb +23 -0
  309. data/test/gsl/fit_test.rb +101 -0
  310. data/test/gsl/histo_test.rb +14 -0
  311. data/test/gsl/index_test.rb +61 -0
  312. data/test/gsl/integration_test.rb +274 -0
  313. data/test/gsl/interp_test.rb +27 -0
  314. data/test/gsl/linalg_test.rb +463 -0
  315. data/test/gsl/matrix_nmf_test.rb +37 -0
  316. data/test/gsl/matrix_test.rb +98 -0
  317. data/test/gsl/min_test.rb +89 -0
  318. data/test/gsl/monte_test.rb +77 -0
  319. data/test/gsl/multifit_test.rb +753 -0
  320. data/test/gsl/multimin_test.rb +157 -0
  321. data/test/gsl/multiroot_test.rb +135 -0
  322. data/test/gsl/multiset_test.rb +52 -0
  323. data/test/gsl/odeiv_test.rb +275 -0
  324. data/test/gsl/oper_test.rb +98 -0
  325. data/test/gsl/poly_test.rb +338 -0
  326. data/test/gsl/qrng_test.rb +94 -0
  327. data/test/gsl/quartic_test.rb +28 -0
  328. data/test/gsl/randist_test.rb +122 -0
  329. data/test/gsl/rng_test.rb +303 -0
  330. data/test/gsl/roots_test.rb +78 -0
  331. data/test/gsl/sf_test.rb +2079 -0
  332. data/test/gsl/stats_test.rb +122 -0
  333. data/test/gsl/sum_test.rb +69 -0
  334. data/test/gsl/tensor_test.rb +396 -0
  335. data/test/gsl/vector_test.rb +223 -0
  336. data/test/gsl/wavelet_test.rb +130 -0
  337. data/test/gsl_test.rb +321 -0
  338. data/test/test_helper.rb +42 -0
  339. data/uncrustify.cfg +1693 -0
  340. metadata +337 -378
  341. data/README +0 -32
  342. data/VERSION +0 -1
  343. data/ext/bspline.c +0 -130
  344. data/ext/const.c +0 -673
  345. data/ext/cqp.c +0 -283
  346. data/ext/extconf.rb +0 -295
  347. data/ext/fcmp.c +0 -66
  348. data/ext/fresnel.c +0 -312
  349. data/ext/jacobi.c +0 -739
  350. data/ext/ool.c +0 -879
  351. data/ext/oper_complex_source.c +0 -253
  352. data/ext/sf_mathieu.c +0 -238
  353. data/include/rb_gsl_config.h +0 -62
  354. data/include/rb_gsl_dirac.h +0 -13
  355. data/rdoc/index.rdoc +0 -62
  356. data/rdoc/rngextra.rdoc +0 -11
  357. data/rdoc/screenshot.rdoc +0 -40
  358. data/setup.rb +0 -1585
  359. data/tests/blas/amax.rb +0 -14
  360. data/tests/blas/asum.rb +0 -16
  361. data/tests/blas/axpy.rb +0 -25
  362. data/tests/blas/copy.rb +0 -23
  363. data/tests/blas/dot.rb +0 -23
  364. data/tests/bspline.rb +0 -53
  365. data/tests/cdf.rb +0 -1388
  366. data/tests/cheb.rb +0 -112
  367. data/tests/combination.rb +0 -123
  368. data/tests/complex.rb +0 -17
  369. data/tests/const.rb +0 -24
  370. data/tests/deriv.rb +0 -85
  371. data/tests/dht/dht1.rb +0 -17
  372. data/tests/dht/dht2.rb +0 -23
  373. data/tests/dht/dht3.rb +0 -23
  374. data/tests/dht/dht4.rb +0 -23
  375. data/tests/diff.rb +0 -78
  376. data/tests/eigen/eigen.rb +0 -220
  377. data/tests/eigen/gen.rb +0 -105
  378. data/tests/eigen/genherm.rb +0 -66
  379. data/tests/eigen/gensymm.rb +0 -68
  380. data/tests/eigen/nonsymm.rb +0 -53
  381. data/tests/eigen/nonsymmv.rb +0 -53
  382. data/tests/eigen/symm-herm.rb +0 -74
  383. data/tests/err.rb +0 -58
  384. data/tests/fit.rb +0 -124
  385. data/tests/gsl_test.rb +0 -118
  386. data/tests/gsl_test2.rb +0 -110
  387. data/tests/histo.rb +0 -12
  388. data/tests/integration/integration1.rb +0 -72
  389. data/tests/integration/integration2.rb +0 -71
  390. data/tests/integration/integration3.rb +0 -71
  391. data/tests/integration/integration4.rb +0 -71
  392. data/tests/interp.rb +0 -45
  393. data/tests/linalg/HH.rb +0 -64
  394. data/tests/linalg/LU.rb +0 -47
  395. data/tests/linalg/QR.rb +0 -77
  396. data/tests/linalg/SV.rb +0 -24
  397. data/tests/linalg/TDN.rb +0 -116
  398. data/tests/linalg/TDS.rb +0 -122
  399. data/tests/linalg/bidiag.rb +0 -73
  400. data/tests/linalg/cholesky.rb +0 -20
  401. data/tests/linalg/linalg.rb +0 -158
  402. data/tests/matrix/matrix_complex_test.rb +0 -36
  403. data/tests/matrix/matrix_nmf_test.rb +0 -39
  404. data/tests/matrix/matrix_test.rb +0 -48
  405. data/tests/min.rb +0 -99
  406. data/tests/monte/miser.rb +0 -31
  407. data/tests/monte/vegas.rb +0 -45
  408. data/tests/multifit/test_2dgauss.rb +0 -112
  409. data/tests/multifit/test_brown.rb +0 -90
  410. data/tests/multifit/test_enso.rb +0 -246
  411. data/tests/multifit/test_filip.rb +0 -155
  412. data/tests/multifit/test_gauss.rb +0 -97
  413. data/tests/multifit/test_longley.rb +0 -110
  414. data/tests/multifit/test_multifit.rb +0 -52
  415. data/tests/multimin.rb +0 -139
  416. data/tests/multiroot.rb +0 -131
  417. data/tests/multiset.rb +0 -52
  418. data/tests/narray/blas_dnrm2.rb +0 -20
  419. data/tests/odeiv.rb +0 -353
  420. data/tests/poly/poly.rb +0 -290
  421. data/tests/poly/special.rb +0 -65
  422. data/tests/qrng.rb +0 -131
  423. data/tests/quartic.rb +0 -29
  424. data/tests/randist.rb +0 -134
  425. data/tests/rng.rb +0 -305
  426. data/tests/roots.rb +0 -76
  427. data/tests/run-test.sh +0 -17
  428. data/tests/sf/gsl_test_sf.rb +0 -249
  429. data/tests/sf/test_airy.rb +0 -83
  430. data/tests/sf/test_bessel.rb +0 -306
  431. data/tests/sf/test_coulomb.rb +0 -17
  432. data/tests/sf/test_dilog.rb +0 -25
  433. data/tests/sf/test_gamma.rb +0 -209
  434. data/tests/sf/test_hyperg.rb +0 -356
  435. data/tests/sf/test_legendre.rb +0 -227
  436. data/tests/sf/test_mathieu.rb +0 -59
  437. data/tests/sf/test_mode.rb +0 -19
  438. data/tests/sf/test_sf.rb +0 -839
  439. data/tests/stats.rb +0 -174
  440. data/tests/stats_mt.rb +0 -16
  441. data/tests/sum.rb +0 -98
  442. data/tests/sys.rb +0 -323
  443. data/tests/tensor.rb +0 -419
  444. data/tests/vector/vector_complex_test.rb +0 -101
  445. data/tests/vector/vector_test.rb +0 -141
  446. data/tests/wavelet.rb +0 -142
@@ -8,25 +8,25 @@
8
8
  This library is distributed in the hope that it will be useful, but
9
9
  WITHOUT ANY WARRANTY.
10
10
  */
11
- #include "rb_gsl_config.h"
12
- #include "rb_gsl_array.h"
11
+
12
+ #include "include/rb_gsl_array.h"
13
13
  #include <gsl/gsl_sum.h>
14
14
 
15
15
  static VALUE rb_gsl_sum_accel(VALUE obj)
16
16
  {
17
17
  gsl_sum_levin_u_workspace *w = NULL;
18
18
  double sum, err, sum_plain, *ptr;
19
- size_t terms_used, n, stride;
19
+ size_t terms_used, n, stride;
20
20
  ptr = get_vector_ptr(obj, &stride, &n);
21
21
  w = gsl_sum_levin_u_alloc(n);
22
22
  gsl_sum_levin_u_accel(ptr, n, w, &sum, &err);
23
23
  sum_plain = w->sum_plain;
24
24
  terms_used = w->terms_used;
25
25
  gsl_sum_levin_u_free(w);
26
- return rb_ary_new3(4, rb_float_new(sum), rb_float_new(err),
27
- rb_float_new(sum_plain), INT2FIX(terms_used));
26
+ return rb_ary_new3(4, rb_float_new(sum), rb_float_new(err),
27
+ rb_float_new(sum_plain), INT2FIX(terms_used));
28
28
  }
29
-
29
+
30
30
  static VALUE rb_gsl_utrunc_accel(VALUE obj)
31
31
  {
32
32
  gsl_sum_levin_utrunc_workspace *w = NULL;
@@ -38,8 +38,8 @@ static VALUE rb_gsl_utrunc_accel(VALUE obj)
38
38
  sum_plain = w->sum_plain;
39
39
  terms_used = w->terms_used;
40
40
  gsl_sum_levin_utrunc_free(w);
41
- return rb_ary_new3(4, rb_float_new(sum), rb_float_new(err),
42
- rb_float_new(sum_plain), INT2FIX(terms_used));
41
+ return rb_ary_new3(4, rb_float_new(sum), rb_float_new(err),
42
+ rb_float_new(sum_plain), INT2FIX(terms_used));
43
43
  }
44
44
 
45
45
  static VALUE rb_gsl_sum_levin_u_new(VALUE klass, VALUE nn)
@@ -71,8 +71,8 @@ static VALUE rb_gsl_sum_levin_u_accel2(VALUE obj, VALUE vv)
71
71
  sum_plain = w->sum_plain;
72
72
  terms_used = w->terms_used;
73
73
  gsl_sum_levin_u_free(w);
74
- return rb_ary_new3(4, rb_float_new(sum), rb_float_new(err),
75
- rb_float_new(sum_plain), INT2FIX(terms_used));
74
+ return rb_ary_new3(4, rb_float_new(sum), rb_float_new(err),
75
+ rb_float_new(sum_plain), INT2FIX(terms_used));
76
76
  }
77
77
 
78
78
  static VALUE rb_gsl_sum_levin_utrunc_accel2(VALUE obj, VALUE vv)
@@ -87,8 +87,8 @@ static VALUE rb_gsl_sum_levin_utrunc_accel2(VALUE obj, VALUE vv)
87
87
  sum_plain = w->sum_plain;
88
88
  terms_used = w->terms_used;
89
89
  gsl_sum_levin_utrunc_free(w);
90
- return rb_ary_new3(4, rb_float_new(sum), rb_float_new(err),
91
- rb_float_new(sum_plain), INT2FIX(terms_used));
90
+ return rb_ary_new3(4, rb_float_new(sum), rb_float_new(err),
91
+ rb_float_new(sum_plain), INT2FIX(terms_used));
92
92
  }
93
93
 
94
94
  static VALUE rb_gsl_sum_levin_u_sum_plain(VALUE obj)
@@ -119,39 +119,39 @@ static VALUE rb_gsl_sum_levin_utrunc_terms_used(VALUE obj)
119
119
  return INT2FIX(w->terms_used);
120
120
  }
121
121
 
122
- void Init_gsl_sum(VALUE module)
122
+ void Init_gsl_sum(VALUE module)
123
123
  {
124
124
  VALUE mgsl_sum;
125
125
  VALUE cgsl_sum_levin_u, cgsl_sum_levin_utrunc;
126
126
 
127
127
  mgsl_sum = rb_define_module_under(module, "Sum");
128
- cgsl_sum_levin_u = rb_define_class_under(mgsl_sum,
129
- "Levin_u", cGSL_Object);
130
- cgsl_sum_levin_utrunc = rb_define_class_under(mgsl_sum,
131
- "Levin_utrunc", cGSL_Object);
128
+ cgsl_sum_levin_u = rb_define_class_under(mgsl_sum,
129
+ "Levin_u", cGSL_Object);
130
+ cgsl_sum_levin_utrunc = rb_define_class_under(mgsl_sum,
131
+ "Levin_utrunc", cGSL_Object);
132
132
 
133
133
  rb_define_singleton_method(cgsl_sum_levin_u, "new", rb_gsl_sum_levin_u_new, 1);
134
134
  rb_define_singleton_method(cgsl_sum_levin_u, "alloc", rb_gsl_sum_levin_u_new, 1);
135
- rb_define_singleton_method(cgsl_sum_levin_utrunc, "new",
136
- rb_gsl_sum_levin_utrunc_new, 1);
137
- rb_define_singleton_method(cgsl_sum_levin_utrunc, "alloc",
138
- rb_gsl_sum_levin_utrunc_new, 1);
139
- rb_define_singleton_method(cgsl_sum_levin_u, "accel",
140
- rb_gsl_sum_levin_u_accel2, 1);
141
-
142
- rb_define_singleton_method(cgsl_sum_levin_utrunc, "accel",
143
- rb_gsl_sum_levin_utrunc_accel2, 1);
135
+ rb_define_singleton_method(cgsl_sum_levin_utrunc, "new",
136
+ rb_gsl_sum_levin_utrunc_new, 1);
137
+ rb_define_singleton_method(cgsl_sum_levin_utrunc, "alloc",
138
+ rb_gsl_sum_levin_utrunc_new, 1);
139
+ rb_define_singleton_method(cgsl_sum_levin_u, "accel",
140
+ rb_gsl_sum_levin_u_accel2, 1);
141
+
142
+ rb_define_singleton_method(cgsl_sum_levin_utrunc, "accel",
143
+ rb_gsl_sum_levin_utrunc_accel2, 1);
144
144
  rb_define_method(cgsl_sum_levin_u, "accel", rb_gsl_sum_levin_u_accel2, 1);
145
- rb_define_method(cgsl_sum_levin_utrunc, "accel",
146
- rb_gsl_sum_levin_utrunc_accel2, 1);
145
+ rb_define_method(cgsl_sum_levin_utrunc, "accel",
146
+ rb_gsl_sum_levin_utrunc_accel2, 1);
147
147
 
148
148
  rb_define_method(cgsl_sum_levin_u, "sum_plain", rb_gsl_sum_levin_u_sum_plain, 0);
149
- rb_define_method(cgsl_sum_levin_u, "terms_used",
150
- rb_gsl_sum_levin_u_terms_used, 0);
151
- rb_define_method(cgsl_sum_levin_utrunc, "sum_plain",
152
- rb_gsl_sum_levin_utrunc_sum_plain, 0);
153
- rb_define_method(cgsl_sum_levin_utrunc, "terms_used",
154
- rb_gsl_sum_levin_utrunc_terms_used, 0);
149
+ rb_define_method(cgsl_sum_levin_u, "terms_used",
150
+ rb_gsl_sum_levin_u_terms_used, 0);
151
+ rb_define_method(cgsl_sum_levin_utrunc, "sum_plain",
152
+ rb_gsl_sum_levin_utrunc_sum_plain, 0);
153
+ rb_define_method(cgsl_sum_levin_utrunc, "terms_used",
154
+ rb_gsl_sum_levin_utrunc_terms_used, 0);
155
155
  /***/
156
156
 
157
157
  rb_define_method(cgsl_vector, "accel_sum", rb_gsl_sum_accel, 0);
@@ -1,4 +1,4 @@
1
- #include "rb_gsl.h"
1
+ #include "include/rb_gsl.h"
2
2
 
3
3
  #ifdef HAVE_TAMU_ANOVA_TAMU_ANOVA_H
4
4
  VALUE rb_tamu_anova_alloc(int argc, VALUE *argv, VALUE klass)
@@ -16,23 +16,20 @@
16
16
 
17
17
  #ifdef HAVE_TENSOR_TENSOR_H
18
18
 
19
- #include "rb_gsl_config.h"
20
- #include "rb_gsl_tensor.h"
19
+ #include "include/rb_gsl_tensor.h"
21
20
 
22
- #ifdef HAVE_NARRAY_H
23
- #include "rb_gsl_with_narray.h"
24
- #endif
21
+ #include "include/rb_gsl_with_narray.h"
25
22
 
26
23
  #define BASE_DOUBLE
27
- #include "templates_on.h"
28
- #include "tensor_source.c"
29
- #include "templates_off.h"
24
+ #include "include/templates_on.h"
25
+ #include "tensor_source.h"
26
+ #include "include/templates_off.h"
30
27
  #undef BASE_DOUBLE
31
28
 
32
29
  #define BASE_INT
33
- #include "templates_on.h"
34
- #include "tensor_source.c"
35
- #include "templates_off.h"
30
+ #include "include/templates_on.h"
31
+ #include "tensor_source.h"
32
+ #include "include/templates_off.h"
36
33
  #undef BASE_INT
37
34
 
38
35
  #endif
@@ -17,9 +17,8 @@
17
17
 
18
18
  #ifdef HAVE_TENSOR_TENSOR_H
19
19
 
20
- #include "rb_gsl_config.h"
21
- #include "rb_gsl_tensor.h"
22
- #include "rb_gsl_common.h"
20
+ #include "include/rb_gsl_tensor.h"
21
+ #include "include/rb_gsl_common.h"
23
22
 
24
23
  #ifdef BASE_DOUBLE
25
24
  VALUE cgsl_tensor, cgsl_tensor_int;
@@ -39,26 +38,26 @@ VALUE cgsl_tensor_view, cgsl_tensor_int_view;
39
38
  #define MAT_P(x) MATRIX_INT_P(x)
40
39
  #endif
41
40
 
42
- GSL_TYPE(rbgsl_tensor)* FUNCTION(rbgsl_tensor,alloc)(const unsigned int rank,
43
- const size_t dimension)
41
+ GSL_TYPE(rbgsl_tensor)* FUNCTION(rbgsl_tensor,alloc)(const unsigned int rank,
42
+ const size_t dimension)
44
43
  {
45
44
  GSL_TYPE(rbgsl_tensor) *t;
46
45
  t = ALLOC(GSL_TYPE(rbgsl_tensor));
47
46
  t->tensor = FUNCTION(tensor,alloc)(rank, dimension);
48
- if (rank == 0)
47
+ if (rank == 0)
49
48
  t->indices = gsl_permutation_alloc(1);
50
49
  else
51
50
  t->indices = gsl_permutation_alloc(rank);
52
51
  return t;
53
52
  }
54
53
 
55
- GSL_TYPE(rbgsl_tensor)* FUNCTION(rbgsl_tensor,calloc)(const unsigned int rank,
56
- const size_t dimension)
54
+ GSL_TYPE(rbgsl_tensor)* FUNCTION(rbgsl_tensor,calloc)(const unsigned int rank,
55
+ const size_t dimension)
57
56
  {
58
57
  GSL_TYPE(rbgsl_tensor) *t;
59
58
  t = ALLOC(GSL_TYPE(rbgsl_tensor));
60
59
  t->tensor = FUNCTION(tensor,calloc)(rank, dimension);
61
- if (rank == 0)
60
+ if (rank == 0)
62
61
  t->indices = gsl_permutation_alloc(1);
63
62
  else
64
63
  t->indices = gsl_permutation_alloc(rank);
@@ -69,7 +68,7 @@ GSL_TYPE(rbgsl_tensor)* FUNCTION(rbgsl_tensor,copy)(const GSL_TYPE(rbgsl_tensor)
69
68
  {
70
69
  GSL_TYPE(rbgsl_tensor) *tnew;
71
70
  tnew = ALLOC(GSL_TYPE(rbgsl_tensor));
72
- if (t->tensor->rank == 0)
71
+ if (t->tensor->rank == 0)
73
72
  tnew->indices = gsl_permutation_alloc(1);
74
73
  else
75
74
  tnew->indices = gsl_permutation_alloc(t->tensor->rank);
@@ -81,14 +80,14 @@ void FUNCTION(rbgsl_tensor,free)(GSL_TYPE(rbgsl_tensor) *t)
81
80
  {
82
81
  gsl_permutation_free(t->indices);
83
82
  FUNCTION(tensor,free)(t->tensor);
84
- free((GSL_TYPE(rbgsl_tensor) *) t);
83
+ free((GSL_TYPE(rbgsl_tensor) *)t);
85
84
  }
86
85
 
87
86
  void FUNCTION(rbgsl_tensor,free2)(GSL_TYPE(rbgsl_tensor) *t)
88
87
  {
89
88
  gsl_permutation_free(t->indices);
90
- free((GSL_TYPE(tensor)*) t->tensor);
91
- free((GSL_TYPE(rbgsl_tensor) *) t);
89
+ free((GSL_TYPE(tensor)*)t->tensor);
90
+ free((GSL_TYPE(rbgsl_tensor) *)t);
92
91
  }
93
92
 
94
93
  /* singleton methods */
@@ -105,7 +104,7 @@ static VALUE FUNCTION(rb_tensor,new)(int argc, VALUE *argv, VALUE klass)
105
104
  break;
106
105
  default:
107
106
  rb_raise(rb_eArgError, "wrong number of arguments (%d for 2, rank and dimension)",
108
- argc);
107
+ argc);
109
108
  break;
110
109
  }
111
110
  return Data_Wrap_Struct(GSL_TYPE(cgsl_tensor), 0, FUNCTION(rbgsl_tensor,free), t);
@@ -176,8 +175,8 @@ static VALUE FUNCTION(rb_tensor,set_all)(VALUE obj, VALUE xx)
176
175
  }
177
176
 
178
177
  static void rb_tensor_get_indices_array(tensor_indices *v, VALUE ary);
179
- static void rbgsl_tensor_get_indices(int argc, VALUE *argv, tensor_indices *indices,
180
- size_t *n);
178
+ static void rbgsl_tensor_get_indices(int argc, VALUE *argv, tensor_indices *indices,
179
+ size_t *n);
181
180
  #ifdef BASE_DOUBLE
182
181
  static void rb_tensor_get_indices_array(tensor_indices *v, VALUE ary)
183
182
  {
@@ -188,8 +187,8 @@ static void rb_tensor_get_indices_array(tensor_indices *v, VALUE ary)
188
187
  v->data[i] = FIX2UINT(rb_ary_entry(ary, i));
189
188
  }
190
189
 
191
- static void rbgsl_tensor_get_indices(int argc, VALUE *argv,
192
- tensor_indices *indices, size_t *n)
190
+ static void rbgsl_tensor_get_indices(int argc, VALUE *argv,
191
+ tensor_indices *indices, size_t *n)
193
192
  {
194
193
  size_t i;
195
194
  for (i = 0; i < indices->size; i++) indices->data[i] = 0;
@@ -207,7 +206,7 @@ static void rbgsl_tensor_get_indices(int argc, VALUE *argv,
207
206
  break;
208
207
  default:
209
208
  rb_raise(rb_eTypeError, "wrong argument type %s (Array expected)",
210
- rb_class2name(CLASS_OF(argv[0])));
209
+ rb_class2name(CLASS_OF(argv[0])));
211
210
  break;
212
211
  }
213
212
  break;
@@ -223,13 +222,13 @@ static void rbgsl_tensor_get_indices(int argc, VALUE *argv,
223
222
  #endif
224
223
 
225
224
  size_t FUNCTION(tensor,position)(const size_t * indices,
226
- const GSL_TYPE(tensor) * t);
225
+ const GSL_TYPE(tensor) * t);
227
226
  static VALUE FUNCTION(rb_tensor,position)(int argc, VALUE *argv, VALUE obj)
228
227
  {
229
228
  GSL_TYPE(rbgsl_tensor) *t = NULL;
230
229
  size_t n, position;
231
- Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
232
- rbgsl_tensor_get_indices(argc, argv, t->indices, &n);
230
+ Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
231
+ rbgsl_tensor_get_indices(argc, argv, t->indices, &n);
233
232
  position = (size_t) FUNCTION(tensor,position)(t->indices->data,t->tensor);
234
233
  return INT2FIX(position);
235
234
  }
@@ -239,8 +238,8 @@ static VALUE FUNCTION(rb_tensor,get)(int argc, VALUE *argv, VALUE obj)
239
238
  GSL_TYPE(rbgsl_tensor) *t = NULL;
240
239
  BASE x;
241
240
  size_t n;
242
- Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
243
- rbgsl_tensor_get_indices(argc, argv, t->indices, &n);
241
+ Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
242
+ rbgsl_tensor_get_indices(argc, argv, t->indices, &n);
244
243
  if (n < t->tensor->rank) {
245
244
  return FUNCTION(rb_tensor,subtensor)(argc, argv, obj);
246
245
  } else {
@@ -255,9 +254,9 @@ static VALUE FUNCTION(rb_tensor,set)(int argc, VALUE *argv, VALUE obj)
255
254
  GSL_TYPE(rbgsl_tensor) *t = NULL;
256
255
  size_t n;
257
256
  BASE x;
258
- if (argc < 2)
257
+ if (argc < 2)
259
258
  rb_raise(rb_eArgError, "wrong number of arguments (%d for >= 2)", argc);
260
- Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
259
+ Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
261
260
  rbgsl_tensor_get_indices(argc-1, argv, t->indices, &n);
262
261
  x = NUMCONV(argv[argc-1]);
263
262
  FUNCTION(tensor,set)(t->tensor, t->indices->data, x);
@@ -293,7 +292,7 @@ static VALUE FUNCTION(rb_tensor,fprintf)(int argc, VALUE *argv, VALUE obj)
293
292
  GSL_TYPE(rbgsl_tensor) *h = NULL;
294
293
  FILE *fp = NULL;
295
294
  int status, flag = 0;
296
- if (argc != 1 && argc != 2)
295
+ if (argc != 1 && argc != 2)
297
296
  rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 2)", argc);
298
297
  Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), h);
299
298
  fp = rb_gsl_open_writefile(argv[0], &flag);
@@ -318,7 +317,7 @@ static VALUE FUNCTION(rb_tensor,printf)(int argc, VALUE *argv, VALUE obj)
318
317
  int status;
319
318
  Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), h);
320
319
  if (argc == 1) {
321
- if (TYPE(argv[0]) != T_STRING)
320
+ if (TYPE(argv[0]) != T_STRING)
322
321
  rb_raise(rb_eTypeError, "String expected");
323
322
  else
324
323
  status = FUNCTION(tensor,fprintf)(stdout, h->tensor, STR2CSTR(argv[0]));
@@ -345,7 +344,7 @@ static VALUE FUNCTION(rb_tensor,swap_indices)(VALUE obj, VALUE ii, VALUE jj)
345
344
  GSL_TYPE(rbgsl_tensor) *t, *tnew;
346
345
  Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
347
346
  tnew = ALLOC(GSL_TYPE(rbgsl_tensor));
348
- if (t->tensor->rank == 0)
347
+ if (t->tensor->rank == 0)
349
348
  tnew->indices = gsl_permutation_alloc(1);
350
349
  else
351
350
  tnew->indices = gsl_permutation_alloc(t->tensor->rank);
@@ -406,8 +405,8 @@ static VALUE FUNCTION(rb_tensor,minmax_index)(VALUE obj)
406
405
  }
407
406
  FUNCTION(tensor,minmax_index)(t->tensor, min->data, max->data);
408
407
  return rb_ary_new3(2,
409
- Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, min),
410
- Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, max));
408
+ Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, min),
409
+ Data_Wrap_Struct(cgsl_index, 0, gsl_permutation_free, max));
411
410
  }
412
411
 
413
412
  static VALUE FUNCTION(rb_tensor,isnull)(VALUE obj)
@@ -428,7 +427,7 @@ static VALUE FUNCTION(rb_tensor,isnull2)(VALUE obj)
428
427
  }
429
428
 
430
429
  static VALUE FUNCTION(rb_tensor,oper)(VALUE obj, VALUE bb,
431
- int flag)
430
+ int flag)
432
431
  {
433
432
  GSL_TYPE(rbgsl_tensor) *a, *b, *anew;
434
433
  BASE x;
@@ -444,28 +443,28 @@ static VALUE FUNCTION(rb_tensor,oper)(VALUE obj, VALUE bb,
444
443
  case TENSOR_MUL_ELEMENTS: f = FUNCTION(&tensor,mul_elements); break;
445
444
  case TENSOR_DIV_ELEMENTS: f = FUNCTION(&tensor,div_elements); break;
446
445
  default: rb_raise(rb_eRuntimeError, "unknown operation"); break;
447
- }
446
+ }
448
447
  (*f)(anew->tensor, b->tensor);
449
448
  } else {
450
449
  switch (flag) {
451
450
  case TENSOR_ADD:
452
- case TENSOR_ADD_CONSTANT:
451
+ case TENSOR_ADD_CONSTANT:
453
452
  x = NUMCONV(bb);
454
- f2 = FUNCTION(&tensor,add_constant);
453
+ f2 = FUNCTION(&tensor,add_constant);
455
454
  break;
456
455
  case TENSOR_SUB:
457
456
  x = -NUMCONV(bb);
458
- f2 = FUNCTION(&tensor,add_constant);
457
+ f2 = FUNCTION(&tensor,add_constant);
459
458
  break;
460
459
  case TENSOR_ADD_DIAGONAL: f2 = FUNCTION(&tensor,add_diagonal); break;
461
460
  case TENSOR_MUL_ELEMENTS:
462
461
  case TENSOR_SCALE:
463
- x = NUMCONV(bb);
464
- f2 = FUNCTION(&tensor,scale);
462
+ x = NUMCONV(bb);
463
+ f2 = FUNCTION(&tensor,scale);
465
464
  break;
466
- case TENSOR_DIV_ELEMENTS:
467
- x = 1.0/NUMCONV(bb);
468
- f2 = FUNCTION(&tensor,scale);
465
+ case TENSOR_DIV_ELEMENTS:
466
+ x = 1.0/NUMCONV(bb);
467
+ f2 = FUNCTION(&tensor,scale);
469
468
  break;
470
469
  default: rb_raise(rb_eRuntimeError, "unknown operation"); break;
471
470
  }
@@ -490,28 +489,28 @@ static VALUE FUNCTION(rb_tensor,oper_bang)(VALUE obj, VALUE bb, int flag)
490
489
  case TENSOR_MUL_ELEMENTS: f = FUNCTION(&tensor,mul_elements); break;
491
490
  case TENSOR_DIV_ELEMENTS: f = FUNCTION(&tensor,div_elements); break;
492
491
  default: rb_raise(rb_eRuntimeError, "unknown operation"); break;
493
- }
492
+ }
494
493
  (*f)(a->tensor, b->tensor);
495
494
  } else {
496
495
  switch (flag) {
497
496
  case TENSOR_ADD:
498
- case TENSOR_ADD_CONSTANT:
497
+ case TENSOR_ADD_CONSTANT:
499
498
  x = NUMCONV(bb);
500
- f2 = FUNCTION(&tensor,add_constant);
499
+ f2 = FUNCTION(&tensor,add_constant);
501
500
  break;
502
501
  case TENSOR_SUB:
503
502
  x = -NUMCONV(bb);
504
- f2 = FUNCTION(&tensor,add_constant);
503
+ f2 = FUNCTION(&tensor,add_constant);
505
504
  break;
506
505
  case TENSOR_ADD_DIAGONAL: f2 = FUNCTION(&tensor,add_diagonal); break;
507
506
  case TENSOR_MUL_ELEMENTS:
508
507
  case TENSOR_SCALE:
509
- x = NUMCONV(bb);
510
- f2 = FUNCTION(&tensor,scale);
508
+ x = NUMCONV(bb);
509
+ f2 = FUNCTION(&tensor,scale);
511
510
  break;
512
- case TENSOR_DIV_ELEMENTS:
513
- x = 1.0/NUMCONV(bb);
514
- f2 = FUNCTION(&tensor,scale);
511
+ case TENSOR_DIV_ELEMENTS:
512
+ x = 1.0/NUMCONV(bb);
513
+ f2 = FUNCTION(&tensor,scale);
515
514
  break;
516
515
  default: rb_raise(rb_eRuntimeError, "unknown operation"); break;
517
516
  }
@@ -689,7 +688,7 @@ static VALUE FUNCTION(rb_tensor,2matrix)(VALUE obj)
689
688
  GSL_TYPE(rbgsl_tensor) *t;
690
689
  GSL_TYPE(gsl_matrix) *m = NULL;
691
690
  Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
692
- m = (GSL_TYPE(gsl_matrix)*) FUNCTION(tensor,2matrix)(t->tensor);
691
+ m = (GSL_TYPE(gsl_matrix)*)FUNCTION(tensor,2matrix)(t->tensor);
693
692
  return Data_Wrap_Struct(QUALIFIED_VIEW(cgsl_matrix,view), 0, FUNCTION(gsl_matrix,free), m);
694
693
  }
695
694
 
@@ -698,7 +697,7 @@ static VALUE FUNCTION(rb_tensor,2vector)(VALUE obj)
698
697
  GSL_TYPE(rbgsl_tensor) *t;
699
698
  GSL_TYPE(gsl_vector) *v = NULL;
700
699
  Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
701
- v = (GSL_TYPE(gsl_vector) *) FUNCTION(tensor,2vector)(t->tensor);
700
+ v = (GSL_TYPE(gsl_vector) *)FUNCTION(tensor,2vector)(t->tensor);
702
701
  return Data_Wrap_Struct(QUALIFIED_VIEW(cgsl_vector,view), 0, FUNCTION(gsl_vector,free), v);
703
702
  }
704
703
 
@@ -719,8 +718,8 @@ static VALUE FUNCTION(rb_tensor,to_v)(VALUE obj)
719
718
  rank: rank of the tensor created
720
719
  */
721
720
  GSL_TYPE(tensor) FUNCTION(tensor,subtensor)(const GSL_TYPE(tensor) *t,
722
- const unsigned int rank,
723
- size_t *indices)
721
+ const unsigned int rank,
722
+ size_t *indices)
724
723
  {
725
724
  GSL_TYPE(tensor) tnew;
726
725
  size_t position;
@@ -741,16 +740,16 @@ static VALUE FUNCTION(rb_tensor,subtensor)(int argc, VALUE *argv, VALUE obj)
741
740
  size_t n;
742
741
  Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
743
742
  /* n: number of indices given */
744
- rbgsl_tensor_get_indices(argc, argv, t->indices, &n);
745
- rank = t->tensor->rank - n;
743
+ rbgsl_tensor_get_indices(argc, argv, t->indices, &n);
744
+ rank = t->tensor->rank - n;
746
745
  tnew = ALLOC(GSL_TYPE(rbgsl_tensor));
747
- tnew->tensor = (GSL_TYPE(tensor)*) malloc(sizeof(GSL_TYPE(tensor)));
746
+ tnew->tensor = (GSL_TYPE(tensor)*)malloc(sizeof(GSL_TYPE(tensor)));
748
747
  *(tnew->tensor) = FUNCTION(tensor,subtensor)(t->tensor, rank, t->indices->data);
749
- if (rank == 0)
748
+ if (rank == 0)
750
749
  tnew->indices = gsl_permutation_alloc(1);
751
750
  else
752
751
  tnew->indices = gsl_permutation_alloc(rank);
753
- return Data_Wrap_Struct(QUALIFIED_VIEW(cgsl_tensor,view), 0, FUNCTION(rbgsl_tensor,free2), tnew);
752
+ return Data_Wrap_Struct(QUALIFIED_VIEW(cgsl_tensor,view), 0, FUNCTION(rbgsl_tensor,free2), tnew);
754
753
  }
755
754
 
756
755
  #ifdef BASE_DOUBLE
@@ -783,29 +782,29 @@ static VALUE FUNCTION(rb_tensor,to_s)(VALUE obj)
783
782
  m = &(matrix.matrix);
784
783
  for (i = 0; i < m->size1; i++) {
785
784
  if (i != 0) {
786
- strcpy(buf, " ");
787
- rb_str_cat(str, buf, strlen(buf));
785
+ strcpy(buf, " ");
786
+ rb_str_cat(str, buf, strlen(buf));
788
787
  }
789
788
  for (j = 0; j < m->size2; j++) {
790
- sprintf(buf, PRINTF_FORMAT, FUNCTION(gsl_matrix,get)(m, i, j));
791
- rb_str_cat(str, buf, strlen(buf));
792
- if (j == SHOW_ELM) {
793
- strcpy(buf, "... ");
794
- rb_str_cat(str, buf, strlen(buf));
795
- break;
796
- }
789
+ sprintf(buf, PRINTF_FORMAT, FUNCTION(gsl_matrix,get)(m, i, j));
790
+ rb_str_cat(str, buf, strlen(buf));
791
+ if (j == SHOW_ELM) {
792
+ strcpy(buf, "... ");
793
+ rb_str_cat(str, buf, strlen(buf));
794
+ break;
795
+ }
797
796
  }
798
797
  if (i == 6) {
799
- strcpy(buf, "\n ... ]");
800
- rb_str_cat(str, buf, strlen(buf));
801
- break;
798
+ strcpy(buf, "\n ... ]");
799
+ rb_str_cat(str, buf, strlen(buf));
800
+ break;
802
801
  }
803
802
  if (i == m->size1 - 1) {
804
- strcpy(buf, "]");
805
- rb_str_cat(str, buf, strlen(buf));
803
+ strcpy(buf, "]");
804
+ rb_str_cat(str, buf, strlen(buf));
806
805
  } else {
807
- strcpy(buf, "\n");
808
- rb_str_cat(str, buf, strlen(buf));
806
+ strcpy(buf, "\n");
807
+ rb_str_cat(str, buf, strlen(buf));
809
808
  }
810
809
  }
811
810
  return str;
@@ -872,8 +871,8 @@ VALUE FUNCTION(rb_tensor,equal)(int argc, VALUE *argv, VALUE obj)
872
871
  if (a->tensor->dimension != b->tensor->dimension) return Qfalse;
873
872
  if (a->tensor->size != b->tensor->size) return Qfalse;
874
873
  for (i = 0; i < a->tensor->size; i++)
875
- if (fabs(a->tensor->data[i]-b->tensor->data[i]) > eps)
876
- return Qfalse;
874
+ if (fabs(a->tensor->data[i]-b->tensor->data[i]) > eps)
875
+ return Qfalse;
877
876
  return Qtrue;
878
877
  } else if (MAT_P(other)) {
879
878
  if (a->tensor->rank != 2) return Qfalse;
@@ -881,19 +880,19 @@ VALUE FUNCTION(rb_tensor,equal)(int argc, VALUE *argv, VALUE obj)
881
880
  if (a->tensor->dimension != m->size1 || a->tensor->dimension != m->size2)
882
881
  return Qfalse;
883
882
  for (i = 0; i < a->tensor->size; i++)
884
- if (fabs(a->tensor->data[i]-m->data[i]) > eps)
885
- return Qfalse;
883
+ if (fabs(a->tensor->data[i]-m->data[i]) > eps)
884
+ return Qfalse;
886
885
  return Qtrue;
887
886
  } else if (VEC_P(other)) {
888
887
  Data_Get_Struct(other, GSL_TYPE(gsl_vector), v);
889
888
  if (a->tensor->size != v->size) return Qfalse;
890
889
  for (i = 0; i < a->tensor->size; i++)
891
- if (fabs(a->tensor->data[i]-v->data[i]) > eps)
892
- return Qfalse;
890
+ if (fabs(a->tensor->data[i]-v->data[i]) > eps)
891
+ return Qfalse;
893
892
  return Qtrue;
894
893
  } else {
895
- rb_raise(rb_eTypeError, "wrong argument type %s (Tensor, Matrix or Vector expected)",
896
- rb_class2name(CLASS_OF(other)));
894
+ rb_raise(rb_eTypeError, "wrong argument type %s (Tensor, Matrix or Vector expected)",
895
+ rb_class2name(CLASS_OF(other)));
897
896
  }
898
897
  }
899
898
 
@@ -928,8 +927,8 @@ static VALUE FUNCTION(rb_tensor,coerce)(VALUE obj, VALUE other)
928
927
  return rb_ary_new3(2, tt, obj);
929
928
  break;
930
929
  default:
931
- rb_raise(rb_eRuntimeError, "undefined operation with %s",
932
- rb_class2name(CLASS_OF(other)));
930
+ rb_raise(rb_eRuntimeError, "undefined operation with %s",
931
+ rb_class2name(CLASS_OF(other)));
933
932
  break;
934
933
  }
935
934
  }
@@ -940,7 +939,7 @@ static VALUE FUNCTION(rb_tensor,info)(VALUE obj)
940
939
  char buf[256];
941
940
  Data_Get_Struct(obj, GSL_TYPE(rbgsl_tensor), t);
942
941
  sprintf(buf, "Class: %s\n", rb_class2name(CLASS_OF(obj)));
943
- // sprintf(buf, "%sSuperClass: %s\n", buf, rb_class2name(RCLASS(CLASS_OF(obj))->super));
942
+ sprintf(buf, "%sSuperClass: %s\n", buf, rb_class2name(RCLASS_SUPER(CLASS_OF(obj))));
944
943
  sprintf(buf, "%sRank: %d\n", buf, (int) t->tensor->rank);
945
944
  sprintf(buf, "%sDimension: %d\n", buf, (int) t->tensor->dimension);
946
945
  sprintf(buf, "%sSize: %d\n", buf, (int) t->tensor->size);
@@ -954,99 +953,99 @@ void FUNCTION(Init_tensor,init)(VALUE module)
954
953
  cgsl_tensor_int = rb_define_class_under(cgsl_tensor, "Int", cGSL_Object);
955
954
  cgsl_tensor_view = rb_define_class_under(cgsl_tensor, "View", cgsl_tensor);
956
955
  cgsl_tensor_int_view = rb_define_class_under(cgsl_tensor_int, "View",
957
- cgsl_tensor_int);
956
+ cgsl_tensor_int);
958
957
  /*
959
- cgsl_index = rb_define_class_under(cgsl_tensor, "Index",
958
+ cgsl_index = rb_define_class_under(cgsl_tensor, "Index",
960
959
  cgsl_permutation);*/
961
960
  #endif
962
961
 
963
962
  rb_define_singleton_method(GSL_TYPE(cgsl_tensor), "new",
964
- FUNCTION(rb_tensor,new), -1);
963
+ FUNCTION(rb_tensor,new), -1);
965
964
  rb_define_singleton_method(GSL_TYPE(cgsl_tensor), "[]",
966
- FUNCTION(rb_tensor,new), -1);
965
+ FUNCTION(rb_tensor,new), -1);
967
966
  rb_define_singleton_method(GSL_TYPE(cgsl_tensor), "alloc",
968
- FUNCTION(rb_tensor,new), -1);
967
+ FUNCTION(rb_tensor,new), -1);
969
968
  rb_define_singleton_method(GSL_TYPE(cgsl_tensor), "calloc",
970
- FUNCTION(rb_tensor,calloc), 2);
969
+ FUNCTION(rb_tensor,calloc), 2);
971
970
  rb_define_singleton_method(GSL_TYPE(cgsl_tensor), "copy",
972
- FUNCTION(rb_tensor,copy_singleton), 1);
971
+ FUNCTION(rb_tensor,copy_singleton), 1);
973
972
  rb_define_singleton_method(GSL_TYPE(cgsl_tensor), "memcpy",
974
- FUNCTION(rb_tensor,memcpy_singleton), 2);
973
+ FUNCTION(rb_tensor,memcpy_singleton), 2);
975
974
  rb_define_singleton_method(GSL_TYPE(cgsl_tensor), "swap",
976
- FUNCTION(rb_tensor,swap_singleton), 2);
975
+ FUNCTION(rb_tensor,swap_singleton), 2);
977
976
 
978
977
  /*****/
979
978
 
980
979
  rb_define_method(GSL_TYPE(cgsl_tensor), "copy",
981
- FUNCTION(rb_tensor,copy), 0);
980
+ FUNCTION(rb_tensor,copy), 0);
982
981
  rb_define_alias(GSL_TYPE(cgsl_tensor), "clone", "copy");
983
982
  rb_define_alias(GSL_TYPE(cgsl_tensor), "duplicate", "copy");
984
983
  rb_define_method(GSL_TYPE(cgsl_tensor), "set_zero",
985
- FUNCTION(rb_tensor,set_zero), 0);
984
+ FUNCTION(rb_tensor,set_zero), 0);
986
985
  rb_define_method(GSL_TYPE(cgsl_tensor), "set_all",
987
- FUNCTION(rb_tensor,set_all), 1);
986
+ FUNCTION(rb_tensor,set_all), 1);
988
987
 
989
988
  rb_define_method(GSL_TYPE(cgsl_tensor), "position",
990
- FUNCTION(rb_tensor,position), -1);
989
+ FUNCTION(rb_tensor,position), -1);
991
990
  rb_define_method(GSL_TYPE(cgsl_tensor), "get",
992
- FUNCTION(rb_tensor,get), -1);
991
+ FUNCTION(rb_tensor,get), -1);
993
992
  rb_define_alias(GSL_TYPE(cgsl_tensor), "[]", "get");
994
993
  rb_define_method(GSL_TYPE(cgsl_tensor), "set",
995
- FUNCTION(rb_tensor,set), -1);
994
+ FUNCTION(rb_tensor,set), -1);
996
995
  rb_define_alias(GSL_TYPE(cgsl_tensor), "[]=", "set");
997
996
 
998
997
  rb_define_method(GSL_TYPE(cgsl_tensor), "fread",
999
- FUNCTION(rb_tensor,fread), 1);
998
+ FUNCTION(rb_tensor,fread), 1);
1000
999
  rb_define_method(GSL_TYPE(cgsl_tensor), "fwrite",
1001
- FUNCTION(rb_tensor,fwrite), 1);
1000
+ FUNCTION(rb_tensor,fwrite), 1);
1002
1001
  rb_define_method(GSL_TYPE(cgsl_tensor), "fprintf",
1003
- FUNCTION(rb_tensor,fprintf), -1);
1002
+ FUNCTION(rb_tensor,fprintf), -1);
1004
1003
  rb_define_method(GSL_TYPE(cgsl_tensor), "printf",
1005
- FUNCTION(rb_tensor,printf), -1);
1004
+ FUNCTION(rb_tensor,printf), -1);
1006
1005
  rb_define_method(GSL_TYPE(cgsl_tensor), "fscanf",
1007
- FUNCTION(rb_tensor,fscanf), 1);
1006
+ FUNCTION(rb_tensor,fscanf), 1);
1008
1007
 
1009
1008
  rb_define_method(GSL_TYPE(cgsl_tensor), "swap_indices",
1010
- FUNCTION(rb_tensor,swap_indices), 2);
1009
+ FUNCTION(rb_tensor,swap_indices), 2);
1011
1010
 
1012
1011
  rb_define_method(GSL_TYPE(cgsl_tensor), "max",
1013
- FUNCTION(rb_tensor,max), 0);
1012
+ FUNCTION(rb_tensor,max), 0);
1014
1013
  rb_define_method(GSL_TYPE(cgsl_tensor), "min",
1015
- FUNCTION(rb_tensor,min), 0);
1014
+ FUNCTION(rb_tensor,min), 0);
1016
1015
  rb_define_method(GSL_TYPE(cgsl_tensor), "minmax",
1017
- FUNCTION(rb_tensor,minmax), 0);
1016
+ FUNCTION(rb_tensor,minmax), 0);
1018
1017
  rb_define_method(GSL_TYPE(cgsl_tensor), "max_index",
1019
- FUNCTION(rb_tensor,max_index), 0);
1018
+ FUNCTION(rb_tensor,max_index), 0);
1020
1019
  rb_define_method(GSL_TYPE(cgsl_tensor), "min_index",
1021
- FUNCTION(rb_tensor,min_index), 0);
1020
+ FUNCTION(rb_tensor,min_index), 0);
1022
1021
  rb_define_method(GSL_TYPE(cgsl_tensor), "minmax_index",
1023
- FUNCTION(rb_tensor,minmax_index), 0);
1022
+ FUNCTION(rb_tensor,minmax_index), 0);
1024
1023
 
1025
1024
  rb_define_method(GSL_TYPE(cgsl_tensor), "isnull",
1026
- FUNCTION(rb_tensor,isnull), 0);
1025
+ FUNCTION(rb_tensor,isnull), 0);
1027
1026
  rb_define_method(GSL_TYPE(cgsl_tensor), "isnull?",
1028
- FUNCTION(rb_tensor,isnull2), 0);
1027
+ FUNCTION(rb_tensor,isnull2), 0);
1029
1028
 
1030
1029
  rb_define_method(GSL_TYPE(cgsl_tensor), "add",
1031
- FUNCTION(rb_tensor,add), 1);
1030
+ FUNCTION(rb_tensor,add), 1);
1032
1031
  rb_define_method(GSL_TYPE(cgsl_tensor), "sub",
1033
- FUNCTION(rb_tensor,sub), 1);
1032
+ FUNCTION(rb_tensor,sub), 1);
1034
1033
  rb_define_method(GSL_TYPE(cgsl_tensor), "mul_elements",
1035
- FUNCTION(rb_tensor,mul_elements), 1);
1034
+ FUNCTION(rb_tensor,mul_elements), 1);
1036
1035
  rb_define_method(GSL_TYPE(cgsl_tensor), "div_elements",
1037
- FUNCTION(rb_tensor,div_elements), 1);
1036
+ FUNCTION(rb_tensor,div_elements), 1);
1038
1037
  rb_define_method(GSL_TYPE(cgsl_tensor), "add_constant",
1039
- FUNCTION(rb_tensor,add_constant), 1);
1038
+ FUNCTION(rb_tensor,add_constant), 1);
1040
1039
  rb_define_method(GSL_TYPE(cgsl_tensor), "add_diagonal",
1041
- FUNCTION(rb_tensor,add_diagonal), 1);
1040
+ FUNCTION(rb_tensor,add_diagonal), 1);
1042
1041
  rb_define_method(GSL_TYPE(cgsl_tensor), "scale",
1043
- FUNCTION(rb_tensor,scale), 1);
1042
+ FUNCTION(rb_tensor,scale), 1);
1044
1043
  rb_define_singleton_method(GSL_TYPE(cgsl_tensor), "product",
1045
- FUNCTION(rb_tensor,product_singleton), 2);
1044
+ FUNCTION(rb_tensor,product_singleton), 2);
1046
1045
  rb_define_method(GSL_TYPE(cgsl_tensor), "product",
1047
- FUNCTION(rb_tensor,product), 1);
1046
+ FUNCTION(rb_tensor,product), 1);
1048
1047
  rb_define_method(GSL_TYPE(cgsl_tensor), "contract",
1049
- FUNCTION(rb_tensor,contract), 2);
1048
+ FUNCTION(rb_tensor,contract), 2);
1050
1049
 
1051
1050
  rb_define_alias(GSL_TYPE(cgsl_tensor), "+", "add");
1052
1051
  rb_define_alias(GSL_TYPE(cgsl_tensor), "-", "sub");
@@ -1055,62 +1054,62 @@ void FUNCTION(Init_tensor,init)(VALUE module)
1055
1054
  rb_define_alias(GSL_TYPE(cgsl_tensor), "*", "product");
1056
1055
 
1057
1056
  rb_define_method(GSL_TYPE(cgsl_tensor), "add!",
1058
- FUNCTION(rb_tensor,add_bang), 1);
1057
+ FUNCTION(rb_tensor,add_bang), 1);
1059
1058
  rb_define_method(GSL_TYPE(cgsl_tensor), "sub!",
1060
- FUNCTION(rb_tensor,sub_bang), 1);
1059
+ FUNCTION(rb_tensor,sub_bang), 1);
1061
1060
  rb_define_method(GSL_TYPE(cgsl_tensor), "mul_elements!",
1062
- FUNCTION(rb_tensor,mul_elements_bang), 1);
1061
+ FUNCTION(rb_tensor,mul_elements_bang), 1);
1063
1062
  rb_define_method(GSL_TYPE(cgsl_tensor), "div_elements!",
1064
- FUNCTION(rb_tensor,div_elements_bang), 1);
1063
+ FUNCTION(rb_tensor,div_elements_bang), 1);
1065
1064
  rb_define_method(GSL_TYPE(cgsl_tensor), "add_constant!",
1066
- FUNCTION(rb_tensor,add_constant_bang), 1);
1065
+ FUNCTION(rb_tensor,add_constant_bang), 1);
1067
1066
  rb_define_method(GSL_TYPE(cgsl_tensor), "add_diagonal!",
1068
- FUNCTION(rb_tensor,add_diagonal_bang), 1);
1067
+ FUNCTION(rb_tensor,add_diagonal_bang), 1);
1069
1068
  rb_define_method(GSL_TYPE(cgsl_tensor), "scale!",
1070
- FUNCTION(rb_tensor,scale_bang), 1);
1069
+ FUNCTION(rb_tensor,scale_bang), 1);
1071
1070
 
1072
1071
  rb_define_method(GSL_TYPE(cgsl_tensor), "+@",
1073
- FUNCTION(rb_tensor,uplus), 0);
1072
+ FUNCTION(rb_tensor,uplus), 0);
1074
1073
  rb_define_method(GSL_TYPE(cgsl_tensor), "-@",
1075
- FUNCTION(rb_tensor,uminus), 0);
1074
+ FUNCTION(rb_tensor,uminus), 0);
1076
1075
 
1077
1076
  rb_define_method(GSL_TYPE(cgsl_tensor), "size",
1078
- FUNCTION(rb_tensor,size), 0);
1077
+ FUNCTION(rb_tensor,size), 0);
1079
1078
  rb_define_method(GSL_TYPE(cgsl_tensor), "rank",
1080
- FUNCTION(rb_tensor,rank), 0);
1079
+ FUNCTION(rb_tensor,rank), 0);
1081
1080
  rb_define_method(GSL_TYPE(cgsl_tensor), "dimension",
1082
- FUNCTION(rb_tensor,dimension), 0);
1081
+ FUNCTION(rb_tensor,dimension), 0);
1083
1082
  rb_define_alias(GSL_TYPE(cgsl_tensor), "dim", "dimension");
1084
1083
  rb_define_method(GSL_TYPE(cgsl_tensor), "data",
1085
- FUNCTION(rb_tensor,data), 0);
1084
+ FUNCTION(rb_tensor,data), 0);
1086
1085
 
1087
1086
  rb_define_method(GSL_TYPE(cgsl_tensor), "to_v",
1088
- FUNCTION(rb_tensor,to_v), 0);
1087
+ FUNCTION(rb_tensor,to_v), 0);
1089
1088
  rb_define_alias(GSL_TYPE(cgsl_tensor), "to_gv", "to_v");
1090
1089
 
1091
1090
  rb_define_method(GSL_TYPE(cgsl_tensor), "to_vector",
1092
- FUNCTION(rb_tensor,2vector), 0);
1091
+ FUNCTION(rb_tensor,2vector), 0);
1093
1092
  rb_define_method(GSL_TYPE(cgsl_tensor), "to_matrix",
1094
- FUNCTION(rb_tensor,2matrix), 0);
1093
+ FUNCTION(rb_tensor,2matrix), 0);
1095
1094
 
1096
1095
  rb_define_method(GSL_TYPE(cgsl_tensor), "subtensor",
1097
- FUNCTION(rb_tensor,subtensor), -1);
1096
+ FUNCTION(rb_tensor,subtensor), -1);
1098
1097
  rb_define_alias(GSL_TYPE(cgsl_tensor), "view", "subtensor");
1099
1098
 
1100
1099
  rb_define_method(GSL_TYPE(cgsl_tensor), "to_s",
1101
- FUNCTION(rb_tensor,to_s), 0);
1100
+ FUNCTION(rb_tensor,to_s), 0);
1102
1101
  rb_define_method(GSL_TYPE(cgsl_tensor), "inspect",
1103
- FUNCTION(rb_tensor,inspect), 0);
1102
+ FUNCTION(rb_tensor,inspect), 0);
1104
1103
 
1105
1104
  rb_define_method(GSL_TYPE(cgsl_tensor), "equal?",
1106
- FUNCTION(rb_tensor,equal), -1);
1105
+ FUNCTION(rb_tensor,equal), -1);
1107
1106
  rb_define_alias(GSL_TYPE(cgsl_tensor), "==", "equal?");
1108
1107
 
1109
1108
  rb_define_method(GSL_TYPE(cgsl_tensor), "coerce",
1110
- FUNCTION(rb_tensor,coerce), 1);
1109
+ FUNCTION(rb_tensor,coerce), 1);
1111
1110
 
1112
- rb_define_method(GSL_TYPE(cgsl_tensor), "info",
1113
- FUNCTION(rb_tensor,info), 0);
1111
+ rb_define_method(GSL_TYPE(cgsl_tensor), "info",
1112
+ FUNCTION(rb_tensor,info), 0);
1114
1113
  }
1115
1114
 
1116
1115
  #undef NUMCONV