Skip to content

Instantly share code, notes, and snippets.

@youz
Last active January 10, 2023 15:53
Show Gist options
  • Save youz/4df6c4bc69f128c64c88fc9db23181b7 to your computer and use it in GitHub Desktop.
Save youz/4df6c4bc69f128c64c88fc9db23181b7 to your computer and use it in GitHub Desktop.
Atlas https://github.com/darrenks/atlas で円周率1000桁計算
# ref. https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/spigot.pdf
i=2:1+i
q=1:10*q*i*~1-2*i
r=180:10*u*(q*~2-5*i)+r-y*t
t=60:t*u
u=6+i*27+i*27
y=((q*~12-27*i)+5*r)/5*t
c='0+1001[y
([c):'.:>c
q=1:10*q*i*~1-2*i=2:1+i
"3."@>'0+1001[y=((q*~12-27*i)+5*r=180:10*u*(q*~2-5*i)+r-y*t=60:t*u=6+i*27+i*27)/5*t
@youz
Copy link
Author

youz commented Jan 4, 2023

$ ruby atlas.rb pi.atl
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment