public override float Trace() { if (_rowCount != _columnCount) { throw new ArgumentException(Resources.ArgumentMatrixSquare); } var sum = 0.0f; for (var i = 0; i < _rowCount; i++) { sum += _values[(i * _rowCount) + i]; } return sum; }