sparse_matrix 0.3.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +0 -4
- data/lib/sparse_matrix/version.rb +1 -1
- data/lib/sparse_matrix.rb +36 -28
- data/spec/sparsematrix_spec.rb +35 -9
- metadata +1 -4
- data/input/matrix_a +0 -3
- data/input/matrix_b +0 -4
- data/input/null +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4120f3a75b5bbe035792ea2d4591242c98e47b8f
|
4
|
+
data.tar.gz: fa31f06d130f45b3faf16c54f4856a3bc996d007
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9705df1392dd449ce9e1c22a027800fb79acc56e3d43de157a0c991fe7432870a7e789d54dcf38ad3ddd70f862fd441b992cb32414dd266250a0c910236ec75d
|
7
|
+
data.tar.gz: 93eb2b3be78734d111532d11077a6e29b73bdeab7d20fcde756c755245050745ee8b99da043ccc8f263d367b4687521d082c535b39835c4e3cbe793c914a1068
|
data/README.md
CHANGED
data/lib/sparse_matrix.rb
CHANGED
@@ -3,10 +3,39 @@ require "sparse_matrix/version"
|
|
3
3
|
module SparseMatrix
|
4
4
|
class AbstractMatrix
|
5
5
|
|
6
|
-
def
|
6
|
+
def initialize(r=0,c=0)
|
7
|
+
@row = r
|
8
|
+
@column = c
|
9
|
+
end
|
10
|
+
|
11
|
+
attr_accessor :row,:column
|
12
|
+
|
13
|
+
def read_matrix
|
7
14
|
|
8
15
|
end
|
9
|
-
|
16
|
+
|
17
|
+
def to_s
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
def print_matrix
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
def +(b)
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def *(b)
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class SparseVector
|
35
|
+
@i
|
36
|
+
@j
|
37
|
+
@value
|
38
|
+
|
10
39
|
end
|
11
40
|
|
12
41
|
class SparseMatrix < AbstractMatrix
|
@@ -17,34 +46,13 @@ module SparseMatrix
|
|
17
46
|
|
18
47
|
class DenseMatrix < AbstractMatrix
|
19
48
|
@mat
|
20
|
-
|
21
|
-
|
22
|
-
@
|
23
|
-
@mat = 0
|
49
|
+
def initialize(r=0,c=0,matrix=[])
|
50
|
+
super(r,c)
|
51
|
+
@mat = matrix
|
24
52
|
end
|
25
53
|
|
26
54
|
attr_accessor :mat
|
27
55
|
|
28
|
-
def read_matrix
|
29
|
-
text = File.open(@filename).read
|
30
|
-
a = text.split(/\n\n+/)
|
31
|
-
a = text.split(/\n/)
|
32
|
-
@mat = to_m(a)
|
33
|
-
end
|
34
|
-
|
35
|
-
def mapmap(a)
|
36
|
-
a.map { |r|
|
37
|
-
r.map { |e|
|
38
|
-
yield e
|
39
|
-
}
|
40
|
-
}
|
41
|
-
end
|
42
|
-
|
43
|
-
def to_m(a)
|
44
|
-
a = a.map { |r| r.split(/\s+/) }
|
45
|
-
a = mapmap(a) { |x| x.to_f }
|
46
|
-
end
|
47
|
-
|
48
56
|
def to_s()
|
49
57
|
s="| "
|
50
58
|
for i in (0... @mat.length)
|
@@ -78,7 +86,7 @@ module SparseMatrix
|
|
78
86
|
end
|
79
87
|
|
80
88
|
def +(b)
|
81
|
-
c = DenseMatrix.new()
|
89
|
+
c = DenseMatrix.new(2,2,[[0.0,0.0],[0.0,0.0]])
|
82
90
|
c.read_matrix
|
83
91
|
for i in (0...@mat.length)
|
84
92
|
for j in(0...@mat.length)
|
@@ -89,7 +97,7 @@ module SparseMatrix
|
|
89
97
|
end
|
90
98
|
|
91
99
|
def *(b)
|
92
|
-
c=DenseMatrix.new()
|
100
|
+
c = DenseMatrix.new(2,2,[[0.0,0.0],[0.0,0.0]])
|
93
101
|
c.read_matrix
|
94
102
|
for i in(0...@mat.length)
|
95
103
|
for j in(0...@mat.length)
|
data/spec/sparsematrix_spec.rb
CHANGED
@@ -4,7 +4,39 @@ include SparseMatrix
|
|
4
4
|
describe SparseMatrix do
|
5
5
|
|
6
6
|
describe AbstractMatrix do
|
7
|
-
|
7
|
+
before :all do
|
8
|
+
AA = AbstractMatrix.new
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "Basic" do
|
12
|
+
it 'existe una clase Abstracta Matrix' do
|
13
|
+
AA.instance_of?(AbstractMatrix) == true
|
14
|
+
end
|
15
|
+
it 'se puede acceder a los atributos (row)?' do
|
16
|
+
AA.row.should == 0
|
17
|
+
end
|
18
|
+
it 'se puede acceder a los atributos (column)' do
|
19
|
+
AA.column.should == 0
|
20
|
+
end
|
21
|
+
end
|
22
|
+
describe "Existen los Metodos?" do
|
23
|
+
it 'Existe metodo imprimir matriz abstracto?' do
|
24
|
+
AA.should respond_to("print_matrix")
|
25
|
+
end
|
26
|
+
it 'Existe metodo to_s abstracto?' do
|
27
|
+
AA.should respond_to("to_s")
|
28
|
+
end
|
29
|
+
it 'Existe el operador sumar abstracto??' do
|
30
|
+
AA.should respond_to("+")
|
31
|
+
end
|
32
|
+
it 'Existe el operador multiplicar abstracto?' do
|
33
|
+
AA.should respond_to("*")
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe SparseVector do
|
39
|
+
|
8
40
|
end
|
9
41
|
|
10
42
|
describe SparseMatrix do
|
@@ -14,25 +46,19 @@ describe SparseMatrix do
|
|
14
46
|
|
15
47
|
describe DenseMatrix do
|
16
48
|
before :all do
|
17
|
-
DMA = DenseMatrix.new(
|
18
|
-
DMB = DenseMatrix.new(
|
49
|
+
DMA = DenseMatrix.new(2,2,[[1.0,2.0],[4.0,5.0]])
|
50
|
+
DMB = DenseMatrix.new(2,2,[[1.0,2.0],[3.0,4.0]])
|
19
51
|
end
|
20
52
|
|
21
53
|
it 'existe una clase Matrix' do
|
22
54
|
DMA.instance_of?(DenseMatrix) == true
|
23
55
|
end
|
24
56
|
|
25
|
-
it 'No se ha cargado los datos del fichero al objeto Matrix_T' do
|
26
|
-
DMA.mat.should eq(0)
|
27
|
-
end
|
28
|
-
|
29
57
|
it 'Se han cargado los datos al objeto A' do
|
30
|
-
DMA.read_matrix
|
31
58
|
DMA.mat.should be_kind_of(Array)
|
32
59
|
end
|
33
60
|
|
34
61
|
it 'Se han cargado los datos al objeto B' do
|
35
|
-
DMB.read_matrix
|
36
62
|
DMB.mat.should be_kind_of(Array)
|
37
63
|
end
|
38
64
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparse_matrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- KevinRobayna
|
@@ -108,9 +108,6 @@ files:
|
|
108
108
|
- LICENSE.txt
|
109
109
|
- README.md
|
110
110
|
- Rakefile
|
111
|
-
- input/matrix_a
|
112
|
-
- input/matrix_b
|
113
|
-
- input/null
|
114
111
|
- lib/sparse_matrix.rb
|
115
112
|
- lib/sparse_matrix/version.rb
|
116
113
|
- sparse_matrix.gemspec
|
data/input/matrix_a
DELETED
data/input/matrix_b
DELETED
data/input/null
DELETED