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
|