-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTriDiagonalSparse.rb
More file actions
35 lines (32 loc) · 853 Bytes
/
TriDiagonalSparse.rb
File metadata and controls
35 lines (32 loc) · 853 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
require_relative 'SparseMatrix'
require_relative 'SparseMatrixPrePost'
class TriDiagonalSparse<SparseMatrix
def initialize(*args)
super(*args)
invariants
end
def invariants()
assert_equal @dimension.length, 2, "Not a 2D TriDiagonalSparse Matrix"
assert(@dimension[0]>=6, "Not a valid TriDiagonalSparse Matrix. Too small")
assert(@dimension[1]>=6, "Not a valid TriDiagonalSparse Matrix. Too small")
assert(check_tri_diagonal,"Not TriDiagonalSparse")
super
end
def check_tri_diagonal
retval=true
self.get_sparse_matrix_hash.each do |key,value|
if(key[0]>key[1]+1||key[0]<key[1]-1)
return false
end
end
return retval
end
end
b=TriDiagonalSparse.new(6,6)
b.insert_at([0,0],23)
b.insert_at([1,0],23)
b.insert_at([0,1],23)
b.insert_at([2,1],23)
b.insert_at([1,2],23)
b.insert_at([3,1],23123)
puts b.check_tri_diagonal