alglib 1.0.0 → 1.0.1
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.
- data/History.txt +4 -0
- data/Manifest.txt +10 -0
- data/README.txt +1 -1
- data/Rakefile +2 -1
- data/ext/Rakefile +5 -3
- data/ext/alglib.i +11 -148
- data/ext/alglib/alglib.cpp +2401 -46
- data/ext/alglib/alglib_util.cpp +10 -1
- data/ext/alglib/alglib_util.h +3 -1
- data/ext/ap.i +97 -0
- data/ext/correlation.i +24 -0
- data/ext/extconf.rb +1 -0
- data/ext/logit.i +89 -0
- data/lib/alglib.rb +27 -60
- data/lib/alglib/correlation.rb +26 -0
- data/lib/alglib/linearregression.rb +63 -0
- data/lib/alglib/logit.rb +42 -0
- data/test/test_alglib.rb +45 -9
- data/test/test_correlation.rb +44 -0
- data/test/test_correlationtest.rb +45 -0
- data/test/test_linreg.rb +35 -0
- data/test/test_logit.rb +43 -0
- metadata +17 -3
data/test/test_alglib.rb
CHANGED
@@ -1,16 +1,52 @@
|
|
1
|
+
$:.unshift(File.expand_path(File.dirname(__FILE__)+"/../lib"))
|
2
|
+
$:.unshift(File.expand_path(File.dirname(__FILE__)+"/../ext"))
|
3
|
+
|
1
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
|
+
|
2
21
|
require "alglib"
|
3
22
|
require 'matrix'
|
4
23
|
class TestAlglib < Test::Unit::TestCase
|
5
24
|
def test_linear_regression
|
6
|
-
a=[1,3,2,4,3,5,4,6,5,7]
|
7
|
-
b=[3,3,4,4,5,5,6,6,4,4]
|
8
|
-
c=[11,22,30,40,50,65,78,79,99,100]
|
9
|
-
y=[3,4,5,6,7,8,9,10,20,30]
|
10
|
-
matrix=Matrix.columns([a,b,c,y])
|
11
|
-
lr=Alglib::LinearRegression.build_from_matrix(matrix)
|
12
|
-
assert_in_delta(0.695,lr.coeffs[0],0.001)
|
13
|
-
assert_in_delta(11.027,lr.constant,0.001)
|
14
|
-
assert_in_delta(1.785,lr.process([1,3,11]),0.001)
|
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])
|
15
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
|
16
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
|
data/test/test_linreg.rb
ADDED
@@ -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
|
data/test/test_logit.rb
ADDED
@@ -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
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alglib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claudio Bustos
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-20 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.3.
|
23
|
+
version: 2.3.3
|
24
24
|
version:
|
25
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
26
|
email:
|
@@ -274,9 +274,19 @@ files:
|
|
274
274
|
- ext/alglib/variancetests.h
|
275
275
|
- ext/alglib/wsr.cpp
|
276
276
|
- ext/alglib/wsr.h
|
277
|
+
- ext/ap.i
|
278
|
+
- ext/correlation.i
|
277
279
|
- ext/extconf.rb
|
280
|
+
- ext/logit.i
|
278
281
|
- lib/alglib.rb
|
282
|
+
- lib/alglib/correlation.rb
|
283
|
+
- lib/alglib/linearregression.rb
|
284
|
+
- lib/alglib/logit.rb
|
279
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
|
280
290
|
has_rdoc: true
|
281
291
|
homepage: http://rubyforge.org/projects/ruby-statsample/
|
282
292
|
licenses: []
|
@@ -308,4 +318,8 @@ signing_key:
|
|
308
318
|
specification_version: 3
|
309
319
|
summary: ALGLIB - is a multilingual collection of algorithms designed to solve problems in the field of numeric analysis and data processing
|
310
320
|
test_files:
|
321
|
+
- test/test_correlation.rb
|
322
|
+
- test/test_correlationtest.rb
|
311
323
|
- test/test_alglib.rb
|
324
|
+
- test/test_logit.rb
|
325
|
+
- test/test_linreg.rb
|