class Math::Matriz
Clase encargada de definir una matriz según el número de ceros.
Public Class Methods
new(f,c,v)
click to toggle source
recoge el número de filas, número de columnas y un vector con los valores de la matriz.
# File lib/matrix_disp.rb, line 7 def initialize (f,c,v) @f, @c = f, c @v = v end
Public Instance Methods
def_tipo()
click to toggle source
define el tipo de matriz y crea un objeto de matriz dispersa o de matriz densa según el número de ceros.
# File lib/matrix_disp.rb, line 12 def def_tipo if (((@v.count{|e| e == 0}*100)/(@f*@c)) >= 60) resultado = SparseMatrix.new for i in (0...@f*@c) tmp = SparseVector.new if @v[i] != 0 if resultado.matrix[i%@c].is_a? SparseVector resultado.matrix[i%@c][i/@f] = @v[i] else tmp[i/@f] = @v[i] resultado.matrix[i%@c] = tmp end end end return resultado else return DenseMatrix.new(@f,@c,@v) end end