docs: public static void descendingOrder(DMatrixRMaj U , boolean tranU ,
                                         DMatrixRMaj W ,
                                         DMatrixRMaj V , boolean tranV )
      {
          int numSingular = Math.min(W.numRows,W.numCols);
  
          checkSvdMatrixSize(U, tranU, W, V, tranV);
  
          for( int i = 0; i < numSingular; i++ ) {
              double bigValue=-1;
              int bigIndex=-1;
  
              // find the smallest singular value in the submatrix
              for( int j = i; j < numSingular; j++ ) {
                  double v = W.get(j,j);
  
                  if( v > bigValue ) {
                      bigValue = v;
                      bigIndex = j;
                  }
              }
  
              // only swap if the current index is not the smallest
              if( bigIndex == i)
                  continue;
  
              if( bigIndex == -1 ) {
                  // there is at least one uncountable singular value.  just stop here
                  break;
              }
  
              double tmp = W.get(i,i);
              W.set(i,i,bigValue);
              W.set(bigIndex,bigIndex,tmp);
  
              if( V != null ) {
                  swapRowOrCol(V, tranV, i, bigIndex);
              }
  
              if( U != null ) {
                  swapRowOrCol(U, tranU, i, bigIndex);
              }
          }
      }