Advertisement
Guest User

Untitled

a guest
Dec 1st, 2013
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.13 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import time
  4. import math
  5.  
  6. class PiBBPBench (object):
  7.     def d16Sj(self,d,j):
  8.         d16Sj = 0.0
  9.         for k in xrange(d):
  10.             d16Sj += float(self.n16modk(d-k, 8*k + j)) / float(8*k + j)
  11.         return d16Sj - math.floor(d16Sj)
  12.  
  13.     def n16modk(self,n,k):
  14.         t = 1
  15.         while t<=n:
  16.             t *= 2
  17.         r = 1
  18.         while True:
  19.             if(n >= t):
  20.                 r = (16*r) % k
  21.                 n = n - t
  22.             t = t/2
  23.            
  24.             if t < 1:
  25.                 break
  26.             r = (r*r) % k
  27.         return r
  28.  
  29.     def test(self):
  30.         jegy = 0
  31.         delta = time.time()
  32.         for d in xrange(10000000,10000001):
  33.             d16Pi = 0.0
  34.             d16S1t = self.d16Sj(d, 1)
  35.             d16S4t = self.d16Sj(d, 4)
  36.             d16S5t = self.d16Sj(d, 5)
  37.             d16S6t = self.d16Sj(d, 6)
  38.             d16Pi = 4.0*d16S1t - 2.0*d16S4t - d16S5t - d16S6t
  39.             d16Pi = d16Pi - math.floor(d16Pi)
  40.             jegy = int(math.floor(16.0*d16Pi))
  41.         print jegy
  42.         delta = time.time() - delta
  43.         print delta
  44.  
  45. a=PiBBPBench()
  46. a.test()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement