Method: Mathpack::SLE.solve_direct

Defined in:
lib/mathpack/sle.rb

.solve_directObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/mathpack/sle.rb', line 42

def self.solve_direct
  0.upto(@number - 1) do |i|
    maximum = 0.0
    max_line = i
    max_column = i
    i.upto(@number - 1) do |line|
      i.upto(@number - 1) do |column|
        maximum, max_line, max_column = @matrix[line][column].abs, line, column if @matrix[line][column].abs > maximum
      end
    end
    return false if maximum < EPS
    swap_lines(i, max_line) if (max_line != i)
    swap_columns(i, max_column) if (max_column != i)
    make_null_column(i)
  end
  true
end