<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def map_dual_axis(low, high, centre, dead_zone, hot_zone, value):
 """ Map an axis with a central dead zone and hot zones at each end to a range from -1.0 to 1.0. This in effect uses two calls to map_single_axis, choosing whether to use centre and low, or centre and high as the low and high values in that call based on which side of the centre value the input value falls. This is the call that handles mapping of values on regular joysticks where there's a centre point to which the physical control returns when no input is being made. :param low: The raw value corresponding to the strongest negative input (stick far left / down). :param high: The raw value corresponding to the strongest positive input (stick far right / up). :param centre: The raw value corresponding to the resting position of the axis when no user interaction is happening. :param dead_zone: The proportion of each (positive and negative) part of the motion away from the centre which should result in an output of 0.0 :param hot_zone: The proportion of each (positive and negative) part of the motion away from each extreme end of the range which should result in 1.0 or -1.0 being returned (depending on whether we're on the high or low side of the centre point) :param value: The raw value to map :return: The filtered and clamped value, from -1.0 at low to 1.0 at high, with a centre as specified mapping to 0.0 """

    if value <= centre:
        return map_single_axis(centre, low, dead_zone, hot_zone, value)
    else:
        return map_single_axis(centre, high, dead_zone, hot_zone, value)