def functional_border_sizes(border_size):
    """Calculate border sizing used in process to gen user specified border size

    If border_size is negative then a stand-in border size is used to allow better keypoint tracking (i think... ?);
    negative border is then applied at end.

    :param border_size: user supplied border size
    :return: (border_size, neg_border_size) tuple of functional border sizes

    >>> functional_border_sizes(100)
    (100, 0)
    >>> functional_border_sizes(-10)
    (100, 110)
    """
    # 用户提供的边框宽度是负数
    if border_size < 0:
        # neg_border_size等于100加上负数的绝对值
        neg_border_size = 100 + abs(border_size)
        # border_size为100
        border_size = 100
    # 是非负数
    else:
        neg_border_size = 0

    return border_size, neg_border_size