Generate arbitrary number of digits of Pi using a streaming algorithm.
Project description
PiDigits Implements the ‘Unbounded Spigot Algorithm for the Digits of Pi’ by Jeremy Gibbons. The paper describing this algorithm can be found at the following URL: http://www.cs.ox.ac.uk/jeremy.gibbons/publications/spigot.pdf
Installation
pidigits is avalaible through Python Package Index (PyPI) using pip.
>>> pip install --upgrade pidigits
To uninstall using pip.
>>> pip uninstall pidigits
Usage
PiDigits provides a generator function named piGenerator that yields the digits of Pi as needed.
>>> from pidigits import piGenerator >>> mypi = piGenerator() >>> first20pi = [next(mypi) for i in range(20)] >>> first20pi [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4]
Example: Verify the Feynman point.
>>> mypi = piGenerator() >>> first1001 = [next(mypi) for i in range(1001)] >>> feynman = first1001[762:768] >>> print feynman [9, 9, 9, 9, 9, 9]
Alternatively you can also use the getPi(n) function to get the first n digits of Pi.
>>> from pidigits import getPi >>> first20pi = getPi(20) >>> first20pi [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4]
Development
If you clone the repository and make any changes to the algorithm you can run the test cases in the _tests package included with the source to test your changes.
To run the tests, in the same directory as setup.py, first run:
>>> python setup.py develop
This will install the package in the ‘development’ mode. Then run the test cases:
>>> python setup.py test
License
pidigits is licensed under Apache License 2.0.