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.

Source Distribution

pigen-0.1.5.tar.gz (6.3 kB view hashes)

Uploaded Source

Built Distribution

pigen-0.1.5-py2.py3-none-any.whl (5.4 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page