def rgb_to_xterm(r, g, b):
    """Quantize RGB values to an xterm 256-color ID

    This works by envisioning the RGB values for all 256 xterm colors
    as 3D euclidean space and brute-force searching for the nearest
    neighbor.

    This is very slow.  If you're very lucky, :func:`compile_speedup`
    will replace this function automatically with routines in
    `_xterm256.c`.
    """
    if r < 5 and g < 5 and b < 5:
        return 16
    best_match = 0
    smallest_distance = 10000000000
    for c in xrange(16, 256):
        d = (COLOR_TABLE[c][0] - r) ** 2 + \
            (COLOR_TABLE[c][1] - g) ** 2 + \
            (COLOR_TABLE[c][2] - b) ** 2
        if d < smallest_distance:
            smallest_distance = d
            best_match = c
    return best_match
dataset/ETHPy150Open jart/fabulous/fabulous/xterm256.py/rgb_to_xterm/original