cache freezed args, more speedup
[sympyx.git] / t.py
blob6f55cb9bf04610b6edccedcd0ee3da41381c87c6
1 #!/usr/bin/env python
2 from timeit import default_timer as clock
3 from sympy import Symbol, Add, Mul, Integer, ADD, MUL, POW, INTEGER, SYMBOL, \
4 multinomial_coefficients
6 N = 10
8 x = Symbol("x")
9 y = Symbol("y")
10 z = Symbol("z")
12 def doit1(e):
13 f = e*(e+1)
14 f = f.expand()
15 return f
17 e = (x+y+z+1)**N
19 t_tot = clock()
20 a2 = doit1(e)
21 t_tot = clock()-t_tot
23 print "done"
25 t_mul = clock()
26 a= multinomial_coefficients(4, N)
27 b= multinomial_coefficients(4, 2*N)
28 t_mul = clock() - t_mul
29 print e
30 print "# of terms:", len(a2.args)
31 print "time doing multinomial_coefficients:", t_mul
32 print "total time2:", t_tot
35 def csympy2sympy(a):
36 import sympy
37 if a.type == ADD:
38 return sympy.Add(*[csympy2sympy(x) for x in a.args])
39 elif a.type == MUL:
40 return sympy.Mul(*[csympy2sympy(x) for x in a.args])
41 elif a.type == POW:
42 return sympy.Pow(*[csympy2sympy(x) for x in a.args])
43 elif a.type == INTEGER:
44 return sympy.sympify(str(a))
45 elif a.type == SYMBOL:
46 return sympy.sympify(str(a))
47 print a
48 raise NotImplementedError("sorry")
50 #e_sympy = csympy2sympy(e)
51 #a2_sympy = doit2(e_sympy)[0]
52 #a2_csympy = csympy2sympy(a2)
53 #print "comparison with sympy:"
54 #print a2_sympy == a2_csympy