summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/matrix.rb12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/matrix.rb b/lib/matrix.rb
index 18f53b7316..dbae755204 100644
--- a/lib/matrix.rb
+++ b/lib/matrix.rb
@@ -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