Simulating Infinity in Conway's Game of Life with Modern C++
L'auteur a développé GOLDE, un éditeur et simulateur d'automates cellulaires en C++ moderne capable de simuler des trillions de générations très rapidement. L'implémentation s'appuie sur l'algorithme HashLife, qui utilise un quadtree canonique mémoïsé pour réutiliser des sous-patterns identiques et sauter de nombreuses générations. La représentation emploie des nœuds immuables pointant vers quatre quadrants, un allocateur d'arène pour la stabilité des pointeurs et une table de hachage en open-addressing pour la canonicalisation. Le cas de base est un bloc 8x8 précalculé (65 536 configurations) évalué par opérations bit à bit et tables de consultation pour obtenir le centre 4x4 deux générations plus tard sans branchements. GOLDE gère les topos bornés (tore) via une abstraction Topology qui copie des cellules "fantômes", supporte des pas arbitraires en décomposant n en puissances de deux, utilise std::jthread pour un arrêt propre et un cache par thread pour les simulations multiples.