docs: public static DMatrixRMaj singular(int numRows, int numCols,
                                         Random rand, double ...sv)
      {
          DMatrixRMaj U,V,S;
  
          // speed it up in compact format
          if( numRows > numCols ) {
              U = RandomMatrices_DDRM.orthogonal(numRows, numCols, rand);
              V = RandomMatrices_DDRM.orthogonal(numCols, numCols, rand);
              S = new DMatrixRMaj(numCols, numCols);
          } else {
              U = RandomMatrices_DDRM.orthogonal(numRows, numRows, rand);
              V = RandomMatrices_DDRM.orthogonal(numCols, numCols, rand);
              S = new DMatrixRMaj(numRows, numCols);
          }
  
          int min = Math.min(numRows,numCols);
          min = Math.min(min,sv.length);
          
          for( int i = 0; i < min; i++ ) {
              S.set(i,i,sv[i]);
          }
  
          DMatrixRMaj tmp = new DMatrixRMaj(numRows,numCols);
          CommonOps_DDRM.mult(U,S,tmp);
          S.reshape(numRows,numCols);
          CommonOps_DDRM.multTransB(tmp,V,S);
  
          return S;
      }