def _downsample(self, how, **kwargs):
<EOL>if self.kind == '<STR_LIT>':<EOL><INDENT>return super()._downsample(how, **kwargs)<EOL><DEDENT>how = self._is_cython_func(how) or how<EOL>ax = self.ax<EOL>if is_subperiod(ax.freq, self.freq):<EOL><INDENT>return self._groupby_and_aggregate(how, grouper=self.grouper,<EOL>**kwargs)<EOL><DEDENT>elif is_superperiod(ax.freq, self.freq):<EOL><INDENT>if how == '<STR_LIT>':<EOL><INDENT>return self._groupby_and_aggregate(how, grouper=self.grouper)<EOL><DEDENT>return self.asfreq()<EOL><DEDENT>elif ax.freq == self.freq:<EOL><INDENT>return self.asfreq()<EOL><DEDENT>raise IncompatibleFrequency(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'.format(ax.freq, self.freq))<EOL>
Downsample the cython defined function.

Parameters
----------
how : string / cython mapped function
**kwargs : kw args passed to how function