public function det()
    {
        if (!$this->isSquare()) {
            throw new \RuntimeException('Cannot compute determinant of non square matrix!');
        }

        if ($this->size->rows == 2) {
            return $this->get(0,0) * $this->get(1,1) - $this->get(0,1) * $this->get(1,0);
        } else {
            $int_out = 0;

            $arr_row = $this->arr[0];

            foreach ($arr_row as $n => $v) {
                $int_out += pow(-1, $n + 2) * $v * $this->subMatrix(0, $n)->det();
            }

            return $int_out;
        }
    }