1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/matrix.rb: Matrix.determinant: raise on rectangular matrices

[ruby-core:28271]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
marcandre 2010-04-01 18:06:08 +00:00
parent 729941da39
commit 5ef335319e

View file

@ -717,8 +717,8 @@ class Matrix
#++
#
# Returns the determinant of the matrix. If the matrix is not square, the
# result is 0. This method's algorithm is Gaussian elimination method
# Returns the determinant of the matrix.
# This method's algorithm is Gaussian elimination method
# and using Numeric#quo(). Beware that using Float values, with their
# usual lack of precision, can affect the value returned by this method. Use
# Rational values or Matrix#det_e instead if this is important to you.
@ -727,7 +727,7 @@ class Matrix
# => 45.0
#
def determinant
return 0 unless square?
Matrix.Raise ErrDimensionMismatch unless square?
size = row_size
a = to_a
@ -757,8 +757,8 @@ class Matrix
alias det determinant
#
# Returns the determinant of the matrix. If the matrix is not square, the
# result is 0. This method's algorithm is Gaussian elimination method.
# Returns the determinant of the matrix.
# This method's algorithm is Gaussian elimination method.
# This method uses Euclidean algorithm. If all elements are integer,
# really exact value. But, if an element is a float, can't return
# exact value.
@ -767,7 +767,7 @@ class Matrix
# => 63
#
def determinant_e
return 0 unless square?
Matrix.Raise ErrDimensionMismatch unless square?
size = row_size
a = to_a