docs: public static int rank( DMatrixRMaj A  ) {
          SingularValueDecomposition_F64<DMatrixRMaj> svd = DecompositionFactory_DDRM.svd(A.numRows,A.numCols,false,true,true);
  
          if( svd.inputModified() ) {
              A = A.copy();
          }
          if( !svd.decompose(A)) {
              throw new RuntimeException("SVD Failed!");
          }
  
          int N = svd.numberOfSingularValues();
          double sv[] = svd.getSingularValues();
  
          double threshold = singularThreshold(sv,N);
          int count = 0;
          for (int i = 0; i < sv.length; i++) {
              if( sv[i] >= threshold ) {
                  count++;
              }
          }
          return count;
      }