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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 2Python 3

File details

Details for the file pigen-0.1.5.tar.gz.

File metadata

  • Download URL: pigen-0.1.5.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.1

File hashes

Hashes for pigen-0.1.5.tar.gz
Algorithm Hash digest
SHA256 00a81f97cb106268c1f80df4add4440e6dbd264ec30d548a375fee423ab3435f
MD5 6d86da681ef855976737e100b8a30764
BLAKE2b-256 05c7a983cabee8d92c098032f4b6446fbb8f9f69ba9a7c6f475541f08be78a8e

See more details on using hashes here.

File details

Details for the file pigen-0.1.5-py2.py3-none-any.whl.

File metadata

  • Download URL: pigen-0.1.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.1

File hashes

Hashes for pigen-0.1.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 caae9359d886a74ba8f1f200df860a0891b67da22a8b625904467bc05f0ba3ae
MD5 da90501743c46be32c4488db20f2bb8b
BLAKE2b-256 753071b8f4e02eb910a02f72351a4cbdd64f39d567f2eaf6a9cfbafdd0309246

See more details on using hashes here.

Supported by

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