mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/matrix.rb (Matrix#rank): Two bug fixes. One made Matrix[[0,0],[0,0],[1,0]].rank raise a NoMethodError while the other one had Matrix[[0,1],[0,0],[1,0]].rank raise a TypeError.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d09cde1861
commit
6023a79deb
2 changed files with 8 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Thu Sep 17 06:03:40 2009 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
|
||||||
|
|
||||||
|
* lib/matrix.rb (Matrix#rank): Two bug fixes. One made
|
||||||
|
Matrix[[0,0],[0,0],[1,0]].rank raise a NoMethodError while the other
|
||||||
|
one had Matrix[[0,1],[0,0],[1,0]].rank raise a TypeError.
|
||||||
|
|
||||||
Thu Sep 17 06:02:04 2009 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
|
Thu Sep 17 06:02:04 2009 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
|
||||||
|
|
||||||
* lib/matrix.rb: Optimizations
|
* lib/matrix.rb: Optimizations
|
||||||
|
|
|
@ -751,14 +751,14 @@ class Matrix
|
||||||
rank = 0
|
rank = 0
|
||||||
a_column_size.times do |k|
|
a_column_size.times do |k|
|
||||||
if (akk = a[k][k]) == 0
|
if (akk = a[k][k]) == 0
|
||||||
i = (k+1 ... a_column_size).find {|i|
|
i = (k+1 ... a_row_size).find {|i|
|
||||||
a[i][k] != 0
|
a[i][k] != 0
|
||||||
}
|
}
|
||||||
if i
|
if i
|
||||||
a[i], a[k] = a[k], a[i]
|
a[i], a[k] = a[k], a[i]
|
||||||
akk = a[k][k]
|
akk = a[k][k]
|
||||||
else
|
else
|
||||||
i = (k+1 ... a_row_size).find {|i|
|
i = (k+1 ... a_column_size).find {|i|
|
||||||
a[k][i] != 0
|
a[k][i] != 0
|
||||||
}
|
}
|
||||||
next if i.nil?
|
next if i.nil?
|
||||||
|
|
Loading…
Reference in a new issue