Skip to main content

A collection of Pi generators.

Project description

PiGen : Generators For Digits of Pi

https://img.shields.io/pypi/v/pigen.svg https://img.shields.io/travis/stkterry/pigen.svg 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.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pigen, version 0.1.5
Filename, size File type Python version Upload date Hashes
Filename, size pigen-0.1.5-py2.py3-none-any.whl (5.4 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size pigen-0.1.5.tar.gz (6.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page