<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def smooth(self, noise, strategy=INVERSE_STRATEGY):
 """ In-place smoothing See smooth_segment function Args: noise (float):
 Noise expected strategy (int):
 Strategy to use. Either smooth.INVERSE_STRATEGY or smooth.EXTRAPOLATE_STRATEGY Returns: :obj:`Segment` """

        if strategy is INVERSE_STRATEGY:
            self.points = with_inverse(self.points, noise)
        elif strategy is EXTRAPOLATE_STRATEGY:
            self.points = with_extrapolation(self.points, noise, 30)
        elif strategy is NO_STRATEGY:
            self.points = with_no_strategy(self.points, noise)
        return self