I need a function split : Word64 -> (Word64, Word64)that takes any Word64 and breaks it into two different Word64 dictionaries so that I can continue to split children and grandchildren in any arbitrary order, avoiding a collision. That is, for any pair of sa, sbconsecutive seed cleavages (for example, sa = fst.split.fst.split$ seed) it sashould be different from sbwith a coefficient> 99.99%.
I thought about using the mating function, but this makes the children exponentially larger than the parents, so after a few sections there is an integer overflow. I need something that basically sends any value in the space of possible Word64 bits to two other values in a semi-random manner. In addition, I need it to be as quick and easy as possible. The fewer instructions, the better. This is probably a very stupid calculation that I miss.
What can be used here?
Disclaimer: I used to ask similar questions, but now I finally understand the problem better and know exactly what I need.
source
share