malge 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,9 @@
1
1
  #! /usr/bin/env ruby
2
2
  #coding: utf-8
3
3
 
4
- require "test/unit"
5
- require "malge.rb"
4
+ require "helper"
5
+ #require "test/unit"
6
+ #require "malge.rb"
6
7
 
7
8
  TOLERANCE=1.0e-10
8
9
 
@@ -65,6 +66,16 @@ class TC_Malge < Test::Unit::TestCase
65
66
  results = Malge::LeastSquare.least_square_proportional(data_pairs)
66
67
  assert_equal(1, results.size)
67
68
  assert_in_delta(-1.5, results[0], TOLERANCE)
69
+
70
+ data_pairs =
71
+ [
72
+ [ 1.000, 0.000],
73
+ [ 2.000, 2.000],
74
+ ]
75
+ results = Malge::LeastSquare.least_square_proportional(data_pairs)
76
+ assert_equal(1, results.size)
77
+ assert_in_delta(0.8, results[0], TOLERANCE)
78
+
68
79
  end
69
80
 
70
81
 
@@ -1,9 +1,9 @@
1
1
  #! /usr/bin/ruby
2
2
 
3
3
  require "helper"
4
- require "test/unit"
5
- require "malge.rb"
6
- #require "malge/simultaneousequations.rb"
4
+ #require "test/unit"
5
+ #require "malge.rb"
6
+ ##require "malge/simultaneousequations.rb"
7
7
 
8
8
  class TC_SimultaneousEquations < Test::Unit::TestCase
9
9
  $tolerance = 10.0**(-10)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: malge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-16 00:00:00.000000000 Z
12
+ date: 2013-03-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &84583970 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '3.12'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '3.12'
24
+ version_requirements: *84583970
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: bundler
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &84583690 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ~>
@@ -37,15 +32,10 @@ dependencies:
37
32
  version: 1.2.2
38
33
  type: :development
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 1.2.2
35
+ version_requirements: *84583690
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: jeweler
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &84583420 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ~>
@@ -53,15 +43,10 @@ dependencies:
53
43
  version: 1.8.3
54
44
  type: :development
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: 1.8.3
46
+ version_requirements: *84583420
62
47
  - !ruby/object:Gem::Dependency
63
48
  name: simplecov
64
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &84583130 !ruby/object:Gem::Requirement
65
50
  none: false
66
51
  requirements:
67
52
  - - ! '>='
@@ -69,28 +54,7 @@ dependencies:
69
54
  version: '0'
70
55
  type: :development
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: psych
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
57
+ version_requirements: *84583130
94
58
  description: ! "Mathematical library to deal with basic problems in algebla.\n "
95
59
  email: ippei94da@gmail.com
96
60
  executables: []
@@ -111,9 +75,9 @@ files:
111
75
  - lib/malge/errorfittedfunction/aexpbx.rb
112
76
  - lib/malge/errorfittedfunction/aexpbx32.rb
113
77
  - lib/malge/errorfittedfunction/axinv.rb
78
+ - lib/malge/errorfittedfunction/axinv2.rb
79
+ - lib/malge/errorfittedfunction/axinv3.rb
114
80
  - lib/malge/errorfittedfunction/axinv32.rb
115
- - lib/malge/errorfittedfunction/axinv32plusb.rb
116
- - lib/malge/errorfittedfunction/axinvplusb.rb
117
81
  - lib/malge/leastsquare.rb
118
82
  - lib/malge/matrix.rb
119
83
  - lib/malge/simultaneousequations.rb
@@ -124,9 +88,9 @@ files:
124
88
  - test/test_errorfittedfunction_aexpbx.rb
125
89
  - test/test_errorfittedfunction_aexpbx32.rb
126
90
  - test/test_errorfittedfunction_axinv.rb
91
+ - test/test_errorfittedfunction_axinv2.rb
92
+ - test/test_errorfittedfunction_axinv3.rb
127
93
  - test/test_errorfittedfunction_axinv32.rb
128
- - test/test_errorfittedfunction_axinv32plusb.rb
129
- - test/test_errorfittedfunction_axinvplusb.rb
130
94
  - test/test_leastsquare.rb
131
95
  - test/test_simultaneousequations.rb
132
96
  homepage: http://github.com/ippei94da/malge
@@ -144,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
108
  version: '0'
145
109
  segments:
146
110
  - 0
147
- hash: 684098349
111
+ hash: 511935667
148
112
  required_rubygems_version: !ruby/object:Gem::Requirement
149
113
  none: false
150
114
  requirements:
@@ -153,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
117
  version: '0'
154
118
  requirements: []
155
119
  rubyforge_project:
156
- rubygems_version: 1.8.23
120
+ rubygems_version: 1.8.11
157
121
  signing_key:
158
122
  specification_version: 3
159
123
  summary: Math ALGEbra library.
@@ -1,32 +0,0 @@
1
- #! /usr/bin/env ruby
2
- # coding: utf-8
3
-
4
- #Assumed y = a[0] + a[1]/x^{3/2}
5
- #
6
- #NOTE: @coefficients[0] might become negative value.
7
- # Need discussion for dealing?
8
- class Malge::ErrorFittedFunction::AXInv32PlusB < Malge::ErrorFittedFunction
9
-
10
- def fit
11
- inv32_pairs =
12
- @diff_abs_pairs.map {|pair| [1.0/(pair[0] ** (3.0/2.0)), pair[1]]}
13
- @coefficients = Malge::LeastSquare.least_square_1st_degree(inv32_pairs)
14
- end
15
-
16
- def expected_error(x)
17
- @coefficients[0] + @coefficients[1] * (1.0/(x** (3.0/2.0)))
18
- end
19
-
20
- # y = a[0] + a[1]/x
21
- # y - a[0] = a[1]/x
22
- # x = a[1] / (y - a[0])
23
- def x(y)
24
- return (@coefficients[1] / (y - @coefficients[0])) ** (2.0/3.0)
25
- end
26
-
27
- def finest_y
28
- @raw_pairs.max_by { |pair| pair[0] }[1]
29
- end
30
-
31
- end
32
-
@@ -1,32 +0,0 @@
1
- #! /usr/bin/env ruby
2
- # coding: utf-8
3
-
4
- #Assumed y = a[0] + a[1]/x
5
- #
6
- #NOTE: @coefficients[0] might become negative value.
7
- # Need discussion for dealing?
8
- class Malge::ErrorFittedFunction::AXInvPlusB < Malge::ErrorFittedFunction
9
-
10
- def fit
11
- inv_pairs = @diff_abs_pairs.map {|pair| [1.0/pair[0], pair[1]]}
12
- @coefficients = Malge::LeastSquare.least_square_1st_degree(inv_pairs)
13
- end
14
-
15
- def expected_error(x)
16
- #@coefficients[0] + @coefficients[1] * x
17
- @coefficients[0] + @coefficients[1] * (1.0/x)
18
- end
19
-
20
- # y = a[0] + a[1]/x
21
- # y - a[0] = a[1]/x
22
- # x = a[1] / (y - a[0])
23
- def x(y)
24
- return @coefficients[1] / (y - @coefficients[0])
25
- end
26
-
27
- def finest_y
28
- @raw_pairs.max_by { |pair| pair[0] }[1]
29
- end
30
-
31
- end
32
-
@@ -1,67 +0,0 @@
1
- #! /usr/bin/env ruby
2
- # coding: utf-8
3
-
4
- require "test/unit"
5
- require "malge.rb"
6
- #require "malge/errorfittedfunction.rb"
7
-
8
- class TC_ErrorFittedFunction_AXInv32PlusB < Test::Unit::TestCase
9
- TOLERANCE = 1.0E-10
10
-
11
- def setup
12
- @axi00 = Malge::ErrorFittedFunction::AXInv32PlusB.new(
13
- [
14
- [ 1, 164.0],
15
- [ 4, 108.0],
16
- [16, 101.0],
17
- [64, 100.0],
18
- ]
19
- )
20
-
21
- @axi01 = Malge::ErrorFittedFunction::AXInv32PlusB.new(
22
- [
23
- [ 1, 164.0],
24
- [ 4, 92.0],
25
- [16, 101.0],
26
- [64, 100.0],
27
- ]
28
- )
29
-
30
- end
31
-
32
- #def test_initialize
33
- #end
34
-
35
- def test_fit
36
- corrects = [0.0, 64.0]
37
- results = @axi00.coefficients
38
- assert_in_delta(corrects[0], results[0], TOLERANCE)
39
- assert_in_delta(corrects[1], results[1], TOLERANCE)
40
- end
41
-
42
- def test_expected_error
43
- assert_equal(64.0, @axi00.expected_error(1.0))
44
- assert_equal( 8.0, @axi00.expected_error(4.0))
45
- assert_equal( 1.0, @axi00.expected_error(16.0))
46
-
47
- assert_equal(64.0, @axi01.expected_error(1.0))
48
- assert_equal( 8.0, @axi01.expected_error(4.0))
49
- assert_equal( 1.0, @axi01.expected_error(16.0))
50
- end
51
-
52
- def test_finest_y
53
- assert_equal(100.0, @axi00.finest_y)
54
- assert_equal(100.0, @axi01.finest_y)
55
- end
56
-
57
- def test_variance
58
- assert_equal( 0.0, @axi00.variance)
59
- assert_equal( 0.0, @axi01.variance)
60
- end
61
-
62
- def test_x
63
- assert_in_delta(16.0, @axi00.x(1.0), TOLERANCE)
64
- end
65
-
66
- end
67
-
@@ -1,50 +0,0 @@
1
- #! /usr/bin/env ruby
2
- # coding: utf-8
3
-
4
- require "test/unit"
5
- require "malge.rb"
6
- require "malge/errorfittedfunction.rb"
7
-
8
- class TC_ErrorFittedFunction_AXInvPlusB < Test::Unit::TestCase
9
- def setup
10
- @axi01 = Malge::ErrorFittedFunction::AXInvPlusB.new(
11
- [
12
- [1.0, 8.0],
13
- [2.0, 6.0],
14
- [4.0, 5.0],
15
- [8.0, 3.0],
16
- ]
17
- )
18
- end
19
-
20
- #def test_initialize
21
- #end
22
-
23
- def test_fit
24
- assert_equal(1.0, @axi01.coefficients[0])
25
- assert_equal(4.0, @axi01.coefficients[1])
26
- end
27
-
28
- def test_expected_error
29
- assert_equal(5.0, @axi01.expected_error(1.0))
30
- assert_equal(3.0, @axi01.expected_error(2.0))
31
- assert_equal(2.0, @axi01.expected_error(4.0))
32
- assert_equal(1.5, @axi01.expected_error(8.0))
33
- end
34
-
35
- def test_finest_y
36
- assert_equal(3.0, @axi01.finest_y)
37
- end
38
-
39
- def test_variance
40
- assert_equal( 0.0, @axi01.variance)
41
- #diff_abs = [4,1]
42
- #expected = [1,3]
43
- end
44
-
45
- def test_x
46
- assert_equal(4.0, @axi01.x(2.0))
47
- end
48
-
49
- end
50
-