from typing import List
import math


def create_power_two_jump_candidates(threshold: int) -> List[int]:
    """
    Given a current threshold, return three threshold candidates.
    The middle candidate is equal to the current threshold.
    The low and high candidates are equal to the current threshold plus or minus the power of two closest to half
    the current threshold.
    :param threshold:
    :return:
    """
    assert(threshold > 0)
    increase_distance = 1 << (round(math.log(threshold, 2.0)) - 2)  # threshold can increase to ~1.25x
    decrease_distance = 1 << (round(math.log(threshold, 2.0)) - 1)  # threshold can decrease to ~0.5x
    return [max(threshold - decrease_distance, 1), threshold, threshold + increase_distance]