def METHOD_NAME(seed=0):
    '''Marsaglia's xorshf generator'''
    a = [
        np.uint64(123456789+seed),
        np.uint64(362436069+seed),
        np.uint64(521288629+seed),
    ]
    def xorshf96():
        a[0] ^= a[0] << np.uint64(16)
        a[0] ^= a[0] >> np.uint64(5)
        a[0] ^= a[0] << np.uint64(1)
        t = a[0]
        a[0] = a[1]
        a[1] = a[2]
        a[2] = t ^ a[0] ^ a[1]
        return int(a[2])
    # for _ in range(10): xorshf96()
    return xorshf96