comment added
[sympyx.git] / t.py
blobb8566118a115cab30c206474792c24907f7716a1
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 def doit2(e):
18 e1 = e**2
19 e = e.expand()
20 e1 = e1.expand()
21 t = clock()
22 f = e + e1
23 t = clock() - t
24 return f, t
26 e = (x+y+z+1)**N
28 print "1:"
29 #t_tot1 = clock()
30 #a1 = doit1(e)
31 #t_tot1 = clock()-t_tot1
32 print "2:"
33 t_tot = clock()
34 a2, t = doit2(e)
35 t_tot = clock()-t_tot
37 #e = e*(e+1)
38 #f = e.expand()
40 print "done"
42 t_mul = clock()
43 a= multinomial_coefficients(4, N)
44 b= multinomial_coefficients(4, 2*N)
45 t_mul = clock() - t_mul
46 #print "a1: ", a1
47 #print "a2: ", a2
48 #print "a1 == a2: ", a1 == a2
49 #print "hash(a1) == hash(a2)", hash(a1) == hash(a2)
50 print e
51 print "# of terms:", len(a2.args)
52 print "time spent doing e+e2:", t
53 print "time doing multinomial_coefficients:", t_mul
54 #print "total time1:", t_tot1
55 print "total time2:", t_tot
58 def csympy2sympy(a):
59 import sympy
60 if a.type == ADD:
61 return sympy.Add(*[csympy2sympy(x) for x in a.args])
62 elif a.type == MUL:
63 return sympy.Mul(*[csympy2sympy(x) for x in a.args])
64 elif a.type == POW:
65 return sympy.Pow(*[csympy2sympy(x) for x in a.args])
66 elif a.type == INTEGER:
67 return sympy.sympify(str(a))
68 elif a.type == SYMBOL:
69 return sympy.sympify(str(a))
70 print a
71 raise NotImplementedError("sorry")
73 #e_sympy = csympy2sympy(e)
74 #a2_sympy = doit2(e_sympy)[0]
75 #a2_csympy = csympy2sympy(a2)
76 #print "comparison with sympy:"
77 #print a2_sympy == a2_csympy