def Uniform()

in multiset_codec/codecs.py [0:0]


def Uniform(prec: int) -> Codec:
    '''
    Encodes and decodes onto the ANS state using a uniform
    distribution in the interval [0, prec).
    '''
    def encode(ans_state, symbol):
        ans_state = rans.encode(ans_state, symbol, 1, prec)
        return (ans_state,)

    def decode(ans_state):
        symbol, decode_ = rans.decode(ans_state, prec)
        ans_state = decode_(symbol, 1)
        return ans_state, symbol

    return Codec(encode, decode)