A collection of Pi generators.
Project description
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
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.
History
0.1.2 (2020-01-27)
First release on PyPI.
Completely removed slower Chudnovsky function. It didn’t generate the correct sequence.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pigen-0.1.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3489d4295dc014cb3c60c88cd779e3bee53d4350cb9f3524370ad1aebaeb71c0 |
|
MD5 | 273f52a7223bce34c621916c25ee96ef |
|
BLAKE2b-256 | 6a71cbfa7481015cc27f56ddff9374313787367e65c100d205ac7003509b7ac9 |