Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import time
- import math
- class PiBBPBench (object):
- def d16Sj(self,d,j):
- d16Sj = 0.0
- for k in xrange(d):
- d16Sj += float(self.n16modk(d-k, 8*k + j)) / float(8*k + j)
- return d16Sj - math.floor(d16Sj)
- def n16modk(self,n,k):
- t = 1
- while t<=n:
- t *= 2
- r = 1
- while True:
- if(n >= t):
- r = (16*r) % k
- n = n - t
- t = t/2
- if t < 1:
- break
- r = (r*r) % k
- return r
- def test(self):
- jegy = 0
- delta = time.time()
- for d in xrange(10000000,10000001):
- d16Pi = 0.0
- d16S1t = self.d16Sj(d, 1)
- d16S4t = self.d16Sj(d, 4)
- d16S5t = self.d16Sj(d, 5)
- d16S6t = self.d16Sj(d, 6)
- d16Pi = 4.0*d16S1t - 2.0*d16S4t - d16S5t - d16S6t
- d16Pi = d16Pi - math.floor(d16Pi)
- jegy = int(math.floor(16.0*d16Pi))
- print jegy
- delta = time.time() - delta
- print delta
- a=PiBBPBench()
- a.test()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement