public function det()
    {
        if ($this->m == $this->n) {
            $d = $this->pivsign;
            for ($j = 0; $j < $this->n; ++$j) {
                $d *= $this->LU[$j][$j];
            }

            return $d;
        }

        throw new CalculationException(Matrix::MATRIX_DIMENSION_EXCEPTION);
    }