3 ms·
But you forgot! It's also a 3-wise independent linear hashing function! Which means it can be used for probabilistically approximately uniform sampling and coun
by zero_k 2y ago
But you forgot! It's also a 3-wise independent linear hashing function! Which means it can be used for probabilistically approximately uniform sampling and counting of solutions to boolean functions. This is super-duper useful. We use it to build counters that give probabilistic, but proven, counts. I explained the idea here in more understandable terms [1].
Basically, it halves the solution space approximately correctly each time. So you keep on adding them, until you have say, 10 solutions. Then you multiply the 10 with 2^k, where k is the number of XORs you added. That's it! So cool, no? And it's super-scalable, because it haves it each time, so you'll get to, say, 10 pretty quick!
Some research papers are here [2,3]. I work on this, the tools are here [4,5]. In the last model counting competition, it dominated all other competitors, when combined with an exact counter, slides of the competition here [6].
[1] https://www.msoos.org/2018/12/how-approximate-model-counting-works/ https://www.msoos.org/2018/12/how-approximate-model-counting...
[2] https://arxiv.org/abs/1306.5726 https://arxiv.org/abs/1306.5726
[3] https://www.cs.toronto.edu/~meel/Papers/cav20-sgm.pdf https://www.cs.toronto.edu/~meel/Papers/cav20-sgm.pdf
[4] https://github.com/meelgroup/approxmc https://github.com/meelgroup/approxmc
[5] https://github.com/meelgroup/unigen https://github.com/meelgroup/unigen
[6] https://mccompetition.org/assets/files/2024/MC2024_awards.pdf https://mccompetition.org/assets/files/2024/MC2024_awards.pd...
- wfn 2y agoGoddamn, that's just the most sexy use of XOR ever :O omg.