pigen

A collection of Pi generators.


Keywords
pigen
License
MIT
Install
pip install pigen==0.1.5

Documentation

PiGen : Generators For Digits of Pi

Documentation Status

Overview

A small collection of generators and functions for digits of pi. Maybe you've an art or math project and need to generate a few thousand to a few million digits of pi? This will help with that.

Generators

Spigot's Algorithm | pigen.spigot_pi

  • spigot_pi is a generator function.
  • Useful when you only need a single digit at a time.
  • Not as fast as frac_pi but a classic...
from pigen import spigot_pi as spi

pi_gen = spi()
for _ in range(100): # Let's iterate through the first 100 digits of pi.
  digit = next(pi_gen)
  # do something with digit

Fractional Continuation | pigen.frac_pi

  • frac_pi is a generator function.
  • Useful when you only need a single digit at a time.
  • Fastest single digit generator currently in the package.
  • You can pass your own lambda functions for other well behaved irrational numbers!
  • You can specify the base for output as well, i.e., decimal, hex, etc.
from pigen import frac_pi as fpi

pi_gen = fpi()
for _ in range(100): # Let's iterate through the first 100 digits of pi.
  digit = next(pi_gen)
  # do something with digit

# We can pass lambdas to get different transcendental numbers.
# The golden ratio
phi_gen = fpi(lambda a: 1, lambda b: 1, base=10)
for _ in range(1000): # Let's iterate through the first 1000 digits of phi.
  digit = next(phi_gen)
  # do something with digit

Chudnovsky's Binary Search | pigen.chudnovsky_pi

  • chudnovsky_pi is a regular function.
  • Useful if you need many digits at once.
  • The absolute fastest across the board. If you need a million
  • digits or more, this has got you covered.
  • You need only pass the number of digits you'd like to generate.
  • Makes heavy use of gmpy2 and the associated libs. Very fast but you may need to install other platform specific dependencies.
from pigen import chudnovsky_pi as cpibs
n = 1000000
n_pi_digits = cpi(n) # An integer `n` digits long containing digits of pi

Other

  • Free software: MIT license
  • TODO
    • CLI
    • Examples

Credits

  • The Chudnovsky's BS Algorithm was pulled and updated from an example by Nick Craig-Wood.