Skip to content
/ pihex Public

Arbitrary place hexadecimal digits viewer of pi written in Rust

License

Notifications You must be signed in to change notification settings

itchyny/pihex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pihex

CI Status crates.io release MIT License

Arbitrary place hexadecimal digits viewer of pi written in Rust. The library is based on the Bailey-Borwein-Plouffe formula (BBP formula) and Bellard's formula.

 $ pihex
0: 243f 6a88 85a3 08d3 1319 8a2e 0370 7344
 $ pihex 1
2: 3f6a 8885 a308 d313 198a 2e03 7073 44a4
 $ pihex 4
4: 6a88 85a3 08d3 1319 8a2e 0370 7344 a409
 $ pihex 8
128: 9216 d5d9 8979 fb1b d131 0ba6 98df b5ac
 $ pihex 65536
65536: 3004 3414 c926 7212 d7fb 8a3f fc7c 7002
 $ pihex 1000000
1000000: 6c65 e52c b459 3500 50e4 bb17 8f4c 67a0
 $ pihex 10000000
10000000: 7af5 863e fed8 de97 033c d0f6 b80a 3d26
 $ pihex 100000000 # defaults to BBP formula
100000000: cb84 0e21 926e c5ae 0d2f 3405 1045 93cb
 $ pihex --formula=bellard 100000000 # yields the same result but faster than BBP formula
100000000: cb84 0e21 926e c5ae 0d2f 3405 1045 93cb

Refer to pihex --help for further details.

Installation

Homebrew

brew install itchyny/tap/pihex

Build from crates.io

cargo install pihex

Build from source

git clone https://github.com/itchyny/pihex
cd pihex
cargo install --path .

Author

itchyny (https://github.com/itchyny)

License

This software is released under the MIT License, see LICENSE.

Disclaimer

I tested very carefully but this software does not always answer correctly due to the floating-point arithmetic inaccuracy. If there's a place with over 53bit zeros in binary representation of pi (I'm not sure where it is), we never ensure the answer calculated by double-precision floating-point numbers is correct. Therefore when you use this software, be careful the answer is not suffered from floating-point calculation errors. If the successive digits in hexadecimal representation repeat '0' or 'f' over 13 times, it's highly inaccurate due to this calculation errors.

References

  • David H. Bailey, Peter Borwein, and Simon Plouffe, On the Rapid Computation of Various Polylogarithmic Constants, Mathematics of Computation 66, 903-913, 1997.
  • David H. Bailey, The BBP Algorithm for Pi, September 17, 2006.
  • Fabrice Bellard, A new formula to compute the n'th binary digit of pi, 1997.