code: private void setup(DMatrixRBlock orig) {
          blockLength = orig.blockLength;
          dataW.blockLength = blockLength;
          dataWTA.blockLength = blockLength;
  
          this.dataA = orig;
          A.original = dataA;
  
          int l = Math.min(blockLength,orig.numCols);
          dataW.reshape(orig.numRows,l,false);
          dataWTA.reshape(l,orig.numRows,false);
          Y.original = orig;
          Y.row1 = W.row1 = orig.numRows;
          if( temp.length < blockLength )
              temp = new double[blockLength];
          if( gammas.length < orig.numCols )
              gammas = new double[ orig.numCols ];
  
          if( saveW ) {
              dataW.reshape(orig.numRows,orig.numCols,false);
          }
      }
docs: Adjust submatrices and helper data structures for the input matrix.  Must be called
  before the decomposition can be computed.
  
  @param orig