alglib 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (255) hide show
  1. data/History.txt +7 -0
  2. data/Manifest.txt +253 -0
  3. data/README.txt +33 -0
  4. data/Rakefile +27 -0
  5. data/ext/Rakefile +24 -0
  6. data/ext/alglib.i +24 -0
  7. data/ext/alglib/Makefile +157 -0
  8. data/ext/alglib/airyf.cpp +372 -0
  9. data/ext/alglib/airyf.h +81 -0
  10. data/ext/alglib/alglib.cpp +8558 -0
  11. data/ext/alglib/alglib_util.cpp +19 -0
  12. data/ext/alglib/alglib_util.h +14 -0
  13. data/ext/alglib/ap.cpp +877 -0
  14. data/ext/alglib/ap.english.html +364 -0
  15. data/ext/alglib/ap.h +666 -0
  16. data/ext/alglib/ap.russian.html +442 -0
  17. data/ext/alglib/apvt.h +754 -0
  18. data/ext/alglib/bdss.cpp +1500 -0
  19. data/ext/alglib/bdss.h +251 -0
  20. data/ext/alglib/bdsvd.cpp +1339 -0
  21. data/ext/alglib/bdsvd.h +164 -0
  22. data/ext/alglib/bessel.cpp +1226 -0
  23. data/ext/alglib/bessel.h +331 -0
  24. data/ext/alglib/betaf.cpp +105 -0
  25. data/ext/alglib/betaf.h +74 -0
  26. data/ext/alglib/bidiagonal.cpp +1328 -0
  27. data/ext/alglib/bidiagonal.h +350 -0
  28. data/ext/alglib/binomialdistr.cpp +247 -0
  29. data/ext/alglib/binomialdistr.h +153 -0
  30. data/ext/alglib/blas.cpp +576 -0
  31. data/ext/alglib/blas.h +132 -0
  32. data/ext/alglib/cblas.cpp +226 -0
  33. data/ext/alglib/cblas.h +57 -0
  34. data/ext/alglib/cdet.cpp +138 -0
  35. data/ext/alglib/cdet.h +92 -0
  36. data/ext/alglib/chebyshev.cpp +216 -0
  37. data/ext/alglib/chebyshev.h +76 -0
  38. data/ext/alglib/chisquaredistr.cpp +157 -0
  39. data/ext/alglib/chisquaredistr.h +144 -0
  40. data/ext/alglib/cholesky.cpp +285 -0
  41. data/ext/alglib/cholesky.h +86 -0
  42. data/ext/alglib/cinverse.cpp +298 -0
  43. data/ext/alglib/cinverse.h +111 -0
  44. data/ext/alglib/clu.cpp +337 -0
  45. data/ext/alglib/clu.h +120 -0
  46. data/ext/alglib/correlation.cpp +280 -0
  47. data/ext/alglib/correlation.h +77 -0
  48. data/ext/alglib/correlationtests.cpp +726 -0
  49. data/ext/alglib/correlationtests.h +134 -0
  50. data/ext/alglib/crcond.cpp +826 -0
  51. data/ext/alglib/crcond.h +148 -0
  52. data/ext/alglib/creflections.cpp +310 -0
  53. data/ext/alglib/creflections.h +165 -0
  54. data/ext/alglib/csolve.cpp +312 -0
  55. data/ext/alglib/csolve.h +99 -0
  56. data/ext/alglib/ctrinverse.cpp +387 -0
  57. data/ext/alglib/ctrinverse.h +98 -0
  58. data/ext/alglib/ctrlinsolve.cpp +297 -0
  59. data/ext/alglib/ctrlinsolve.h +81 -0
  60. data/ext/alglib/dawson.cpp +234 -0
  61. data/ext/alglib/dawson.h +74 -0
  62. data/ext/alglib/descriptivestatistics.cpp +436 -0
  63. data/ext/alglib/descriptivestatistics.h +112 -0
  64. data/ext/alglib/det.cpp +140 -0
  65. data/ext/alglib/det.h +94 -0
  66. data/ext/alglib/dforest.cpp +1819 -0
  67. data/ext/alglib/dforest.h +316 -0
  68. data/ext/alglib/elliptic.cpp +497 -0
  69. data/ext/alglib/elliptic.h +217 -0
  70. data/ext/alglib/estnorm.cpp +429 -0
  71. data/ext/alglib/estnorm.h +107 -0
  72. data/ext/alglib/expintegrals.cpp +422 -0
  73. data/ext/alglib/expintegrals.h +108 -0
  74. data/ext/alglib/faq.english.html +258 -0
  75. data/ext/alglib/faq.russian.html +272 -0
  76. data/ext/alglib/fdistr.cpp +202 -0
  77. data/ext/alglib/fdistr.h +163 -0
  78. data/ext/alglib/fresnel.cpp +211 -0
  79. data/ext/alglib/fresnel.h +91 -0
  80. data/ext/alglib/gammaf.cpp +338 -0
  81. data/ext/alglib/gammaf.h +104 -0
  82. data/ext/alglib/gqgengauss.cpp +235 -0
  83. data/ext/alglib/gqgengauss.h +92 -0
  84. data/ext/alglib/gqgenhermite.cpp +268 -0
  85. data/ext/alglib/gqgenhermite.h +63 -0
  86. data/ext/alglib/gqgenjacobi.cpp +297 -0
  87. data/ext/alglib/gqgenjacobi.h +72 -0
  88. data/ext/alglib/gqgenlaguerre.cpp +265 -0
  89. data/ext/alglib/gqgenlaguerre.h +69 -0
  90. data/ext/alglib/gqgenlegendre.cpp +300 -0
  91. data/ext/alglib/gqgenlegendre.h +62 -0
  92. data/ext/alglib/gqgenlobatto.cpp +305 -0
  93. data/ext/alglib/gqgenlobatto.h +97 -0
  94. data/ext/alglib/gqgenradau.cpp +232 -0
  95. data/ext/alglib/gqgenradau.h +95 -0
  96. data/ext/alglib/hbisinv.cpp +480 -0
  97. data/ext/alglib/hbisinv.h +183 -0
  98. data/ext/alglib/hblas.cpp +228 -0
  99. data/ext/alglib/hblas.h +64 -0
  100. data/ext/alglib/hcholesky.cpp +339 -0
  101. data/ext/alglib/hcholesky.h +91 -0
  102. data/ext/alglib/hermite.cpp +114 -0
  103. data/ext/alglib/hermite.h +49 -0
  104. data/ext/alglib/hessenberg.cpp +370 -0
  105. data/ext/alglib/hessenberg.h +152 -0
  106. data/ext/alglib/hevd.cpp +247 -0
  107. data/ext/alglib/hevd.h +107 -0
  108. data/ext/alglib/hsschur.cpp +1316 -0
  109. data/ext/alglib/hsschur.h +108 -0
  110. data/ext/alglib/htridiagonal.cpp +734 -0
  111. data/ext/alglib/htridiagonal.h +180 -0
  112. data/ext/alglib/ialglib.cpp +6 -0
  113. data/ext/alglib/ialglib.h +9 -0
  114. data/ext/alglib/ibetaf.cpp +960 -0
  115. data/ext/alglib/ibetaf.h +125 -0
  116. data/ext/alglib/igammaf.cpp +430 -0
  117. data/ext/alglib/igammaf.h +157 -0
  118. data/ext/alglib/inv.cpp +274 -0
  119. data/ext/alglib/inv.h +115 -0
  120. data/ext/alglib/inverseupdate.cpp +480 -0
  121. data/ext/alglib/inverseupdate.h +185 -0
  122. data/ext/alglib/jacobianelliptic.cpp +164 -0
  123. data/ext/alglib/jacobianelliptic.h +94 -0
  124. data/ext/alglib/jarquebera.cpp +2271 -0
  125. data/ext/alglib/jarquebera.h +80 -0
  126. data/ext/alglib/kmeans.cpp +356 -0
  127. data/ext/alglib/kmeans.h +76 -0
  128. data/ext/alglib/laguerre.cpp +94 -0
  129. data/ext/alglib/laguerre.h +48 -0
  130. data/ext/alglib/lbfgs.cpp +1167 -0
  131. data/ext/alglib/lbfgs.h +218 -0
  132. data/ext/alglib/lda.cpp +434 -0
  133. data/ext/alglib/lda.h +133 -0
  134. data/ext/alglib/ldlt.cpp +1130 -0
  135. data/ext/alglib/ldlt.h +124 -0
  136. data/ext/alglib/leastsquares.cpp +1252 -0
  137. data/ext/alglib/leastsquares.h +290 -0
  138. data/ext/alglib/legendre.cpp +107 -0
  139. data/ext/alglib/legendre.h +49 -0
  140. data/ext/alglib/linreg.cpp +1185 -0
  141. data/ext/alglib/linreg.h +380 -0
  142. data/ext/alglib/logit.cpp +1523 -0
  143. data/ext/alglib/logit.h +333 -0
  144. data/ext/alglib/lq.cpp +399 -0
  145. data/ext/alglib/lq.h +160 -0
  146. data/ext/alglib/lu.cpp +462 -0
  147. data/ext/alglib/lu.h +119 -0
  148. data/ext/alglib/mannwhitneyu.cpp +4490 -0
  149. data/ext/alglib/mannwhitneyu.h +115 -0
  150. data/ext/alglib/minlm.cpp +918 -0
  151. data/ext/alglib/minlm.h +312 -0
  152. data/ext/alglib/mlpbase.cpp +3375 -0
  153. data/ext/alglib/mlpbase.h +589 -0
  154. data/ext/alglib/mlpe.cpp +1369 -0
  155. data/ext/alglib/mlpe.h +552 -0
  156. data/ext/alglib/mlptrain.cpp +1056 -0
  157. data/ext/alglib/mlptrain.h +283 -0
  158. data/ext/alglib/nearunityunit.cpp +91 -0
  159. data/ext/alglib/nearunityunit.h +17 -0
  160. data/ext/alglib/normaldistr.cpp +377 -0
  161. data/ext/alglib/normaldistr.h +175 -0
  162. data/ext/alglib/nsevd.cpp +1869 -0
  163. data/ext/alglib/nsevd.h +140 -0
  164. data/ext/alglib/pca.cpp +168 -0
  165. data/ext/alglib/pca.h +87 -0
  166. data/ext/alglib/poissondistr.cpp +143 -0
  167. data/ext/alglib/poissondistr.h +130 -0
  168. data/ext/alglib/polinterpolation.cpp +685 -0
  169. data/ext/alglib/polinterpolation.h +206 -0
  170. data/ext/alglib/psif.cpp +173 -0
  171. data/ext/alglib/psif.h +88 -0
  172. data/ext/alglib/qr.cpp +414 -0
  173. data/ext/alglib/qr.h +168 -0
  174. data/ext/alglib/ratinterpolation.cpp +134 -0
  175. data/ext/alglib/ratinterpolation.h +72 -0
  176. data/ext/alglib/rcond.cpp +705 -0
  177. data/ext/alglib/rcond.h +140 -0
  178. data/ext/alglib/reflections.cpp +504 -0
  179. data/ext/alglib/reflections.h +165 -0
  180. data/ext/alglib/rotations.cpp +473 -0
  181. data/ext/alglib/rotations.h +128 -0
  182. data/ext/alglib/rsolve.cpp +221 -0
  183. data/ext/alglib/rsolve.h +99 -0
  184. data/ext/alglib/sbisinv.cpp +217 -0
  185. data/ext/alglib/sbisinv.h +171 -0
  186. data/ext/alglib/sblas.cpp +185 -0
  187. data/ext/alglib/sblas.h +64 -0
  188. data/ext/alglib/schur.cpp +156 -0
  189. data/ext/alglib/schur.h +102 -0
  190. data/ext/alglib/sdet.cpp +193 -0
  191. data/ext/alglib/sdet.h +101 -0
  192. data/ext/alglib/sevd.cpp +116 -0
  193. data/ext/alglib/sevd.h +99 -0
  194. data/ext/alglib/sinverse.cpp +672 -0
  195. data/ext/alglib/sinverse.h +138 -0
  196. data/ext/alglib/spddet.cpp +138 -0
  197. data/ext/alglib/spddet.h +96 -0
  198. data/ext/alglib/spdgevd.cpp +842 -0
  199. data/ext/alglib/spdgevd.h +200 -0
  200. data/ext/alglib/spdinverse.cpp +509 -0
  201. data/ext/alglib/spdinverse.h +122 -0
  202. data/ext/alglib/spdrcond.cpp +421 -0
  203. data/ext/alglib/spdrcond.h +118 -0
  204. data/ext/alglib/spdsolve.cpp +275 -0
  205. data/ext/alglib/spdsolve.h +105 -0
  206. data/ext/alglib/spline2d.cpp +1192 -0
  207. data/ext/alglib/spline2d.h +301 -0
  208. data/ext/alglib/spline3.cpp +1264 -0
  209. data/ext/alglib/spline3.h +290 -0
  210. data/ext/alglib/srcond.cpp +595 -0
  211. data/ext/alglib/srcond.h +127 -0
  212. data/ext/alglib/ssolve.cpp +895 -0
  213. data/ext/alglib/ssolve.h +139 -0
  214. data/ext/alglib/stdafx.h +0 -0
  215. data/ext/alglib/stest.cpp +131 -0
  216. data/ext/alglib/stest.h +94 -0
  217. data/ext/alglib/studenttdistr.cpp +222 -0
  218. data/ext/alglib/studenttdistr.h +115 -0
  219. data/ext/alglib/studentttests.cpp +377 -0
  220. data/ext/alglib/studentttests.h +178 -0
  221. data/ext/alglib/svd.cpp +620 -0
  222. data/ext/alglib/svd.h +126 -0
  223. data/ext/alglib/tdbisinv.cpp +2608 -0
  224. data/ext/alglib/tdbisinv.h +228 -0
  225. data/ext/alglib/tdevd.cpp +1229 -0
  226. data/ext/alglib/tdevd.h +115 -0
  227. data/ext/alglib/tridiagonal.cpp +594 -0
  228. data/ext/alglib/tridiagonal.h +171 -0
  229. data/ext/alglib/trigintegrals.cpp +490 -0
  230. data/ext/alglib/trigintegrals.h +131 -0
  231. data/ext/alglib/trinverse.cpp +345 -0
  232. data/ext/alglib/trinverse.h +98 -0
  233. data/ext/alglib/trlinsolve.cpp +926 -0
  234. data/ext/alglib/trlinsolve.h +73 -0
  235. data/ext/alglib/tsort.cpp +405 -0
  236. data/ext/alglib/tsort.h +54 -0
  237. data/ext/alglib/variancetests.cpp +245 -0
  238. data/ext/alglib/variancetests.h +134 -0
  239. data/ext/alglib/wsr.cpp +6285 -0
  240. data/ext/alglib/wsr.h +96 -0
  241. data/ext/ap.i +97 -0
  242. data/ext/correlation.i +24 -0
  243. data/ext/extconf.rb +6 -0
  244. data/ext/logit.i +89 -0
  245. data/lib/alglib.rb +71 -0
  246. data/lib/alglib/correlation.rb +26 -0
  247. data/lib/alglib/linearregression.rb +63 -0
  248. data/lib/alglib/logit.rb +42 -0
  249. data/test/test_alglib.rb +52 -0
  250. data/test/test_correlation.rb +44 -0
  251. data/test/test_correlationtest.rb +45 -0
  252. data/test/test_linreg.rb +35 -0
  253. data/test/test_logit.rb +43 -0
  254. data/test/test_pca.rb +27 -0
  255. metadata +326 -0
@@ -0,0 +1,42 @@
1
+ module Alglib
2
+ class Logit
3
+ attr_reader :model, :cases, :ivars
4
+ # Creates a Logit object based on a Matrix
5
+ # EXAMPLE:
6
+ # require 'alglib'
7
+ # matrix=Matrix[[2,3,4],[2,5,5],[1,5,3],[4,6,5]]
8
+ # lr=Alglib::LinearRegression.build_from_matrix(matrix)
9
+ # => #<Alglib::LinearRegression:0x7ffaf6c05dc0 @model=#<Alglib_ext::LinearModel:0x7ffaf6c05e60>, @cases=4, @report=#<Alglib_ext::LrReport:0x7ffaf6c05e10>, @ivars=2>
10
+ # lr.coeffs
11
+ # => [0.585714285714286, -0.0142857142857142]
12
+
13
+ def self.build_from_matrix(matrix)
14
+ raise "Argument should be a matrix" unless matrix.is_a? Matrix
15
+ cases=matrix.row_size
16
+ ivars=matrix.column_size-1
17
+ lm=Alglib_ext::LogitModel.new
18
+ lr=Alglib_ext::MNLReport.new
19
+ nclasses=matrix.column(matrix.column_size-1).to_a.uniq.size
20
+ am=matrix.to_alglib_matrix
21
+ Alglib_ext::mnltrainh(am,cases,ivars,nclasses,lm,lr)
22
+ self.new(lm,lr,cases,ivars,nclasses)
23
+ end
24
+ # Use with care...
25
+ def initialize(lm,lr,cases,ivars,nclasses)
26
+ @model=lm
27
+ @report=lr
28
+ @cases=cases
29
+ @ivars=ivars
30
+ @nclasses=nclasses
31
+ end
32
+ def process(vector)
33
+ Alglib_ext.mnlprocess(@model,vector)
34
+ end
35
+ def unpack
36
+ a2d=Alglib_ext::Real2dArray.new
37
+ Alglib_ext::mnlunpack(@model, a2d,@ivars,@nclasses);
38
+ Alglib.real2darray_to_array(a2d)
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,52 @@
1
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../lib"))
2
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../ext"))
3
+
4
+ require "test/unit"
5
+ begin
6
+ require 'statsample'
7
+ HAS_SS=true
8
+ rescue
9
+ HAS_SS=false
10
+ end
11
+
12
+ if(HAS_GSL.nil?)
13
+ begin
14
+ require 'rbgsl'
15
+ HAS_GSL=true
16
+ rescue
17
+ HAS_GSL=false
18
+ end
19
+ end
20
+
21
+ require "alglib"
22
+ require 'matrix'
23
+ class TestAlglib < Test::Unit::TestCase
24
+ def test_linear_regression
25
+ a=[1,3,2,4,3,5,4,6,5,7]
26
+ b=[3,3,4,4,5,5,6,6,4,4]
27
+ c=[11,22,30,40,50,65,78,79,99,100]
28
+ y=[3,4,5,6,7,8,9,10,20,30]
29
+ matrix=Matrix.columns([a,b,c,y])
30
+ lr=Alglib::LinearRegression.build_from_matrix(matrix)
31
+ assert_in_delta(0.695,lr.coeffs[0],0.001)
32
+ assert_in_delta(11.027,lr.constant,0.001)
33
+ assert_in_delta(1.785,lr.process([1,3,11]),0.001)
34
+ end
35
+ def test_array_to_real1darray
36
+ v=[1,2,3]
37
+ r1d=Alglib.array_to_real1darray(v)
38
+ assert_equal(3,r1d.size)
39
+ assert_equal(1,r1d[0])
40
+ assert_equal(2,r1d[1])
41
+ assert_equal(3,r1d[2])
42
+ end
43
+ def test_real2darray_to_array
44
+ m=Matrix[[0,3,4],[1,2,5],[3,5,6]]
45
+ v2=m.to_alglib_matrix
46
+ m2=Alglib.real2darray_to_array(v2)
47
+ assert_equal(3,m2.size)
48
+ assert_equal([0,3,4],m2[0])
49
+ assert_equal([1,2,5],m2[1])
50
+ assert_equal([3,5,6],m2[2])
51
+ end
52
+ end
@@ -0,0 +1,44 @@
1
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../lib"))
2
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../ext"))
3
+
4
+ require "test/unit"
5
+ begin
6
+ require 'statsample'
7
+ HAS_SS=true
8
+ rescue
9
+ HAS_SS=false
10
+ end
11
+
12
+ if(HAS_GSL.nil?)
13
+ begin
14
+ require 'rbgsl'
15
+ HAS_GSL=true
16
+ rescue
17
+ HAS_GSL=false
18
+ end
19
+ end
20
+
21
+ require "alglib"
22
+ require 'matrix'
23
+ class TestAlglibCorrelation < Test::Unit::TestCase
24
+ def test_correlation
25
+ a=[1,2,3,6,7,9,0,10]
26
+ b=[2,5, 7,8,4,8, 0, 5]
27
+
28
+ if(HAS_GSL)
29
+ a_gsl=GSL::Vector.alloc(a)
30
+ b_gsl=GSL::Vector.alloc(b)
31
+ corr_expected=GSL::Stats::correlation(a_gsl, b_gsl)
32
+ corr_alglib=Alglib.pearson_correlation(a,b)
33
+ assert_equal(corr_expected,corr_alglib)
34
+ end
35
+ if(HAS_SS)
36
+ va=a.to_vector(:scale)
37
+ vb=b.to_vector(:scale)
38
+ corr_expected=Statsample::Bivariate::spearman(va, vb)
39
+ corr_alglib=Alglib.spearman_correlation(a,b)
40
+ assert_in_delta(corr_expected,corr_alglib,0.001)
41
+ end
42
+ end
43
+
44
+ end
@@ -0,0 +1,45 @@
1
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../lib"))
2
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../ext"))
3
+
4
+ require "test/unit"
5
+ begin
6
+ require 'statsample'
7
+ HAS_SS=true
8
+ rescue
9
+ HAS_SS=false
10
+ end
11
+
12
+ if(HAS_GSL.nil?)
13
+ begin
14
+ require 'rbgsl'
15
+ HAS_GSL=true
16
+ rescue
17
+ HAS_GSL=false
18
+ end
19
+ end
20
+
21
+ require "alglib"
22
+ require 'matrix'
23
+ class TestAlglibCorrelationTests < Test::Unit::TestCase
24
+ def test_pearson
25
+ a=[2,3,4,5,6,7,8,9 ,10,22,20]
26
+ b=[1,4,3,5,6,8,9,10,10,20,30]
27
+ r=Alglib.pearson_correlation(a,b)
28
+ t= Statsample::Bivariate.t_r(r, a.size)
29
+ out = Alglib.pearson_correlation_significance(r, a.size)
30
+ assert_in_delta(out[:both], Statsample::Bivariate.prop_pearson(t,a.size), 0.0001)
31
+ assert_in_delta(out[:left], Statsample::Bivariate.prop_pearson(t, a.size,:left), 0.0001)
32
+ assert_in_delta(out[:right], Statsample::Bivariate.prop_pearson(t,a.size, :right), 0.0001)
33
+ end
34
+ def test_spearman
35
+ a=[2,3,4,5,6,7,8,9 ,10,22,20]
36
+ b=[1,4,3,5,6,8,9,10,10,20,30]
37
+ r=Alglib.spearman_correlation(a,b)
38
+ t= Statsample::Bivariate.t_r(r, a.size)
39
+ out = Alglib.spearman_correlation_significance(r, a.size)
40
+
41
+ assert_in_delta(out[:both], Statsample::Bivariate.prop_pearson(t,a.size), 0.0001)
42
+ assert_in_delta(out[:left], Statsample::Bivariate.prop_pearson(t, a.size,:left), 0.0001)
43
+ assert_in_delta(out[:right], Statsample::Bivariate.prop_pearson(t,a.size, :right), 0.0001)
44
+ end
45
+ end
@@ -0,0 +1,35 @@
1
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../lib"))
2
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../ext"))
3
+
4
+ require "test/unit"
5
+ begin
6
+ require 'statsample'
7
+ HAS_SS=true
8
+ rescue
9
+ HAS_SS=false
10
+ end
11
+
12
+ if(HAS_GSL.nil?)
13
+ begin
14
+ require 'rbgsl'
15
+ HAS_GSL=true
16
+ rescue
17
+ HAS_GSL=false
18
+ end
19
+ end
20
+
21
+ require "alglib"
22
+ require 'matrix'
23
+ class TestAlglibLinreg < Test::Unit::TestCase
24
+ def test_linear_regression
25
+ a=[1,3,2,4,3,5,4,6,5,7]
26
+ b=[3,3,4,4,5,5,6,6,4,4]
27
+ c=[11,22,30,40,50,65,78,79,99,100]
28
+ y=[3,4,5,6,7,8,9,10,20,30]
29
+ matrix=Matrix.columns([a,b,c,y])
30
+ lr=Alglib::LinearRegression.build_from_matrix(matrix)
31
+ assert_in_delta(0.695,lr.coeffs[0],0.001)
32
+ assert_in_delta(11.027,lr.constant,0.001)
33
+ assert_in_delta(1.785,lr.process([1,3,11]),0.001)
34
+ end
35
+ end
@@ -0,0 +1,43 @@
1
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../lib"))
2
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../ext"))
3
+
4
+ require "test/unit"
5
+ begin
6
+ require 'statsample'
7
+ HAS_SS=true
8
+ rescue
9
+ HAS_SS=false
10
+ end
11
+
12
+ if(HAS_GSL.nil?)
13
+ begin
14
+ require 'rbgsl'
15
+ HAS_GSL=true
16
+ rescue
17
+ HAS_GSL=false
18
+ end
19
+ end
20
+
21
+ require "alglib"
22
+ require 'matrix'
23
+ class TestAlglib < Test::Unit::TestCase
24
+ def test_logit
25
+ a=[1,2,3,4,5,6,7,8,9,10]
26
+ b=[0,0,1,0,0,0,1,1,1,1]
27
+ matrix=Matrix.columns([a,b])
28
+ lr=Alglib::Logit.build_from_matrix(matrix)
29
+ end
30
+ def atest_logit_1
31
+ ds=Statsample::CSV.read(File.dirname(__FILE__)+"/sample_logit.csv")
32
+ ds['female'].recode! {|c|
33
+ c=='female' ? 1: 0
34
+ }
35
+ constant=[1]*(ds.cases)
36
+ matrix=Matrix.columns([ds['female'].data,ds['hon'].data])
37
+ lr=Alglib::Logit.build_from_matrix(matrix)
38
+ lr.unpack
39
+ matrix=Matrix.columns([ds['math'].data, ds['female'].data,ds['read'].data, ds['hon'].data])
40
+ lr=Alglib::Logit.build_from_matrix(matrix)
41
+
42
+ end
43
+ end
@@ -0,0 +1,27 @@
1
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../lib"))
2
+ $:.unshift(File.expand_path(File.dirname(__FILE__)+"/../ext"))
3
+ require "test/unit"
4
+ require "alglib"
5
+ require 'matrix'
6
+ class TestAlglibPca < Test::Unit::TestCase
7
+ def test_pca
8
+ a=[10,20,30,40,50,60,70,80,90,100]
9
+ b=[1.2,2.3,3.4,4,5,6,7,8,9,10]
10
+ c=[6,8,3,6,8,2,3,9,10,1]
11
+ d=[61,82,31,62,86,21,33,99,101,12]
12
+ matrix=Matrix.columns([a,b,c,d])
13
+ input_2d_array=matrix.to_alglib_matrix
14
+ npoints=a.size
15
+ nvars=4
16
+ info=1
17
+ s2=Alglib_ext::Real1dArray.new
18
+ v=Alglib_ext::Real2dArray.new
19
+ a=Alglib_ext.pcabuildbasis(input_2d_array,npoints,nvars, s2,v)
20
+ comp=s2.to_a
21
+ sum=comp.inject{|a,val| a+val}
22
+
23
+ new=comp.collect{|val| (4.0*val).quo(sum)}
24
+ p new
25
+ p v.to_2d_a
26
+ end
27
+ end
metadata ADDED
@@ -0,0 +1,326 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: alglib
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Claudio Bustos
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-06 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hoe
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.3.3
24
+ version:
25
+ description: ALGLIB - is a multilingual collection of algorithms designed to solve problems in the field of numeric analysis and data processing. ALGLIB is distributed under a 3-clause BSD license. This license is unrestrictive and allows using the package both in open and proprietary programs and even relicensing the code (if the new license doesn't conflict with the terms of the 3-clause BSD license).
26
+ email:
27
+ - clbustos@gmail.com
28
+ executables: []
29
+
30
+ extensions:
31
+ - ext/extconf.rb
32
+ extra_rdoc_files:
33
+ - History.txt
34
+ - Manifest.txt
35
+ - README.txt
36
+ files:
37
+ - History.txt
38
+ - Manifest.txt
39
+ - README.txt
40
+ - Rakefile
41
+ - ext/Rakefile
42
+ - ext/alglib.i
43
+ - ext/alglib/airyf.cpp
44
+ - ext/alglib/airyf.h
45
+ - ext/alglib/alglib.cpp
46
+ - ext/alglib/alglib_util.cpp
47
+ - ext/alglib/alglib_util.h
48
+ - ext/alglib/ap.cpp
49
+ - ext/alglib/ap.english.html
50
+ - ext/alglib/ap.h
51
+ - ext/alglib/ap.russian.html
52
+ - ext/alglib/apvt.h
53
+ - ext/alglib/bdss.cpp
54
+ - ext/alglib/bdss.h
55
+ - ext/alglib/bdsvd.cpp
56
+ - ext/alglib/bdsvd.h
57
+ - ext/alglib/bessel.cpp
58
+ - ext/alglib/bessel.h
59
+ - ext/alglib/betaf.cpp
60
+ - ext/alglib/betaf.h
61
+ - ext/alglib/bidiagonal.cpp
62
+ - ext/alglib/bidiagonal.h
63
+ - ext/alglib/binomialdistr.cpp
64
+ - ext/alglib/binomialdistr.h
65
+ - ext/alglib/blas.cpp
66
+ - ext/alglib/blas.h
67
+ - ext/alglib/cblas.cpp
68
+ - ext/alglib/cblas.h
69
+ - ext/alglib/cdet.cpp
70
+ - ext/alglib/cdet.h
71
+ - ext/alglib/chebyshev.cpp
72
+ - ext/alglib/chebyshev.h
73
+ - ext/alglib/chisquaredistr.cpp
74
+ - ext/alglib/chisquaredistr.h
75
+ - ext/alglib/cholesky.cpp
76
+ - ext/alglib/cholesky.h
77
+ - ext/alglib/cinverse.cpp
78
+ - ext/alglib/cinverse.h
79
+ - ext/alglib/clu.cpp
80
+ - ext/alglib/clu.h
81
+ - ext/alglib/correlation.cpp
82
+ - ext/alglib/correlation.h
83
+ - ext/alglib/correlationtests.cpp
84
+ - ext/alglib/correlationtests.h
85
+ - ext/alglib/crcond.cpp
86
+ - ext/alglib/crcond.h
87
+ - ext/alglib/creflections.cpp
88
+ - ext/alglib/creflections.h
89
+ - ext/alglib/csolve.cpp
90
+ - ext/alglib/csolve.h
91
+ - ext/alglib/ctrinverse.cpp
92
+ - ext/alglib/ctrinverse.h
93
+ - ext/alglib/ctrlinsolve.cpp
94
+ - ext/alglib/ctrlinsolve.h
95
+ - ext/alglib/dawson.cpp
96
+ - ext/alglib/dawson.h
97
+ - ext/alglib/descriptivestatistics.cpp
98
+ - ext/alglib/descriptivestatistics.h
99
+ - ext/alglib/det.cpp
100
+ - ext/alglib/det.h
101
+ - ext/alglib/dforest.cpp
102
+ - ext/alglib/dforest.h
103
+ - ext/alglib/elliptic.cpp
104
+ - ext/alglib/elliptic.h
105
+ - ext/alglib/estnorm.cpp
106
+ - ext/alglib/estnorm.h
107
+ - ext/alglib/expintegrals.cpp
108
+ - ext/alglib/expintegrals.h
109
+ - ext/alglib/faq.english.html
110
+ - ext/alglib/faq.russian.html
111
+ - ext/alglib/fdistr.cpp
112
+ - ext/alglib/fdistr.h
113
+ - ext/alglib/fresnel.cpp
114
+ - ext/alglib/fresnel.h
115
+ - ext/alglib/gammaf.cpp
116
+ - ext/alglib/gammaf.h
117
+ - ext/alglib/gqgengauss.cpp
118
+ - ext/alglib/gqgengauss.h
119
+ - ext/alglib/gqgenhermite.cpp
120
+ - ext/alglib/gqgenhermite.h
121
+ - ext/alglib/gqgenjacobi.cpp
122
+ - ext/alglib/gqgenjacobi.h
123
+ - ext/alglib/gqgenlaguerre.cpp
124
+ - ext/alglib/gqgenlaguerre.h
125
+ - ext/alglib/gqgenlegendre.cpp
126
+ - ext/alglib/gqgenlegendre.h
127
+ - ext/alglib/gqgenlobatto.cpp
128
+ - ext/alglib/gqgenlobatto.h
129
+ - ext/alglib/gqgenradau.cpp
130
+ - ext/alglib/gqgenradau.h
131
+ - ext/alglib/hbisinv.cpp
132
+ - ext/alglib/hbisinv.h
133
+ - ext/alglib/hblas.cpp
134
+ - ext/alglib/hblas.h
135
+ - ext/alglib/hcholesky.cpp
136
+ - ext/alglib/hcholesky.h
137
+ - ext/alglib/hermite.cpp
138
+ - ext/alglib/hermite.h
139
+ - ext/alglib/hessenberg.cpp
140
+ - ext/alglib/hessenberg.h
141
+ - ext/alglib/hevd.cpp
142
+ - ext/alglib/hevd.h
143
+ - ext/alglib/hsschur.cpp
144
+ - ext/alglib/hsschur.h
145
+ - ext/alglib/htridiagonal.cpp
146
+ - ext/alglib/htridiagonal.h
147
+ - ext/alglib/ialglib.cpp
148
+ - ext/alglib/ialglib.h
149
+ - ext/alglib/ibetaf.cpp
150
+ - ext/alglib/ibetaf.h
151
+ - ext/alglib/igammaf.cpp
152
+ - ext/alglib/igammaf.h
153
+ - ext/alglib/inv.cpp
154
+ - ext/alglib/inv.h
155
+ - ext/alglib/inverseupdate.cpp
156
+ - ext/alglib/inverseupdate.h
157
+ - ext/alglib/jacobianelliptic.cpp
158
+ - ext/alglib/jacobianelliptic.h
159
+ - ext/alglib/jarquebera.cpp
160
+ - ext/alglib/jarquebera.h
161
+ - ext/alglib/kmeans.cpp
162
+ - ext/alglib/kmeans.h
163
+ - ext/alglib/laguerre.cpp
164
+ - ext/alglib/laguerre.h
165
+ - ext/alglib/lbfgs.cpp
166
+ - ext/alglib/lbfgs.h
167
+ - ext/alglib/lda.cpp
168
+ - ext/alglib/lda.h
169
+ - ext/alglib/ldlt.cpp
170
+ - ext/alglib/ldlt.h
171
+ - ext/alglib/leastsquares.cpp
172
+ - ext/alglib/leastsquares.h
173
+ - ext/alglib/legendre.cpp
174
+ - ext/alglib/legendre.h
175
+ - ext/alglib/linreg.cpp
176
+ - ext/alglib/linreg.h
177
+ - ext/alglib/logit.cpp
178
+ - ext/alglib/logit.h
179
+ - ext/alglib/lq.cpp
180
+ - ext/alglib/lq.h
181
+ - ext/alglib/lu.cpp
182
+ - ext/alglib/lu.h
183
+ - ext/alglib/Makefile
184
+ - ext/alglib/mannwhitneyu.cpp
185
+ - ext/alglib/mannwhitneyu.h
186
+ - ext/alglib/minlm.cpp
187
+ - ext/alglib/minlm.h
188
+ - ext/alglib/mlpbase.cpp
189
+ - ext/alglib/mlpbase.h
190
+ - ext/alglib/mlpe.cpp
191
+ - ext/alglib/mlpe.h
192
+ - ext/alglib/mlptrain.cpp
193
+ - ext/alglib/mlptrain.h
194
+ - ext/alglib/nearunityunit.cpp
195
+ - ext/alglib/nearunityunit.h
196
+ - ext/alglib/normaldistr.cpp
197
+ - ext/alglib/normaldistr.h
198
+ - ext/alglib/nsevd.cpp
199
+ - ext/alglib/nsevd.h
200
+ - ext/alglib/pca.cpp
201
+ - ext/alglib/pca.h
202
+ - ext/alglib/poissondistr.cpp
203
+ - ext/alglib/poissondistr.h
204
+ - ext/alglib/polinterpolation.cpp
205
+ - ext/alglib/polinterpolation.h
206
+ - ext/alglib/psif.cpp
207
+ - ext/alglib/psif.h
208
+ - ext/alglib/qr.cpp
209
+ - ext/alglib/qr.h
210
+ - ext/alglib/ratinterpolation.cpp
211
+ - ext/alglib/ratinterpolation.h
212
+ - ext/alglib/rcond.cpp
213
+ - ext/alglib/rcond.h
214
+ - ext/alglib/reflections.cpp
215
+ - ext/alglib/reflections.h
216
+ - ext/alglib/rotations.cpp
217
+ - ext/alglib/rotations.h
218
+ - ext/alglib/rsolve.cpp
219
+ - ext/alglib/rsolve.h
220
+ - ext/alglib/sbisinv.cpp
221
+ - ext/alglib/sbisinv.h
222
+ - ext/alglib/sblas.cpp
223
+ - ext/alglib/sblas.h
224
+ - ext/alglib/schur.cpp
225
+ - ext/alglib/schur.h
226
+ - ext/alglib/sdet.cpp
227
+ - ext/alglib/sdet.h
228
+ - ext/alglib/sevd.cpp
229
+ - ext/alglib/sevd.h
230
+ - ext/alglib/sinverse.cpp
231
+ - ext/alglib/sinverse.h
232
+ - ext/alglib/spddet.cpp
233
+ - ext/alglib/spddet.h
234
+ - ext/alglib/spdgevd.cpp
235
+ - ext/alglib/spdgevd.h
236
+ - ext/alglib/spdinverse.cpp
237
+ - ext/alglib/spdinverse.h
238
+ - ext/alglib/spdrcond.cpp
239
+ - ext/alglib/spdrcond.h
240
+ - ext/alglib/spdsolve.cpp
241
+ - ext/alglib/spdsolve.h
242
+ - ext/alglib/spline2d.cpp
243
+ - ext/alglib/spline2d.h
244
+ - ext/alglib/spline3.cpp
245
+ - ext/alglib/spline3.h
246
+ - ext/alglib/srcond.cpp
247
+ - ext/alglib/srcond.h
248
+ - ext/alglib/ssolve.cpp
249
+ - ext/alglib/ssolve.h
250
+ - ext/alglib/stdafx.h
251
+ - ext/alglib/stest.cpp
252
+ - ext/alglib/stest.h
253
+ - ext/alglib/studenttdistr.cpp
254
+ - ext/alglib/studenttdistr.h
255
+ - ext/alglib/studentttests.cpp
256
+ - ext/alglib/studentttests.h
257
+ - ext/alglib/svd.cpp
258
+ - ext/alglib/svd.h
259
+ - ext/alglib/tdbisinv.cpp
260
+ - ext/alglib/tdbisinv.h
261
+ - ext/alglib/tdevd.cpp
262
+ - ext/alglib/tdevd.h
263
+ - ext/alglib/tridiagonal.cpp
264
+ - ext/alglib/tridiagonal.h
265
+ - ext/alglib/trigintegrals.cpp
266
+ - ext/alglib/trigintegrals.h
267
+ - ext/alglib/trinverse.cpp
268
+ - ext/alglib/trinverse.h
269
+ - ext/alglib/trlinsolve.cpp
270
+ - ext/alglib/trlinsolve.h
271
+ - ext/alglib/tsort.cpp
272
+ - ext/alglib/tsort.h
273
+ - ext/alglib/variancetests.cpp
274
+ - ext/alglib/variancetests.h
275
+ - ext/alglib/wsr.cpp
276
+ - ext/alglib/wsr.h
277
+ - ext/ap.i
278
+ - ext/correlation.i
279
+ - ext/extconf.rb
280
+ - ext/logit.i
281
+ - lib/alglib.rb
282
+ - lib/alglib/correlation.rb
283
+ - lib/alglib/linearregression.rb
284
+ - lib/alglib/logit.rb
285
+ - test/test_alglib.rb
286
+ - test/test_correlation.rb
287
+ - test/test_correlationtest.rb
288
+ - test/test_linreg.rb
289
+ - test/test_logit.rb
290
+ has_rdoc: true
291
+ homepage: http://rubyforge.org/projects/ruby-statsample/
292
+ licenses: []
293
+
294
+ post_install_message:
295
+ rdoc_options:
296
+ - --main
297
+ - README.txt
298
+ require_paths:
299
+ - lib
300
+ - ext
301
+ required_ruby_version: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - ">="
304
+ - !ruby/object:Gem::Version
305
+ version: "0"
306
+ version:
307
+ required_rubygems_version: !ruby/object:Gem::Requirement
308
+ requirements:
309
+ - - ">="
310
+ - !ruby/object:Gem::Version
311
+ version: "0"
312
+ version:
313
+ requirements: []
314
+
315
+ rubyforge_project: ruby-statsample
316
+ rubygems_version: 1.3.5
317
+ signing_key:
318
+ specification_version: 3
319
+ summary: ALGLIB - is a multilingual collection of algorithms designed to solve problems in the field of numeric analysis and data processing
320
+ test_files:
321
+ - test/test_correlation.rb
322
+ - test/test_correlationtest.rb
323
+ - test/test_alglib.rb
324
+ - test/test_pca.rb
325
+ - test/test_logit.rb
326
+ - test/test_linreg.rb