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:
parent
729941da39
commit
5ef335319e
1 changed files with 6 additions and 6 deletions
|
@ -717,8 +717,8 @@ class Matrix
|
||||||
#++
|
#++
|
||||||
|
|
||||||
#
|
#
|
||||||
# Returns the determinant of the matrix. If the matrix is not square, the
|
# Returns the determinant of the matrix.
|
||||||
# result is 0. This method's algorithm is Gaussian elimination method
|
# This method's algorithm is Gaussian elimination method
|
||||||
# and using Numeric#quo(). Beware that using Float values, with their
|
# and using Numeric#quo(). Beware that using Float values, with their
|
||||||
# usual lack of precision, can affect the value returned by this method. Use
|
# 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.
|
# Rational values or Matrix#det_e instead if this is important to you.
|
||||||
|
@ -727,7 +727,7 @@ class Matrix
|
||||||
# => 45.0
|
# => 45.0
|
||||||
#
|
#
|
||||||
def determinant
|
def determinant
|
||||||
return 0 unless square?
|
Matrix.Raise ErrDimensionMismatch unless square?
|
||||||
|
|
||||||
size = row_size
|
size = row_size
|
||||||
a = to_a
|
a = to_a
|
||||||
|
@ -757,8 +757,8 @@ class Matrix
|
||||||
alias det determinant
|
alias det determinant
|
||||||
|
|
||||||
#
|
#
|
||||||
# Returns the determinant of the matrix. If the matrix is not square, the
|
# Returns the determinant of the matrix.
|
||||||
# result is 0. This method's algorithm is Gaussian elimination method.
|
# This method's algorithm is Gaussian elimination method.
|
||||||
# This method uses Euclidean algorithm. If all elements are integer,
|
# This method uses Euclidean algorithm. If all elements are integer,
|
||||||
# really exact value. But, if an element is a float, can't return
|
# really exact value. But, if an element is a float, can't return
|
||||||
# exact value.
|
# exact value.
|
||||||
|
@ -767,7 +767,7 @@ class Matrix
|
||||||
# => 63
|
# => 63
|
||||||
#
|
#
|
||||||
def determinant_e
|
def determinant_e
|
||||||
return 0 unless square?
|
Matrix.Raise ErrDimensionMismatch unless square?
|
||||||
|
|
||||||
size = row_size
|
size = row_size
|
||||||
a = to_a
|
a = to_a
|
||||||
|
|
Loading…
Add table
Reference in a new issue