public override bool IsHermitian()
{
if (RowCount != ColumnCount)
{
return false;
}
int stride = RowCount + 1;
for (var k = 0; k < _values.Length; k += stride)
{
if (!_values[k].IsReal())
{
return false;
}
}
for (var j = 0; j < ColumnCount; j++)
{
var index = j * RowCount;
for (var i = j + 1; i < RowCount; i++)
{
if (_values[(i*ColumnCount) + j] != _values[index + i].Conjugate())
{
return false;
}
}
}
return true;
}