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