def _determine_turn_(f, g, start, stop, side, turn_relative=False):
    """
     determines if we are going upwards or downwards at start
    _determine_turn_(f=self.func_f,g=self.func_g,start=self.start,
                     stop=self.stop,side=self.side)
     turn_0 is for overriding the calculation
    """
    du = (stop - start) * 1e-06
    dy = g(start + du) - g(start)
    turn = 1.0
    if dy <= 0 and side == 'left':
        turn = 1.0
    if dy > 0 and side == 'left':
        turn = -1.0
    if dy <= 0 and side == 'right':
        turn = -1.0
    if dy > 0 and side == 'right':
        turn = 1.0
    if turn_relative == True:
        if side == 'right':
            turn = 1.0
        else:
            turn = -1.0
    return turn
