A collection of Pi generators.

## PiGen : Generators For Digits of Pi   ### 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
```

• TODO
• CLI
• Examples

### Credits

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

## 0.1.2 (2020-01-27)

• First release on PyPI.
• Completely removed slower Chudnovsky function. It didn’t generate the correct sequence.

## Project details

This version 0.1.5 0.1.4