summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/matrix.rb11
-rw-r--r--test/matrix/test_matrix.rb5
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/matrix.rb b/lib/matrix.rb
index 75b5da29c7..336a92877b 100644
--- a/lib/matrix.rb
+++ b/lib/matrix.rb
@@ -1533,6 +1533,17 @@ class Matrix
alias_method :conj, :conjugate
#
+ # Returns the adjoint of the matrix.
+ #
+ # Matrix[ [i,1],[2,-i] ].adjoint
+ # # => -i 2
+ # # 1 i
+ #
+ def adjoint
+ conjugate.transpose
+ end
+
+ #
# Returns the imaginary part of the matrix.
# Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]
# # => 1+2i i 0
diff --git a/test/matrix/test_matrix.rb b/test/matrix/test_matrix.rb
index f963b2d06a..b134bfb3a1 100644
--- a/test/matrix/test_matrix.rb
+++ b/test/matrix/test_matrix.rb
@@ -807,4 +807,9 @@ class TestMatrix < Test::Unit::TestCase
assert_equal false, @a3.orthogonal?
assert_raise(Matrix::ErrDimensionMismatch) { @m1.orthogonal? }
end
+
+ def test_adjoint
+ assert_equal(Matrix[[(1-2i), 1], [(0-1i), 2], [0, 3]], @c1.adjoint)
+ assert_equal(Matrix.empty(0,2), @e1.adjoint)
+ end
end