The art of computer programming, volume 4, fascicle 0 : introduction to combinatorial algorithms and Boolean functions - KNUTH, Donald E. (Addison-Wesley, 2008)