rb-gsl 1.16.0.5 → 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 (612) hide show
  1. checksums.yaml +4 -4
  2. data/rb-gsl.gemspec +5 -10
  3. metadata +10 -713
  4. data/.gitignore +0 -12
  5. data/.travis.yml +0 -24
  6. data/AUTHORS +0 -12
  7. data/COPYING +0 -341
  8. data/ChangeLog +0 -621
  9. data/Gemfile +0 -4
  10. data/README.md +0 -77
  11. data/Rakefile +0 -20
  12. data/THANKS +0 -17
  13. data/examples/alf/alf.gp +0 -15
  14. data/examples/alf/alf.rb +0 -32
  15. data/examples/blas/blas.rb +0 -13
  16. data/examples/blas/dnrm2.rb +0 -16
  17. data/examples/blas/level1.rb +0 -81
  18. data/examples/blas/level2.rb +0 -11
  19. data/examples/blas/level3.rb +0 -12
  20. data/examples/bspline.rb +0 -57
  21. data/examples/cdf.rb +0 -16
  22. data/examples/cheb.rb +0 -21
  23. data/examples/combination.rb +0 -23
  24. data/examples/complex/RC-lpf.rb +0 -47
  25. data/examples/complex/add.rb +0 -36
  26. data/examples/complex/coerce.rb +0 -14
  27. data/examples/complex/complex.rb +0 -25
  28. data/examples/complex/fpmi.rb +0 -70
  29. data/examples/complex/functions.rb +0 -77
  30. data/examples/complex/michelson.rb +0 -36
  31. data/examples/complex/mul.rb +0 -28
  32. data/examples/complex/oscillator.rb +0 -17
  33. data/examples/complex/set.rb +0 -37
  34. data/examples/const/physconst.rb +0 -151
  35. data/examples/const/travel.rb +0 -45
  36. data/examples/deriv/demo.rb +0 -13
  37. data/examples/deriv/deriv.rb +0 -36
  38. data/examples/deriv/diff.rb +0 -35
  39. data/examples/dht.rb +0 -42
  40. data/examples/dirac.rb +0 -56
  41. data/examples/eigen/eigen.rb +0 -34
  42. data/examples/eigen/herm.rb +0 -22
  43. data/examples/eigen/narray.rb +0 -9
  44. data/examples/eigen/nonsymm.rb +0 -37
  45. data/examples/eigen/nonsymmv.rb +0 -43
  46. data/examples/eigen/qhoscillator.gp +0 -35
  47. data/examples/eigen/qhoscillator.rb +0 -90
  48. data/examples/eigen/vander.rb +0 -41
  49. data/examples/fft/fft.rb +0 -17
  50. data/examples/fft/fft2.rb +0 -17
  51. data/examples/fft/forward.rb +0 -25
  52. data/examples/fft/forward2.rb +0 -26
  53. data/examples/fft/radix2.rb +0 -18
  54. data/examples/fft/real-halfcomplex.rb +0 -33
  55. data/examples/fft/real-halfcomplex2.rb +0 -30
  56. data/examples/fft/realradix2.rb +0 -19
  57. data/examples/fft/sunspot.dat +0 -256
  58. data/examples/fft/sunspot.rb +0 -16
  59. data/examples/fit/expdata.dat +0 -20
  60. data/examples/fit/expfit.rb +0 -31
  61. data/examples/fit/gaussfit.rb +0 -29
  62. data/examples/fit/gaussian_2peaks.rb +0 -34
  63. data/examples/fit/hillfit.rb +0 -40
  64. data/examples/fit/lognormal.rb +0 -26
  65. data/examples/fit/lorentzfit.rb +0 -22
  66. data/examples/fit/multifit.rb +0 -72
  67. data/examples/fit/ndlinear.rb +0 -133
  68. data/examples/fit/nonlinearfit.rb +0 -89
  69. data/examples/fit/plot.gp +0 -36
  70. data/examples/fit/polyfit.rb +0 -9
  71. data/examples/fit/powerfit.rb +0 -21
  72. data/examples/fit/sigmoidfit.rb +0 -40
  73. data/examples/fit/sinfit.rb +0 -22
  74. data/examples/fit/wlinear.rb +0 -46
  75. data/examples/fresnel.rb +0 -11
  76. data/examples/function/function.rb +0 -36
  77. data/examples/function/log.rb +0 -7
  78. data/examples/function/min.rb +0 -33
  79. data/examples/function/sin.rb +0 -10
  80. data/examples/function/synchrotron.rb +0 -18
  81. data/examples/gallery/butterfly.rb +0 -7
  82. data/examples/gallery/cayley.rb +0 -12
  83. data/examples/gallery/cornu.rb +0 -23
  84. data/examples/gallery/eight.rb +0 -11
  85. data/examples/gallery/koch.rb +0 -40
  86. data/examples/gallery/lemniscate.rb +0 -11
  87. data/examples/gallery/polar.rb +0 -11
  88. data/examples/gallery/rgplot/cossin.rb +0 -35
  89. data/examples/gallery/rgplot/rgplot.replaced +0 -0
  90. data/examples/gallery/rgplot/roesller.rb +0 -55
  91. data/examples/gallery/roesller.rb +0 -39
  92. data/examples/gallery/scarabaeus.rb +0 -14
  93. data/examples/histogram/cauchy.rb +0 -27
  94. data/examples/histogram/cauchy.sh +0 -2
  95. data/examples/histogram/exponential.rb +0 -19
  96. data/examples/histogram/gauss.rb +0 -16
  97. data/examples/histogram/gsl-histogram.rb +0 -40
  98. data/examples/histogram/histo2d.rb +0 -31
  99. data/examples/histogram/histo3d.rb +0 -34
  100. data/examples/histogram/histogram-pdf.rb +0 -27
  101. data/examples/histogram/histogram.rb +0 -26
  102. data/examples/histogram/integral.rb +0 -28
  103. data/examples/histogram/poisson.rb +0 -27
  104. data/examples/histogram/power.rb +0 -25
  105. data/examples/histogram/rebin.rb +0 -17
  106. data/examples/histogram/smp.dat +0 -5
  107. data/examples/histogram/xexp.rb +0 -21
  108. data/examples/integration/ahmed.rb +0 -21
  109. data/examples/integration/cosmology.rb +0 -75
  110. data/examples/integration/friedmann.gp +0 -16
  111. data/examples/integration/friedmann.rb +0 -35
  112. data/examples/integration/gamma-zeta.rb +0 -35
  113. data/examples/integration/integration.rb +0 -22
  114. data/examples/integration/qag.rb +0 -8
  115. data/examples/integration/qag2.rb +0 -14
  116. data/examples/integration/qag3.rb +0 -8
  117. data/examples/integration/qagi.rb +0 -28
  118. data/examples/integration/qagi2.rb +0 -49
  119. data/examples/integration/qagiu.rb +0 -29
  120. data/examples/integration/qagp.rb +0 -20
  121. data/examples/integration/qags.rb +0 -14
  122. data/examples/integration/qawc.rb +0 -18
  123. data/examples/integration/qawf.rb +0 -41
  124. data/examples/integration/qawo.rb +0 -29
  125. data/examples/integration/qaws.rb +0 -30
  126. data/examples/integration/qng.rb +0 -17
  127. data/examples/interp/demo.gp +0 -20
  128. data/examples/interp/demo.rb +0 -45
  129. data/examples/interp/interp.rb +0 -37
  130. data/examples/interp/points +0 -10
  131. data/examples/interp/spline.rb +0 -20
  132. data/examples/jacobi/deriv.rb +0 -40
  133. data/examples/jacobi/integrate.rb +0 -34
  134. data/examples/jacobi/interp.rb +0 -43
  135. data/examples/jacobi/jacobi.rb +0 -11
  136. data/examples/linalg/HH.rb +0 -15
  137. data/examples/linalg/HH_narray.rb +0 -13
  138. data/examples/linalg/LQ_solve.rb +0 -73
  139. data/examples/linalg/LU.rb +0 -84
  140. data/examples/linalg/LU2.rb +0 -31
  141. data/examples/linalg/LU_narray.rb +0 -24
  142. data/examples/linalg/PTLQ.rb +0 -47
  143. data/examples/linalg/QR.rb +0 -18
  144. data/examples/linalg/QRPT.rb +0 -47
  145. data/examples/linalg/QR_solve.rb +0 -78
  146. data/examples/linalg/QR_solve_narray.rb +0 -13
  147. data/examples/linalg/SV.rb +0 -16
  148. data/examples/linalg/SV_narray.rb +0 -12
  149. data/examples/linalg/SV_solve.rb +0 -49
  150. data/examples/linalg/chol.rb +0 -29
  151. data/examples/linalg/chol_narray.rb +0 -15
  152. data/examples/linalg/complex.rb +0 -57
  153. data/examples/linalg/invert_narray.rb +0 -10
  154. data/examples/math/const.rb +0 -67
  155. data/examples/math/elementary.rb +0 -35
  156. data/examples/math/functions.rb +0 -41
  157. data/examples/math/inf_nan.rb +0 -34
  158. data/examples/math/minmax.rb +0 -22
  159. data/examples/math/power.rb +0 -18
  160. data/examples/math/test.rb +0 -31
  161. data/examples/matrix/a.dat +0 -0
  162. data/examples/matrix/add.rb +0 -45
  163. data/examples/matrix/b.dat +0 -4
  164. data/examples/matrix/cat.rb +0 -31
  165. data/examples/matrix/colvectors.rb +0 -24
  166. data/examples/matrix/complex.rb +0 -41
  167. data/examples/matrix/det.rb +0 -29
  168. data/examples/matrix/diagonal.rb +0 -23
  169. data/examples/matrix/get_all.rb +0 -159
  170. data/examples/matrix/hilbert.rb +0 -31
  171. data/examples/matrix/iterator.rb +0 -19
  172. data/examples/matrix/matrix.rb +0 -57
  173. data/examples/matrix/minmax.rb +0 -53
  174. data/examples/matrix/mul.rb +0 -39
  175. data/examples/matrix/rand.rb +0 -20
  176. data/examples/matrix/read.rb +0 -29
  177. data/examples/matrix/rowcol.rb +0 -47
  178. data/examples/matrix/set.rb +0 -41
  179. data/examples/matrix/set_all.rb +0 -100
  180. data/examples/matrix/view.rb +0 -32
  181. data/examples/matrix/view_all.rb +0 -148
  182. data/examples/matrix/write.rb +0 -23
  183. data/examples/min.rb +0 -29
  184. data/examples/monte/miser.rb +0 -47
  185. data/examples/monte/monte.rb +0 -47
  186. data/examples/monte/plain.rb +0 -47
  187. data/examples/monte/vegas.rb +0 -46
  188. data/examples/multimin/bundle.rb +0 -66
  189. data/examples/multimin/cqp.rb +0 -109
  190. data/examples/multimin/fdfminimizer.rb +0 -40
  191. data/examples/multimin/fminimizer.rb +0 -41
  192. data/examples/multiroot/demo.rb +0 -36
  193. data/examples/multiroot/fdfsolver.rb +0 -50
  194. data/examples/multiroot/fsolver.rb +0 -33
  195. data/examples/multiroot/fsolver2.rb +0 -32
  196. data/examples/multiroot/fsolver3.rb +0 -26
  197. data/examples/narray/histogram.rb +0 -14
  198. data/examples/narray/mandel.rb +0 -27
  199. data/examples/narray/narray.rb +0 -28
  200. data/examples/narray/narray2.rb +0 -44
  201. data/examples/narray/sf.rb +0 -26
  202. data/examples/ntuple/create.rb +0 -17
  203. data/examples/ntuple/project.rb +0 -31
  204. data/examples/odeiv/binarysystem.gp +0 -23
  205. data/examples/odeiv/binarysystem.rb +0 -104
  206. data/examples/odeiv/demo.gp +0 -24
  207. data/examples/odeiv/demo.rb +0 -69
  208. data/examples/odeiv/demo2.gp +0 -26
  209. data/examples/odeiv/duffing.rb +0 -45
  210. data/examples/odeiv/frei1.rb +0 -109
  211. data/examples/odeiv/frei2.rb +0 -76
  212. data/examples/odeiv/legendre.rb +0 -52
  213. data/examples/odeiv/odeiv.rb +0 -32
  214. data/examples/odeiv/odeiv2.rb +0 -45
  215. data/examples/odeiv/oscillator.rb +0 -42
  216. data/examples/odeiv/sedov.rb +0 -97
  217. data/examples/odeiv/whitedwarf.gp +0 -40
  218. data/examples/odeiv/whitedwarf.rb +0 -158
  219. data/examples/ool/conmin.rb +0 -100
  220. data/examples/ool/gencan.rb +0 -99
  221. data/examples/ool/pgrad.rb +0 -100
  222. data/examples/ool/spg.rb +0 -100
  223. data/examples/pdf/bernoulli.rb +0 -5
  224. data/examples/pdf/beta.rb +0 -7
  225. data/examples/pdf/binomiral.rb +0 -10
  226. data/examples/pdf/cauchy.rb +0 -6
  227. data/examples/pdf/chisq.rb +0 -8
  228. data/examples/pdf/exponential.rb +0 -7
  229. data/examples/pdf/exppow.rb +0 -6
  230. data/examples/pdf/fdist.rb +0 -7
  231. data/examples/pdf/flat.rb +0 -7
  232. data/examples/pdf/gamma.rb +0 -8
  233. data/examples/pdf/gauss-tail.rb +0 -5
  234. data/examples/pdf/gauss.rb +0 -6
  235. data/examples/pdf/geometric.rb +0 -5
  236. data/examples/pdf/gumbel.rb +0 -6
  237. data/examples/pdf/hypergeometric.rb +0 -11
  238. data/examples/pdf/landau.rb +0 -5
  239. data/examples/pdf/laplace.rb +0 -7
  240. data/examples/pdf/logarithmic.rb +0 -5
  241. data/examples/pdf/logistic.rb +0 -6
  242. data/examples/pdf/lognormal.rb +0 -6
  243. data/examples/pdf/neg-binomiral.rb +0 -10
  244. data/examples/pdf/pareto.rb +0 -7
  245. data/examples/pdf/pascal.rb +0 -10
  246. data/examples/pdf/poisson.rb +0 -5
  247. data/examples/pdf/rayleigh-tail.rb +0 -6
  248. data/examples/pdf/rayleigh.rb +0 -6
  249. data/examples/pdf/tdist.rb +0 -6
  250. data/examples/pdf/weibull.rb +0 -8
  251. data/examples/permutation/ex1.rb +0 -22
  252. data/examples/permutation/permutation.rb +0 -16
  253. data/examples/poly/bell.rb +0 -6
  254. data/examples/poly/bessel.rb +0 -6
  255. data/examples/poly/cheb.rb +0 -6
  256. data/examples/poly/cheb_II.rb +0 -6
  257. data/examples/poly/cubic.rb +0 -9
  258. data/examples/poly/demo.rb +0 -20
  259. data/examples/poly/eval.rb +0 -28
  260. data/examples/poly/eval_derivs.rb +0 -14
  261. data/examples/poly/fit.rb +0 -21
  262. data/examples/poly/hermite.rb +0 -6
  263. data/examples/poly/poly.rb +0 -13
  264. data/examples/poly/quadratic.rb +0 -25
  265. data/examples/random/diffusion.rb +0 -34
  266. data/examples/random/gaussian.rb +0 -9
  267. data/examples/random/generator.rb +0 -27
  268. data/examples/random/hdsobol.rb +0 -21
  269. data/examples/random/poisson.rb +0 -9
  270. data/examples/random/qrng.rb +0 -19
  271. data/examples/random/randomwalk.rb +0 -37
  272. data/examples/random/randomwalk2d.rb +0 -19
  273. data/examples/random/rayleigh.rb +0 -36
  274. data/examples/random/rng.rb +0 -33
  275. data/examples/random/rngextra.rb +0 -14
  276. data/examples/roots/bisection.rb +0 -25
  277. data/examples/roots/brent.rb +0 -43
  278. data/examples/roots/demo.rb +0 -30
  279. data/examples/roots/newton.rb +0 -46
  280. data/examples/roots/recombination.gp +0 -11
  281. data/examples/roots/recombination.rb +0 -61
  282. data/examples/roots/steffenson.rb +0 -48
  283. data/examples/sf/ShiChi.rb +0 -6
  284. data/examples/sf/SiCi.rb +0 -6
  285. data/examples/sf/airy_Ai.rb +0 -8
  286. data/examples/sf/airy_Bi.rb +0 -8
  287. data/examples/sf/bessel_IK.rb +0 -12
  288. data/examples/sf/bessel_JY.rb +0 -13
  289. data/examples/sf/beta_inc.rb +0 -9
  290. data/examples/sf/clausen.rb +0 -6
  291. data/examples/sf/dawson.rb +0 -5
  292. data/examples/sf/debye.rb +0 -9
  293. data/examples/sf/dilog.rb +0 -6
  294. data/examples/sf/ellint.rb +0 -6
  295. data/examples/sf/expint.rb +0 -8
  296. data/examples/sf/fermi.rb +0 -10
  297. data/examples/sf/gamma_inc_P.rb +0 -9
  298. data/examples/sf/gegenbauer.rb +0 -8
  299. data/examples/sf/hyperg.rb +0 -7
  300. data/examples/sf/laguerre.rb +0 -19
  301. data/examples/sf/lambertW.rb +0 -5
  302. data/examples/sf/legendre_P.rb +0 -10
  303. data/examples/sf/lngamma.rb +0 -5
  304. data/examples/sf/psi.rb +0 -54
  305. data/examples/sf/sphbessel.gp +0 -27
  306. data/examples/sf/sphbessel.rb +0 -30
  307. data/examples/sf/synchrotron.rb +0 -5
  308. data/examples/sf/transport.rb +0 -10
  309. data/examples/sf/zetam1.rb +0 -5
  310. data/examples/siman.rb +0 -44
  311. data/examples/sort/heapsort.rb +0 -23
  312. data/examples/sort/heapsort_vector_complex.rb +0 -21
  313. data/examples/sort/sort.rb +0 -23
  314. data/examples/sort/sort2.rb +0 -16
  315. data/examples/stats/mean.rb +0 -17
  316. data/examples/stats/statistics.rb +0 -18
  317. data/examples/stats/test.rb +0 -9
  318. data/examples/sum.rb +0 -34
  319. data/examples/tamu_anova.rb +0 -18
  320. data/examples/vector/a.dat +0 -0
  321. data/examples/vector/add.rb +0 -56
  322. data/examples/vector/b.dat +0 -4
  323. data/examples/vector/c.dat +0 -3
  324. data/examples/vector/collect.rb +0 -26
  325. data/examples/vector/compare.rb +0 -28
  326. data/examples/vector/complex.rb +0 -51
  327. data/examples/vector/complex_get_all.rb +0 -85
  328. data/examples/vector/complex_set_all.rb +0 -131
  329. data/examples/vector/complex_view_all.rb +0 -77
  330. data/examples/vector/connect.rb +0 -22
  331. data/examples/vector/decimate.rb +0 -38
  332. data/examples/vector/diff.rb +0 -31
  333. data/examples/vector/filescan.rb +0 -17
  334. data/examples/vector/floor.rb +0 -23
  335. data/examples/vector/get_all.rb +0 -82
  336. data/examples/vector/gnuplot.rb +0 -38
  337. data/examples/vector/graph.rb +0 -28
  338. data/examples/vector/histogram.rb +0 -22
  339. data/examples/vector/linspace.rb +0 -24
  340. data/examples/vector/log.rb +0 -17
  341. data/examples/vector/logic.rb +0 -33
  342. data/examples/vector/logspace.rb +0 -25
  343. data/examples/vector/minmax.rb +0 -47
  344. data/examples/vector/mul.rb +0 -49
  345. data/examples/vector/narray.rb +0 -46
  346. data/examples/vector/read.rb +0 -29
  347. data/examples/vector/set.rb +0 -35
  348. data/examples/vector/set_all.rb +0 -121
  349. data/examples/vector/smpv.dat +0 -15
  350. data/examples/vector/test.rb +0 -43
  351. data/examples/vector/test_gslblock.rb +0 -58
  352. data/examples/vector/vector.rb +0 -110
  353. data/examples/vector/view.rb +0 -35
  354. data/examples/vector/view_all.rb +0 -73
  355. data/examples/vector/where.rb +0 -29
  356. data/examples/vector/write.rb +0 -24
  357. data/examples/vector/zip.rb +0 -34
  358. data/examples/wavelet/ecg.dat +0 -256
  359. data/examples/wavelet/wavelet1.rb +0 -50
  360. data/ext/gsl_native/alf.c +0 -206
  361. data/ext/gsl_native/array.c +0 -553
  362. data/ext/gsl_native/array_complex.c +0 -245
  363. data/ext/gsl_native/blas.c +0 -28
  364. data/ext/gsl_native/blas1.c +0 -733
  365. data/ext/gsl_native/blas2.c +0 -1088
  366. data/ext/gsl_native/blas3.c +0 -880
  367. data/ext/gsl_native/block.c +0 -40
  368. data/ext/gsl_native/block_source.h +0 -885
  369. data/ext/gsl_native/bspline.c +0 -122
  370. data/ext/gsl_native/bundle.c +0 -3
  371. data/ext/gsl_native/cdf.c +0 -740
  372. data/ext/gsl_native/cheb.c +0 -531
  373. data/ext/gsl_native/combination.c +0 -275
  374. data/ext/gsl_native/common.c +0 -293
  375. data/ext/gsl_native/complex.c +0 -1002
  376. data/ext/gsl_native/const.c +0 -331
  377. data/ext/gsl_native/const_additional.c +0 -99
  378. data/ext/gsl_native/cqp.c +0 -283
  379. data/ext/gsl_native/deriv.c +0 -187
  380. data/ext/gsl_native/dht.c +0 -353
  381. data/ext/gsl_native/diff.c +0 -164
  382. data/ext/gsl_native/dirac.c +0 -388
  383. data/ext/gsl_native/eigen.c +0 -2322
  384. data/ext/gsl_native/error.c +0 -193
  385. data/ext/gsl_native/extconf.rb +0 -118
  386. data/ext/gsl_native/fft.c +0 -1095
  387. data/ext/gsl_native/fit.c +0 -204
  388. data/ext/gsl_native/fresnel.c +0 -312
  389. data/ext/gsl_native/function.c +0 -518
  390. data/ext/gsl_native/geometry.c +0 -139
  391. data/ext/gsl_native/graph.c +0 -1590
  392. data/ext/gsl_native/gsl.c +0 -259
  393. data/ext/gsl_native/gsl_narray.c +0 -794
  394. data/ext/gsl_native/histogram.c +0 -1964
  395. data/ext/gsl_native/histogram2d.c +0 -1042
  396. data/ext/gsl_native/histogram3d.c +0 -884
  397. data/ext/gsl_native/histogram3d_source.c +0 -749
  398. data/ext/gsl_native/histogram_find.c +0 -99
  399. data/ext/gsl_native/histogram_oper.c +0 -150
  400. data/ext/gsl_native/ieee.c +0 -88
  401. data/ext/gsl_native/include/rb_gsl.h +0 -136
  402. data/ext/gsl_native/include/rb_gsl_array.h +0 -214
  403. data/ext/gsl_native/include/rb_gsl_cheb.h +0 -19
  404. data/ext/gsl_native/include/rb_gsl_common.h +0 -348
  405. data/ext/gsl_native/include/rb_gsl_complex.h +0 -25
  406. data/ext/gsl_native/include/rb_gsl_const.h +0 -23
  407. data/ext/gsl_native/include/rb_gsl_dirac.h +0 -6
  408. data/ext/gsl_native/include/rb_gsl_eigen.h +0 -17
  409. data/ext/gsl_native/include/rb_gsl_fft.h +0 -49
  410. data/ext/gsl_native/include/rb_gsl_fit.h +0 -23
  411. data/ext/gsl_native/include/rb_gsl_function.h +0 -23
  412. data/ext/gsl_native/include/rb_gsl_graph.h +0 -68
  413. data/ext/gsl_native/include/rb_gsl_histogram.h +0 -63
  414. data/ext/gsl_native/include/rb_gsl_histogram3d.h +0 -97
  415. data/ext/gsl_native/include/rb_gsl_integration.h +0 -17
  416. data/ext/gsl_native/include/rb_gsl_interp.h +0 -41
  417. data/ext/gsl_native/include/rb_gsl_linalg.h +0 -21
  418. data/ext/gsl_native/include/rb_gsl_math.h +0 -20
  419. data/ext/gsl_native/include/rb_gsl_odeiv.h +0 -18
  420. data/ext/gsl_native/include/rb_gsl_poly.h +0 -67
  421. data/ext/gsl_native/include/rb_gsl_rational.h +0 -30
  422. data/ext/gsl_native/include/rb_gsl_rng.h +0 -20
  423. data/ext/gsl_native/include/rb_gsl_root.h +0 -22
  424. data/ext/gsl_native/include/rb_gsl_sf.h +0 -110
  425. data/ext/gsl_native/include/rb_gsl_statistics.h +0 -17
  426. data/ext/gsl_native/include/rb_gsl_tensor.h +0 -43
  427. data/ext/gsl_native/include/rb_gsl_with_narray.h +0 -31
  428. data/ext/gsl_native/include/templates_off.h +0 -87
  429. data/ext/gsl_native/include/templates_on.h +0 -241
  430. data/ext/gsl_native/integration.c +0 -1154
  431. data/ext/gsl_native/interp.c +0 -499
  432. data/ext/gsl_native/jacobi.c +0 -733
  433. data/ext/gsl_native/linalg.c +0 -3915
  434. data/ext/gsl_native/linalg_complex.c +0 -726
  435. data/ext/gsl_native/math.c +0 -706
  436. data/ext/gsl_native/matrix.c +0 -36
  437. data/ext/gsl_native/matrix_complex.c +0 -1733
  438. data/ext/gsl_native/matrix_double.c +0 -557
  439. data/ext/gsl_native/matrix_int.c +0 -255
  440. data/ext/gsl_native/matrix_source.h +0 -2708
  441. data/ext/gsl_native/min.c +0 -219
  442. data/ext/gsl_native/monte.c +0 -978
  443. data/ext/gsl_native/multifit.c +0 -1862
  444. data/ext/gsl_native/multimin.c +0 -778
  445. data/ext/gsl_native/multimin_fsdf.c +0 -156
  446. data/ext/gsl_native/multiroots.c +0 -952
  447. data/ext/gsl_native/multiset.c +0 -210
  448. data/ext/gsl_native/ndlinear.c +0 -320
  449. data/ext/gsl_native/nmf.c +0 -171
  450. data/ext/gsl_native/nmf_wrap.c +0 -75
  451. data/ext/gsl_native/ntuple.c +0 -469
  452. data/ext/gsl_native/odeiv.c +0 -947
  453. data/ext/gsl_native/ool.c +0 -879
  454. data/ext/gsl_native/permutation.c +0 -598
  455. data/ext/gsl_native/poly.c +0 -39
  456. data/ext/gsl_native/poly2.c +0 -265
  457. data/ext/gsl_native/poly_source.h +0 -1871
  458. data/ext/gsl_native/qrng.c +0 -160
  459. data/ext/gsl_native/randist.c +0 -1848
  460. data/ext/gsl_native/rational.c +0 -480
  461. data/ext/gsl_native/rng.c +0 -595
  462. data/ext/gsl_native/root.c +0 -407
  463. data/ext/gsl_native/sf.c +0 -1446
  464. data/ext/gsl_native/sf_airy.c +0 -200
  465. data/ext/gsl_native/sf_bessel.c +0 -871
  466. data/ext/gsl_native/sf_clausen.c +0 -28
  467. data/ext/gsl_native/sf_coulomb.c +0 -206
  468. data/ext/gsl_native/sf_coupling.c +0 -121
  469. data/ext/gsl_native/sf_dawson.c +0 -29
  470. data/ext/gsl_native/sf_debye.c +0 -148
  471. data/ext/gsl_native/sf_dilog.c +0 -43
  472. data/ext/gsl_native/sf_elementary.c +0 -46
  473. data/ext/gsl_native/sf_ellint.c +0 -206
  474. data/ext/gsl_native/sf_elljac.c +0 -30
  475. data/ext/gsl_native/sf_erfc.c +0 -89
  476. data/ext/gsl_native/sf_exp.c +0 -169
  477. data/ext/gsl_native/sf_expint.c +0 -201
  478. data/ext/gsl_native/sf_fermi_dirac.c +0 -148
  479. data/ext/gsl_native/sf_gamma.c +0 -343
  480. data/ext/gsl_native/sf_gegenbauer.c +0 -97
  481. data/ext/gsl_native/sf_hyperg.c +0 -203
  482. data/ext/gsl_native/sf_laguerre.c +0 -113
  483. data/ext/gsl_native/sf_lambert.c +0 -47
  484. data/ext/gsl_native/sf_legendre.c +0 -368
  485. data/ext/gsl_native/sf_log.c +0 -105
  486. data/ext/gsl_native/sf_mathieu.c +0 -235
  487. data/ext/gsl_native/sf_power.c +0 -47
  488. data/ext/gsl_native/sf_psi.c +0 -89
  489. data/ext/gsl_native/sf_synchrotron.c +0 -48
  490. data/ext/gsl_native/sf_transport.c +0 -76
  491. data/ext/gsl_native/sf_trigonometric.c +0 -210
  492. data/ext/gsl_native/sf_zeta.c +0 -115
  493. data/ext/gsl_native/signal.c +0 -303
  494. data/ext/gsl_native/siman.c +0 -713
  495. data/ext/gsl_native/sort.c +0 -207
  496. data/ext/gsl_native/spline.c +0 -377
  497. data/ext/gsl_native/stats.c +0 -787
  498. data/ext/gsl_native/sum.c +0 -168
  499. data/ext/gsl_native/tamu_anova.c +0 -56
  500. data/ext/gsl_native/tensor.c +0 -35
  501. data/ext/gsl_native/tensor_source.h +0 -1122
  502. data/ext/gsl_native/vector.c +0 -35
  503. data/ext/gsl_native/vector_complex.c +0 -2241
  504. data/ext/gsl_native/vector_double.c +0 -1433
  505. data/ext/gsl_native/vector_int.c +0 -202
  506. data/ext/gsl_native/vector_source.h +0 -3321
  507. data/ext/gsl_native/wavelet.c +0 -923
  508. data/lib/gsl.rb +0 -8
  509. data/lib/gsl/gnuplot.rb +0 -41
  510. data/lib/gsl/oper.rb +0 -43
  511. data/lib/gsl/version.rb +0 -3
  512. data/lib/ool.rb +0 -22
  513. data/lib/ool/conmin.rb +0 -30
  514. data/lib/rbgsl.rb +0 -1
  515. data/rdoc/alf.rdoc +0 -77
  516. data/rdoc/blas.rdoc +0 -269
  517. data/rdoc/bspline.rdoc +0 -42
  518. data/rdoc/changes.rdoc +0 -159
  519. data/rdoc/cheb.rdoc +0 -99
  520. data/rdoc/cholesky_complex.rdoc +0 -46
  521. data/rdoc/combi.rdoc +0 -125
  522. data/rdoc/complex.rdoc +0 -210
  523. data/rdoc/const.rdoc +0 -546
  524. data/rdoc/dht.rdoc +0 -122
  525. data/rdoc/diff.rdoc +0 -133
  526. data/rdoc/ehandling.rdoc +0 -50
  527. data/rdoc/eigen.rdoc +0 -401
  528. data/rdoc/fft.rdoc +0 -535
  529. data/rdoc/fit.rdoc +0 -284
  530. data/rdoc/function.rdoc +0 -94
  531. data/rdoc/graph.rdoc +0 -137
  532. data/rdoc/hist.rdoc +0 -409
  533. data/rdoc/hist2d.rdoc +0 -279
  534. data/rdoc/hist3d.rdoc +0 -112
  535. data/rdoc/integration.rdoc +0 -398
  536. data/rdoc/interp.rdoc +0 -231
  537. data/rdoc/intro.rdoc +0 -27
  538. data/rdoc/linalg.rdoc +0 -681
  539. data/rdoc/linalg_complex.rdoc +0 -88
  540. data/rdoc/math.rdoc +0 -276
  541. data/rdoc/matrix.rdoc +0 -1093
  542. data/rdoc/min.rdoc +0 -189
  543. data/rdoc/monte.rdoc +0 -234
  544. data/rdoc/multimin.rdoc +0 -312
  545. data/rdoc/multiroot.rdoc +0 -293
  546. data/rdoc/narray.rdoc +0 -177
  547. data/rdoc/ndlinear.rdoc +0 -250
  548. data/rdoc/nonlinearfit.rdoc +0 -348
  549. data/rdoc/ntuple.rdoc +0 -88
  550. data/rdoc/odeiv.rdoc +0 -378
  551. data/rdoc/perm.rdoc +0 -221
  552. data/rdoc/poly.rdoc +0 -335
  553. data/rdoc/qrng.rdoc +0 -90
  554. data/rdoc/randist.rdoc +0 -233
  555. data/rdoc/ref.rdoc +0 -93
  556. data/rdoc/rng.rdoc +0 -203
  557. data/rdoc/roots.rdoc +0 -305
  558. data/rdoc/sf.rdoc +0 -1622
  559. data/rdoc/siman.rdoc +0 -89
  560. data/rdoc/sort.rdoc +0 -94
  561. data/rdoc/start.rdoc +0 -16
  562. data/rdoc/stats.rdoc +0 -219
  563. data/rdoc/sum.rdoc +0 -65
  564. data/rdoc/tensor.rdoc +0 -251
  565. data/rdoc/tut.rdoc +0 -5
  566. data/rdoc/use.rdoc +0 -177
  567. data/rdoc/vector.rdoc +0 -1243
  568. data/rdoc/vector_complex.rdoc +0 -347
  569. data/rdoc/wavelet.rdoc +0 -218
  570. data/test/gsl/blas_test.rb +0 -79
  571. data/test/gsl/bspline_test.rb +0 -63
  572. data/test/gsl/cdf_test.rb +0 -1512
  573. data/test/gsl/cheb_test.rb +0 -80
  574. data/test/gsl/combination_test.rb +0 -100
  575. data/test/gsl/complex_test.rb +0 -20
  576. data/test/gsl/const_test.rb +0 -29
  577. data/test/gsl/deriv_test.rb +0 -62
  578. data/test/gsl/dht_test.rb +0 -79
  579. data/test/gsl/diff_test.rb +0 -53
  580. data/test/gsl/eigen_test.rb +0 -563
  581. data/test/gsl/err_test.rb +0 -23
  582. data/test/gsl/fit_test.rb +0 -101
  583. data/test/gsl/histo_test.rb +0 -14
  584. data/test/gsl/index_test.rb +0 -61
  585. data/test/gsl/integration_test.rb +0 -274
  586. data/test/gsl/interp_test.rb +0 -27
  587. data/test/gsl/linalg_test.rb +0 -463
  588. data/test/gsl/matrix_nmf_test.rb +0 -37
  589. data/test/gsl/matrix_test.rb +0 -98
  590. data/test/gsl/min_test.rb +0 -89
  591. data/test/gsl/monte_test.rb +0 -77
  592. data/test/gsl/multifit_test.rb +0 -753
  593. data/test/gsl/multimin_test.rb +0 -157
  594. data/test/gsl/multiroot_test.rb +0 -135
  595. data/test/gsl/multiset_test.rb +0 -52
  596. data/test/gsl/odeiv_test.rb +0 -275
  597. data/test/gsl/oper_test.rb +0 -98
  598. data/test/gsl/poly_test.rb +0 -338
  599. data/test/gsl/qrng_test.rb +0 -94
  600. data/test/gsl/quartic_test.rb +0 -28
  601. data/test/gsl/randist_test.rb +0 -122
  602. data/test/gsl/rng_test.rb +0 -303
  603. data/test/gsl/roots_test.rb +0 -78
  604. data/test/gsl/sf_test.rb +0 -2079
  605. data/test/gsl/stats_test.rb +0 -122
  606. data/test/gsl/sum_test.rb +0 -69
  607. data/test/gsl/tensor_test.rb +0 -396
  608. data/test/gsl/vector_test.rb +0 -223
  609. data/test/gsl/wavelet_test.rb +0 -130
  610. data/test/gsl_test.rb +0 -321
  611. data/test/test_helper.rb +0 -42
  612. data/uncrustify.cfg +0 -1693
@@ -1,122 +0,0 @@
1
- require 'test_helper'
2
-
3
- class StatsTest < GSL::TestCase
4
-
5
- def test_stats
6
- lew = GSL::Vector.alloc(
7
- -213, -564, -35, -15, 141, 115, -420, -360, 203, -338, -431, 194,
8
- -220, -513, 154, -125, -559, 92, -21, -579, -52, 99, -543, -175,
9
- 162, -457, -346, 204, -300, -474, 164, -107, -572, -8, 83, -541,
10
- -224, 180, -420, -374, 201, -236, -531, 83, 27, -564, -112, 131,
11
- -507, -254, 199, -311, -495, 143, -46, -579, -90, 136, -472, -338,
12
- 202, -287, -477, 169, -124, -568, 17, 48, -568, -135, 162, -430,
13
- -422, 172, -74, -577, -13, 92, -534, -243, 194, -355, -465, 156,
14
- -81, -578, -64, 139, -449, -384, 193, -198, -538, 110, -44, -577,
15
- -6, 66, -552, -164, 161, -460, -344, 205, -281, -504, 134, -28,
16
- -576, -118, 156, -437, -381, 200, -220, -540, 83, 11, -568, -160,
17
- 172, -414, -408, 188, -125, -572, -32, 139, -492, -321, 205, -262,
18
- -504, 142, -83, -574, 0, 48, -571, -106, 137, -501, -266, 190,
19
- -391, -406, 194, -186, -553, 83, -13, -577, -49, 103, -515, -280,
20
- 201, 300, -506, 131, -45, -578, -80, 138, -462, -361, 201, -211,
21
- -554, 32, 74, -533, -235, 187, -372, -442, 182, -147, -566, 25,
22
- 68, -535, -244, 194, -351, -463, 174, -125, -570, 15, 72, -550,
23
- -190, 172, -424, -385, 198, -218, -536, 96
24
- )
25
-
26
- mean = lew.mean
27
- sd = lew.sd
28
- lag1 = lew.lag1_autocorrelation
29
-
30
- assert_rel mean, -177.435000000000, 1e-15, 'lew gsl_stats_mean'
31
- assert_rel sd, 277.332168044316, 1e-15, 'lew gsl_stats_sd'
32
- assert_rel lag1, -0.307304800605679, 1e-14, 'lew autocorrelation'
33
-
34
- rel = 1e-10
35
-
36
- rawa = GSL::Vector.alloc(
37
- 0.0421, 0.0941, 0.1064, 0.0242, 0.1331,
38
- 0.0773, 0.0243, 0.0815, 0.1186, 0.0356,
39
- 0.0728, 0.0999, 0.0614, 0.0479
40
- )
41
-
42
- rawb = GSL::Vector.alloc(
43
- 0.1081, 0.0986, 0.1566, 0.1961, 0.1125,
44
- 0.1942, 0.1079, 0.1021, 0.1583, 0.1673,
45
- 0.1675, 0.1856, 0.1688, 0.1512
46
- )
47
-
48
- raww = GSL::Vector.alloc(
49
- 0.0000, 0.0000, 0.0000, 3.000, 0.0000,
50
- 1.0000, 1.0000, 1.0000, 0.000, 0.5000,
51
- 7.0000, 5.0000, 4.0000, 0.123
52
- )
53
-
54
- assert_rel mean = rawa.mean, 0.0728, rel, 'gsl_stats_mean'
55
-
56
- assert_rel rawa.variance_with_fixed_mean(mean), 0.00113837428571429,
57
- rel, 'gsl_stats_variance_with_fixed_mean'
58
-
59
- assert_rel rawa.sd_with_fixed_mean(mean), 0.0337398026922845,
60
- rel, 'gsl_stats_sd_with_fixed_mean'
61
-
62
- assert_rel rawb.variance, 0.00124956615384615, rel, 'gsl_stats_variance'
63
- assert_rel rawa.sd, 0.0350134479659107, rel, 'gsl_stats_sd'
64
- assert_rel rawa.absdev, 0.0287571428571429, rel, 'gsl_stats_absdev'
65
- assert_rel rawa.skew, 0.0954642051479004, rel, 'gsl_stats_skew'
66
- assert_rel rawa.kurtosis, -1.38583851548909, rel, 'gsl_stats_kurtosis'
67
- assert_rel rawa.wmean(raww), 0.0678111523670601, rel, 'gsl_stats_wmean'
68
- assert_rel rawa.wvariance(raww), 0.000769562962860317, rel, 'gsl_stats_wvariance'
69
- assert_rel rawa.wsd(raww), 0.0277409978706664, rel, 'gsl_stats_wsd'
70
- assert_rel rawa.wabsdev(raww), 0.0193205027504008, rel, 'gsl_stats_wabsdev'
71
- assert_rel rawa.wskew(raww), -0.373631000307076, rel, 'gsl_stats_wskew'
72
- assert_rel rawa.wkurtosis(raww), -1.48114233353963, rel, 'gsl_stats_wkurtosis'
73
-
74
- assert_rel GSL::Stats.covariance(rawa, rawb), -0.000139021538461539, rel, 'gsl_stats_covariance'
75
-
76
- if GSL::GSL_VERSION >= '1.9.90'
77
- assert_rel GSL::Stats.correlation(rawa, rawb), -0.112322712666074171, rel, 'gsl_stats_correlation'
78
- assert_rel GSL::Stats.pvariance(rawa, rawb), 0.00123775384615385, rel, 'gsl_stats_pvariance'
79
- assert_rel GSL::Stats.ttest(rawa, rawb), -5.67026326985851, rel, 'gsl_stats_ttest'
80
- end
81
-
82
- assert_rel rawa.max, 0.1331, rel, 'gsl_stats_max'
83
- assert_rel rawa.min, 0.0242, rel, 'gsl_stats_min'
84
-
85
- min, max = rawa.minmax
86
- assert_rel max, 0.1331, rel, 'gsl_stats_minmax: max'
87
- assert_rel min, 0.0242, rel, 'gsl_stats_minmax: min'
88
-
89
- assert rawa.max_index == 4, 'gsl_stats_max_index'
90
- assert rawa.min_index == 3, 'gsl_stats_min_index'
91
-
92
- min_index, max_index = rawa.minmax_index
93
- assert max_index == 4, 'gsl_stats_minmax_index: max'
94
- assert min_index == 3, 'gsl_stats_minmax_index: min'
95
-
96
- rawa.sort!
97
-
98
- assert_rel rawa.median_from_sorted_data, 0.07505,
99
- rel, 'gsl_stats_median_from_sorted_data'
100
-
101
- assert_rel rawa.subvector(0, rawa.size - 1).median_from_sorted_data, 0.0728,
102
- rel, 'gsl_stats_median_from_sorted_data'
103
-
104
- assert_rel rawa.quantile_from_sorted_data(0.0), 0.0242,
105
- rel, 'gsl_stats_quantile_from_sorted_data'
106
-
107
- assert_rel rawa.quantile_from_sorted_data(1.0), 0.1331,
108
- rel, 'gsl_stats_quantile_from_sorted_data (100)'
109
-
110
- assert_rel rawa.quantile_from_sorted_data(0.5), 0.07505,
111
- rel, 'gsl_stats_quantile_from_sorted_data (50even)'
112
-
113
- assert_rel rawa.subvector(0, rawa.size-1).quantile_from_sorted_data(0.5), 0.0728,
114
- rel, 'gsl_stats_quantile_from_sorted_data (50odd)'
115
- end
116
-
117
- def test_variance_with_fixed_mean
118
- v = GSL::Vector[1..8]
119
- assert_raises(ArgumentError, 'check for no args') { v.variance_with_fixed_mean }
120
- end
121
-
122
- end
@@ -1,69 +0,0 @@
1
- require 'test_helper'
2
-
3
- class SumTest < GSL::TestCase
4
-
5
- N = 50
6
-
7
- def setup
8
- @t = GSL::Vector.alloc(N)
9
- N.times { |n| @t[n] = 1.0 / (n + 1.0) ** 2 }
10
- end
11
-
12
- def _fill_vector(x = 1.0)
13
- @t[0] = x
14
- 1.upto(N - 1) { |n| @t[n] = yield n, @t[n - 1] }
15
- end
16
-
17
- def _test_sum(expected, desc)
18
- sum_accel, _ = GSL::Sum::Levin_utrunc.alloc(N).accel(@t)
19
- assert_rel sum_accel, expected, 1e-8, 'trunc result, %s' % desc
20
-
21
- sum_accel, err_est, = GSL::Sum::Levin_u.alloc(N).accel(@t)
22
- assert_rel sum_accel, expected, 1e-8, 'full result, %s' % desc
23
-
24
- sd_est = -Math.log10(err_est / sum_accel.abs)
25
- sd_actual = -Math.log10(GSL::DBL_EPSILON + ((sum_accel - expected) / expected).abs)
26
-
27
- refute sd_est > sd_actual + 1.0,
28
- 'full significant digits, %s (%g vs %g)' % [desc, sd_est, sd_actual]
29
- end
30
-
31
- def test_zeta_2
32
- _test_sum(GSL::M_PI ** 2 / 6.0, 'zeta(2)')
33
- end
34
-
35
- def test_exp_10(x = 10.0)
36
- _fill_vector { |n, t| t * (x / n) }
37
- _test_sum(Math.exp(x), 'exp(%d)' % x)
38
- end
39
-
40
- def test_exp_neg_10
41
- test_exp_10(-10.0)
42
- end
43
-
44
- def test_log(x = 0.5)
45
- _fill_vector(x) { |n, t| t * (x * n) / (n + 1.0) }
46
- _test_sum(-Math.log(1 - x), "-log(#{1 - x})")
47
- end
48
-
49
- def test_log2
50
- test_log(-1.0)
51
- end
52
-
53
- def test_asymptotic_series
54
- m = GSL::M_PI ** 2
55
- _fill_vector(3.0 / m) { |n, t| -t * (4.0 * (n + 1.0) - 1.0) / m }
56
- _test_sum(0.192594048773, 'asymptotic series')
57
- end
58
-
59
- def test_eulers_constant
60
- _fill_vector { |n, _| 1 / (n + 1.0) + Math.log(n / (n + 1.0)) }
61
- _test_sum(0.5772156649015328606065120900824, "Euler's constant")
62
- end
63
-
64
- def test_eta
65
- N.times { |n| @t[n] = (n % 2 == 1 ? -1 : 1) * 1.0 / GSL.sqrt(n + 1.0) }
66
- _test_sum(0.6048986434216305, 'eta(1/2)')
67
- end
68
-
69
- end
@@ -1,396 +0,0 @@
1
- require 'test_helper'
2
-
3
- class TensorTest < GSL::TestCase
4
-
5
- RANK = 3
6
- DIMENSION = 5
7
-
8
- def test_tensor
9
- return unless GSL.const_defined?(:Tensor)
10
-
11
- t = GSL::Tensor.alloc(RANK, DIMENSION)
12
-
13
- assert t.rank == RANK, "#{t.class}.alloc returns valid rank"
14
- assert t.dimension == DIMENSION, "#{t.class}_alloc returns valid dimension"
15
-
16
- counter = 0
17
- for i in 0...DIMENSION do
18
- for j in 0...DIMENSION do
19
- for k in 0...DIMENSION do
20
- counter += 1
21
- t.set(i, j, k, counter)
22
- # t[i, j, k] = counter
23
- end
24
- end
25
- end
26
-
27
- status = 0
28
- counter = 0
29
- data = t.data # GSL::Vector::View
30
- for i in 0...DIMENSION do
31
- for j in 0...DIMENSION do
32
- for k in 0...DIMENSION do
33
- counter += 1
34
- if data[DIMENSION * DIMENSION * i + DIMENSION * j + k] != counter
35
- status += 1
36
- end
37
- end
38
- end
39
- end
40
-
41
- assert status.zero?, "#{t.class}#set writes into array"
42
-
43
- status = 0
44
- counter = 0
45
- data = t.data
46
- for i in 0...DIMENSION do
47
- for j in 0...DIMENSION do
48
- for k in 0...DIMENSION do
49
- counter += 1
50
- # if t.get(i, j, k) != counter
51
- if t[i, j, k] != counter
52
- status += 1
53
- end
54
- end
55
- end
56
- end
57
-
58
- assert status.zero?, "#{t.class}#get reads from array"
59
-
60
- t = GSL::Tensor.calloc(RANK, DIMENSION)
61
-
62
- counter = 0
63
- for i in 0...DIMENSION do
64
- for j in 0...DIMENSION do
65
- for k in 0...DIMENSION do
66
- counter += 1
67
- t.set(i, j, k, counter)
68
- end
69
- end
70
- end
71
-
72
- exp_max = t[0, 0, 0]
73
- exp_min = t[0, 0, 0]
74
- exp_imax = exp_jmax = exp_kmax = 0
75
- exp_imin = exp_jmin = exp_kmin = 0
76
-
77
- for i in 0...DIMENSION do
78
- for j in 0...DIMENSION do
79
- for k in 0...DIMENSION do
80
- value = t[i, j, k]
81
- if value > exp_max
82
- exp_max = value
83
- exp_imax = i; exp_jmax = j; exp_kmax = k
84
- end
85
- if value < exp_min
86
- exp_min = t[i, j, k]
87
- exp_imin = i; exp_jmin = j; exp_kmin = k
88
- end
89
- end
90
- end
91
- end
92
-
93
- max = t.max
94
- assert max == exp_max, "#{t.class}#max returns correct maximum value"
95
- min = t.min
96
- assert min == exp_min, "#{t.class}#min returns correct minimum value"
97
-
98
- min, max = t.minmax
99
- assert max == exp_max, "#{t.class}#minmax returns correct maximum value"
100
- assert min == exp_min, "#{t.class}#minmax returns correct minimum value"
101
-
102
- imax = t.max_index
103
- status = 0
104
- if imax[0] != exp_imax; status += 1; end
105
- if imax[1] != exp_jmax; status += 1; end
106
- if imax[2] != exp_kmax; status += 1; end
107
- assert status.zero?, "#{t.class}#max_index returns correct maximum indices"
108
-
109
- imin = t.min_index
110
- status = 0
111
- if imin[0] != exp_imin; status += 1; end
112
- if imin[1] != exp_jmin; status += 1; end
113
- if imin[2] != exp_kmin; status += 1; end
114
- assert status.zero?, "#{t.class}#min_index returns correct minimum indices"
115
-
116
-
117
- imin, imax = t.minmax_index
118
- status = 0
119
- if imin[0] != exp_imin; status += 1; end
120
- if imin[1] != exp_jmin; status += 1; end
121
- if imin[2] != exp_kmin; status += 1; end
122
- if imax[0] != exp_imax; status += 1; end
123
- if imax[1] != exp_jmax; status += 1; end
124
- if imax[2] != exp_kmax; status += 1; end
125
- assert status.zero?, "#{t.class}#minmax_index returns correct indices"
126
-
127
- ##### Operations
128
- a = GSL::Tensor.new(RANK, DIMENSION)
129
- b = GSL::Tensor.new(RANK, DIMENSION)
130
- for i in 0...DIMENSION do
131
- for j in 0...DIMENSION do
132
- for k in 0...DIMENSION do
133
- a[i, j, k] = 3 + i + 5 * j + 2 * k
134
- b[i, j, k] = 3 + 2 * i + 4 * j + k
135
- end
136
- end
137
- end
138
-
139
- # Addition
140
- c = a + b
141
- #c = a.add(b)
142
- status = 0
143
- for i in 0...DIMENSION do
144
- for j in 0...DIMENSION do
145
- for k in 0...DIMENSION do
146
- r = c[i, j, k]
147
- x = a[i, j, k]
148
- y = b[i, j, k]
149
- z = x + y
150
- status += 1 if r != z
151
- end
152
- end
153
- end
154
- assert status.zero?, "#{t.class}#add tensor addition"
155
-
156
- # Subtraction
157
- c = a - b
158
- # c = a.sub(b)
159
- status = 0
160
- for i in 0...DIMENSION do
161
- for j in 0...DIMENSION do
162
- for k in 0...DIMENSION do
163
- r = c[i, j, k]
164
- x = a[i, j, k]
165
- y = b[i, j, k]
166
- z = x - y
167
- status += 1 if r != z
168
- end
169
- end
170
- end
171
- assert status.zero?, "#{t.class}#sub tensor subtraction"
172
-
173
- # Element multiplication
174
- c = a.mul_elements(b)
175
- status = 0
176
- for i in 0...DIMENSION do
177
- for j in 0...DIMENSION do
178
- for k in 0...DIMENSION do
179
- r = c[i, j, k]
180
- x = a[i, j, k]
181
- y = b[i, j, k]
182
- z = x * y
183
- status += 1 if r != z
184
- end
185
- end
186
- end
187
- assert status.zero?, "#{t.class}#mul_elements element multiplication"
188
-
189
- # Element division
190
- c = a.div_elements(b)
191
- status = 0
192
- for i in 0...DIMENSION do
193
- for j in 0...DIMENSION do
194
- for k in 0...DIMENSION do
195
- r = c[i, j, k]
196
- x = a[i, j, k]
197
- y = b[i, j, k]
198
- z = x / y
199
- if (r - z).abs > 2 * GSL::FLT_EPSILON * z.abs; status += 1; end
200
- end
201
- end
202
- end
203
- assert status.zero?, "#{t.class}#div_elements element division"
204
-
205
- ### Tensor product
206
- c = a * b
207
- status = 0
208
- for i in 0...DIMENSION do
209
- for j in 0...DIMENSION do
210
- for k in 0...DIMENSION do
211
- for l in 0...DIMENSION do
212
- for m in 0...DIMENSION do
213
- for n in 0...DIMENSION do
214
- r = c[i, j, k, l, m, n]
215
- x = a[i, j, k]
216
- y = b[l, m, n]
217
- z = x * y
218
- if r != z; status += 1; end
219
- end
220
- end
221
- end
222
- end
223
- end
224
- end
225
- assert status.zero?, "#{t.class}#product tensorial product"
226
-
227
- ### Index contraction
228
- tt = a.contract(0, 1)
229
- assert tt.rank == RANK - 2, "#{t.class}.contract returns valid rank"
230
- assert tt.dimension == DIMENSION, "#{t.class}_contract returns valid dimension"
231
-
232
- ### Swap indices
233
- a_102 = a.swap_indices(0, 1)
234
- a_210 = a.swap_indices(0, 2)
235
- a_021 = a.swap_indices(1, 2)
236
- status = 0
237
- for i in 0...DIMENSION do
238
- for j in 0...DIMENSION do
239
- for k in 0...DIMENSION do
240
- x = a[i, j, k]
241
- x_102 = a_102[j, i, k]
242
- x_210 = a_210[k, j, i]
243
- x_021 = a_021[i, k, j]
244
- if x != x_102 or x != x_210 or x != x_021; status += 1; end
245
- end
246
- end
247
- end
248
- assert status.zero?, "#{t.class}#swap_indices swap indices"
249
-
250
- ### Test text IO
251
- file = 'tensor_test.txt'
252
-
253
- t = GSL::Tensor.alloc(RANK, DIMENSION)
254
- counter = 0
255
- for i in 0...DIMENSION do
256
- for j in 0...DIMENSION do
257
- for k in 0...DIMENSION do
258
- counter += 1
259
- t[i, j, k] = counter
260
- end
261
- end
262
- end
263
-
264
- t.fprintf(file, '%g')
265
- tt = GSL::Tensor.alloc(RANK, DIMENSION)
266
- status = 0
267
- tt.fscanf(file)
268
- counter = 0
269
- data = tt.data
270
- for i in 0...DIMENSION do
271
- for j in 0...DIMENSION do
272
- for k in 0...DIMENSION do
273
- counter += 1
274
- if data[DIMENSION * DIMENSION * i + DIMENSION * j + k] != counter
275
- status += 1
276
- end
277
- end
278
- end
279
- end
280
- assert status.zero?, "#{t.class}#fprintf and fscanf"
281
- File.delete(file)
282
-
283
- ### Test binary IO
284
- file = 'tensor_test.dat'
285
- t.fwrite(file)
286
- tt = GSL::Tensor.alloc(RANK, DIMENSION)
287
- status = 0
288
- tt.fread(file)
289
- counter = 0
290
- data = tt.data
291
- for i in 0...DIMENSION do
292
- for j in 0...DIMENSION do
293
- for k in 0...DIMENSION do
294
- counter += 1
295
- if data[DIMENSION * DIMENSION * i + DIMENSION * j + k] != counter
296
- status += 1
297
- end
298
- end
299
- end
300
- end
301
- assert status.zero?, "#{t.class}#fwrite and fread"
302
- File.delete(file)
303
-
304
- ### Trap
305
- i = j = k = 0
306
- t = GSL::Tensor.calloc(RANK, DIMENSION)
307
- assert_nothing_raised("#{t.class}#set traps 1st index above upper bound") {
308
- t[DIMENSION + 1, 0, 0] = 1.2
309
- }
310
-
311
- assert_nothing_raised("#{t.class}#set traps 2nd index above upper bound") {
312
- t[0, DIMENSION + 1, 0] = 1.2
313
- }
314
-
315
- assert_nothing_raised("#{t.class}#set traps 3rd index above upper bound") {
316
- t[0, 0, DIMENSION + 1] = 1.2
317
- }
318
-
319
- assert_nothing_raised("#{t.class}#set traps 2nd index at upper bound") {
320
- t[0, DIMENSION, 0] = 1.2
321
- }
322
-
323
- assert_nothing_raised("#{t.class}#set traps 2nd index below lower bound") {
324
- t[0, i - 1, 0] = 1.2
325
- }
326
-
327
- assert_nothing_raised("#{t.class}#get traps 1st index above upper bound") {
328
- t[DIMENSION + 1, 0, 0]
329
- }
330
-
331
- assert_nothing_raised("#{t.class}#get traps 2nd index above upper bound") {
332
- t[0, DIMENSION + 1, 0]
333
- }
334
-
335
- assert_nothing_raised("#{t.class}#get traps 3rd index above upper bound") {
336
- t[0, 0, DIMENSION + 1]
337
- }
338
-
339
- assert_nothing_raised("#{t.class}#get traps 2nd index at upper bound") {
340
- t[0, DIMENSION, 0]
341
- }
342
-
343
- assert_nothing_raised("#{t.class}#get traps 2nd index below lower bound") {
344
- t[0, i - 1, 0]
345
- }
346
-
347
- #####
348
- # Vector and Tensor, subtensors
349
- #v = GSL::Vector.new(0...125)
350
- v = GSL::Vector.indgen(125)
351
- t = v.to_tensor(3, 5)
352
- assert t.rank == RANK, "#{v.class}.to_tensor(#{RANK}, #{DIMENSION}) returns valid rank"
353
- assert t.dimension == DIMENSION, "#{v.class}.to_tensor(#{RANK}, #{DIMENSION}) returns valid dimension"
354
-
355
- m0_exp = GSL::Matrix[0...25, 5, 5]
356
- m1_exp = GSL::Matrix[25...50, 5, 5]
357
- m2_exp = GSL::Matrix[50...75, 5, 5]
358
- m3_exp = GSL::Matrix[75...100, 5, 5]
359
- m4_exp = GSL::Matrix[100...125, 5, 5]
360
-
361
- # Create tensors of rank 2
362
- t0 = t.subtensor(0)
363
- t1 = t[1]
364
- t2 = t.subtensor(2)
365
- t3 = t[3]
366
- t4 = t.subtensor(4)
367
-
368
- # 2-tensors can be compared directly with matrices
369
- assert t0 == m0_exp, "#{t.class}#subtensor(0) returns valid tensor"
370
- assert t1 == m1_exp, "#{t.class}#subtensor(1) returns valid tensor"
371
- assert t2 == m2_exp, "#{t.class}#subtensor(2) returns valid tensor"
372
- assert t3 == m3_exp, "#{t.class}#subtensor(3) returns valid tensor"
373
- assert t4 == m4_exp, "#{t.class}#subtensor(4) returns valid tensor"
374
-
375
- v0_exp = GSL::Vector[100...105]
376
- v1_exp = GSL::Vector[105...110]
377
- v2_exp = GSL::Vector[110...115]
378
- v3_exp = GSL::Vector[115...120]
379
- v4_exp = GSL::Vector[120...125]
380
-
381
- # Create tensors of rank1
382
- v0 = t[4, 0]
383
- v1 = t[4][1]
384
- v2 = t.subtensor(4, 2)
385
- v3 = t4[3]
386
- v4 = t4.subtensor(4)
387
-
388
- # 1-tensors can be compared directly with vectors
389
- assert v0 == v0_exp, "#{t.class}#subtensor(4,0) returns valid tensor"
390
- assert v1 == v1_exp, "#{t.class}#subtensor(4,1) returns valid tensor"
391
- assert v2 == v2_exp, "#{t.class}#subtensor(4,2) returns valid tensor"
392
- assert v3 == v3_exp, "#{t.class}#subtensor(4,3) returns valid tensor"
393
- assert v4 == v4_exp, "#{t.class}#subtensor(4,4) returns valid tensor"
394
- end
395
-
396
- end