Using standard sieve methods, we were able to rapidly compute the prime counting function for primes of the form n2 + 1 up to 260≈1018; further computations take more than 1hr to compute. The program has three parameters: a starting value and a common ratio, and a boolean that toggles a detailed view of the computational results. The algorithm itself uses a residue filter mod 4 and a set of small primes to sieve out unwanted numbers. The primality test used is the Miller-Rabin with bases (2,3,5,7,11,13) for 64-bit, giving fast and exact primality tests for long inputs. Only even n's are considered, and the counting is maintained via a cumulative count across calls to avoid recomputation. The code can be modified to analyze various relations stemming from the Bateman-Horn Conjecture: for instance, we analyzed the ratio of the prime counting function for two upper bounds with a common ratio, finding that the ratio approaches the square root of the common ratio, a finding that is supported by the conjecture. Read More
This project is a replication of research by Liu et al. (2024). Unlike traditional implementations that use polling-based code with manual message handling and state management, DistAlgo enables incremental computation to atuomatically optimize the condition evaluation, only re-checking when relevant messages arrive rather than continuously polling across all conditions, resulting in much better performance while maintaining accuracy, as described by Liu et al. Many thanks to Dr. Liu for answering my questions and for the resources to help in understanding her work in incrementalization for efficiency improvement. Read More
An algorithm for distributed systems based on the voting elimination game mechanic of Among Us, created using the incrementalization framework for efficient distributed computation developed by Liu et al. (2024). The system showcases how incremental techniques can optimize distributed gaming scenarios by avoiding unnecessary recomputation and maintaining efficient state management across multiple processes. Read More