This is a classic paper introducing Chudnovsky's algorithm for computing pi and its efficient computation. I consider it landmark.
Some more helpful materials:
-
A Detailed Proof of Chudnovsky Formula: Excellent first-principles presentation of the formula.
Joerg Arndt's tour de force on computer arithmetic algorithms. He's been in the business for a while.
There are a few references on binary splitting. The canonical one for me is the Haible paper.
-
Link: "Faster arithmetic for number-theoretic transforms" by David Harvey. These slides are generally useful for the implementation of NTTs. Includes Shoup's modular arithmetic trick.
-
Link: A simple NTT tutorial going through the basics.
-
Link: Mikko Tommila's notes on the NTT.
-
Speeding up the number theoretic transform by Longa and Naehrig
-
The FFT - an algorithm the whole family can use: Just a fun paper title. Not useful for this project.
-
Generalized Mersenne Primes: Solinas gives a method for reducing modular reduction of "nice" moduli to adds, subtracts, and shifts. Finnicky to get right though. Understanding this paper requires you to know what a LFSR is.
Useful for rooting your nose around.
This is an impressive and small library, in typical Bellard style. It's quite difficult to read though.
Paul Khuong has a wonderful series on writing low-level code (read: assembly) in SBCL.
Quick x864-64 assembly references:
The authors of these programs have done very impressive things. So impressive that they feel their computational secrets must not be shared. Too bad; the world is better when math software is open.
-
y-cruncher: Purportedly the best pi calculating program on the planet. Broke many a record.
-
PiFast: Was the fastest program for a long time.
-
SuperPi: Port of a program that broke a record in the 90s. Became popular with benchmarkers.
-
Fast Fourier Transforms---For Fun and Profit: The OG paper about it.
-
Determining an Out-of-Core FFT Decomposition Strategy by Thomas Cormen: Has info about Swarztrauber's method and out-of-core FFTs.
-
FFTs in External or Hierarchical Memory by David Bailey.
-
See also Arndt.
-
Numbers, Constants, and Computation: A classic website (all the way back to 1999!) by Gourdon and Sebah. I remember reading this when I was just starting to get into math & programming.
-
Jason Papadopoulos's pages: Pi programs, FFTs, etc. Another early inspiration for my study.
-
Modern Computer Arithmetic by Brent and Zimmerman