docs: public static double det( DMatrixRMaj mat )
      {
          int numCol = mat.getNumCols();
          int numRow = mat.getNumRows();
  
          if( numCol != numRow ) {
              throw new MatrixDimensionException("Must be a square matrix.");
          } else if( numCol <= UnrolledDeterminantFromMinor_DDRM.MAX ) {
              // slight performance boost overall by doing it this way
              // when it was the case statement the VM did some strange optimization
              // and made case 2 about 1/2 the speed
              if( numCol >= 2 ) {
                  return UnrolledDeterminantFromMinor_DDRM.det(mat);
              } else {
                  return mat.get(0);
              }
          } else {
              LUDecompositionAlt_DDRM alg = new LUDecompositionAlt_DDRM();
  
              if( alg.inputModified() ) {
                  mat = mat.copy();
              }
  
              if( !alg.decompose(mat) )
                  return 0.0;
              return alg.computeDeterminant().real;
          }
      }