Bug #6290 » hermitian-fix.diff
lib/matrix.rb | ||
---|---|---|
#
|
||
def hermitian?
|
||
Matrix.Raise ErrDimensionMismatch unless square?
|
||
each_with_index(:strict_upper).all? do |e, row, col|
|
||
each_with_index(:upper).all? do |e, row, col|
|
||
e == rows[col][row].conj
|
||
end
|
||
end
|
test/matrix/test_matrix.rb | ||
---|---|---|
assert_raise(ArgumentError) { @m1.minor(0) }
|
||
end
|
||
def test_hermitian?
|
||
i = Complex::I
|
||
assert(Matrix[[-2, -3-i, 3+i ],
|
||
[-3+i, 3, -5-7*i],
|
||
[ 3-i, -5+7*i, 9 ]].hermitian?)
|
||
assert(!Matrix[[-2, -3-i, 3+i ],
|
||
[-3+i, 3, 4-8*i],
|
||
[ 3-i, 4-8*i, 9 ]].hermitian?)
|
||
assert(!Matrix[[-2, -3-i, 3+i ],
|
||
[-3+i, 3, -5-7*i],
|
||
[ 3-i, -5+7*i, 9-4*i]].hermitian?)
|
||
end
|
||
def test_regular?
|
||
assert(Matrix[[1, 0], [0, 1]].regular?)
|
||
assert(Matrix[[1, 0, 0], [0, 1, 0], [0, 0, 1]].regular?)
|