docs: protected void upgradeSolution( DMatrixRMaj X ) {
          DMatrixRMaj z = Y; // recycle Y
  
          // compute the z which will minimize the 2-norm of X
          // because of the identity matrix tacked onto the end 'A' should never be singular
          if( !internalSolver.setA(W) )
              throw new RuntimeException("This should never happen.  Is input NaN?");
          z.reshape(numCols-rank,1);
          internalSolver.solve(X, z);
  
          // compute X by tweaking the original
          CommonOps_DDRM.multAdd(-1, W, z, X);
      }