# File lib/backports/1.9.2/stdlib/matrix.rb, line 733 def unitary? Matrix.Raise ErrDimensionMismatch unless square? rows.each_with_index do |row, i| column_size.times do |j| s = 0 row_size.times do |k| s += row[k].conj * rows[k][j] end return false unless s == (i == j ? 1 : 0) end end true end