def _getTopDownMapping(self):
<EOL>if self._topDownMappingM is None:<EOL><INDENT>if self.periodic:<EOL><INDENT>self._topDownValues = numpy.arange(self.minval + self.resolution / <NUM_LIT>,<EOL>self.maxval,<EOL>self.resolution)<EOL><DEDENT>else:<EOL><INDENT>self._topDownValues = numpy.arange(self.minval,<EOL>self.maxval + self.resolution / <NUM_LIT>,<EOL>self.resolution)<EOL><DEDENT>numCategories = len(self._topDownValues)<EOL>self._topDownMappingM = SM32(numCategories, self.n)<EOL>outputSpace = numpy.zeros(self.n, dtype=GetNTAReal())<EOL>for i in range(numCategories):<EOL><INDENT>value = self._topDownValues[i]<EOL>value = max(value, self.minval)<EOL>value = min(value, self.maxval)<EOL>self.encodeIntoArray(value, outputSpace, learn=False)<EOL>self._topDownMappingM.setRowFromDense(i, outputSpace)<EOL><DEDENT><DEDENT>return self._topDownMappingM<EOL>
Return the interal _topDownMappingM matrix used for handling the
        bucketInfo() and topDownCompute() methods. This is a matrix, one row per
        category (bucket) where each row contains the encoded output for that
        category.