PageRenderTime 39ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/test2/timing2.py

http://gmpy.googlecode.com/
Python | 29 lines | 23 code | 6 blank | 0 comment | 3 complexity | 5d73751127ba308967dcd2b9cda13b00 MD5 | raw file
Possible License(s): GPL-3.0, LGPL-3.0, LGPL-2.1
  1. import time
  2. import gmpy2 as gmpy
  3. def timedfib(n, zero):
  4. start=time.clock()
  5. a=zero; b=a+1
  6. for i in range(n):
  7. a,b=b,a+b
  8. stend=time.clock()
  9. return type(zero), stend-start, a
  10. def timedfibsp(n, one):
  11. start=time.clock()
  12. result=gmpy.fib(n)
  13. stend=time.clock()
  14. return type(one), stend-start, result
  15. def test(n=100*1000):
  16. print "%dth Fibonacci number of various types:" % n
  17. for z in 0L, gmpy.mpz(0), gmpy.mpf(0):
  18. tip, tim, tot = timedfib(n, z)
  19. print " %5.3f %s %s" % (tim, gmpy.fdigits(tot,10,6), tip)
  20. tip, tim, tot = timedfibsp(n, 1)
  21. print " %5.3f %s %s" % (tim, gmpy.fdigits(tot,10,6), "gmpy.fib")
  22. if __name__=='__main__':
  23. test()