code: def extractInputForTP(self, tm):
      
  
      # bursting cells in layer 4
      burstingColumns = tm.activeState["t"].sum(axis=1)
      burstingColumns[ burstingColumns < tm.cellsPerColumn ] = 0
      burstingColumns[ burstingColumns == tm.cellsPerColumn ] = 1
      # print "Bursting column indices=",burstingColumns.nonzero()[0]
  
      # correctly predicted cells in layer 4
      correctlyPredictedCells = numpy.zeros(self._inputDimensions).astype(realDType)
      idx = (tm.predictedState["t-1"] + tm.activeState["t"]) == 2
      idx = idx.reshape(self._inputDimensions)
      correctlyPredictedCells[idx] = 1.0
      # print "Predicted->active cell indices=",correctlyPredictedCells.nonzero()[0]
  
      # all currently active cells in layer 4
      spInputVector = tm.learnState["t"].reshape(self._inputDimensions)
      # spInputVector = tm.activeState["t"].reshape(self._inputDimensions)
  
      return (correctlyPredictedCells, spInputVector, burstingColumns)
docs: Extract inputs for TP from the state of temporal memory
      three information are extracted
      1. correctly predicted cells
      2. all active cells
      3. bursting cells (unpredicted input)