code: @Override
      public ZMatrixRMaj getUpper(ZMatrixRMaj upper )
      {
          int numRows = LU.numRows < LU.numCols ? LU.numRows : LU.numCols;
          int numCols = LU.numCols;
  
          upper = UtilDecompositons_ZDRM.checkZerosLT(upper, numRows,numCols);
  
          for( int i = 0; i < numRows; i++ ) {
              for( int j = i; j < numCols; j++ ) {
                  int indexLU = LU.getIndex(i,j);
                  int indexU = upper.getIndex(i,j);
  
                  double real = LU.data[indexLU];
                  double imaginary = LU.data[indexLU+1];
  
                  upper.data[indexU] = real;
                  upper.data[indexU+1] = imaginary;
              }
          }
  
          return upper;
      }
docs: Writes the upper triangular matrix into the specified matrix.
  
  @param upper Where the upper triangular matrix is writen to.