Skip to content

Commit b713a61

Browse files
committed
Drop support for array.array & cython.view.array
1 parent 49cb51e commit b713a61

File tree

3 files changed

+167
-279
lines changed

3 files changed

+167
-279
lines changed

benchmarks/Lambdify.py

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212
args = np.concatenate((x, p))
1313
exp = sp.exp
1414
exprs = [x[0] + x[1] - x[4] + 36.252574322669, x[0] - x[2] + x[3] + 21.3219379611249, x[3] + x[5] - x[6] + 9.9011158998744, 2*x[3] + x[5] - x[7] + 18.190422234653, 3*x[3] + x[5] - x[8] + 24.8679190043357, 4*x[3] + x[5] - x[9] + 29.9336062089226, -x[10] + 5*x[3] + x[5] + 28.5520551531262, 2*x[0] + x[11] - 2*x[4] - 2*x[5] + 32.4401680272417, 3*x[1] - x[12] + x[5] + 34.9992934135095, 4*x[1] - x[13] + x[5] + 37.0716199972041, p[0] - p[1] + 2*p[10] + 2*p[11] - p[12] - 2*p[13] + p[2] + 2*p[5] + 2*p[6] + 2*p[7] + 2*p[8] + 2*p[9] - exp(x[0]) + exp(x[1]) - 2*exp(x[10]) - 2*exp(x[11]) + exp(x[12]) + 2*exp(x[13]) - exp(x[2]) - 2*exp(x[5]) - 2*exp(x[6]) - 2*exp(x[7]) - 2*exp(x[8]) - 2*exp(x[9]), -p[0] - p[1] - 15*p[10] - 2*p[11] - 3*p[12] - 4*p[13] - 4*p[2] - 3*p[3] - 2*p[4] - 3*p[6] - 6*p[7] - 9*p[8] - 12*p[9] + exp(x[0]) + exp(x[1]) + 15*exp(x[10]) + 2*exp(x[11]) + 3*exp(x[12]) + 4*exp(x[13]) + 4*exp(x[2]) + 3*exp(x[3]) + 2*exp(x[4]) + 3*exp(x[6]) + 6*exp(x[7]) + 9*exp(x[8]) + 12*exp(x[9]), -5*p[10] - p[2] - p[3] - p[6] - 2*p[7] - 3*p[8] - 4*p[9] + 5*exp(x[10]) + exp(x[2]) + exp(x[3]) + exp(x[6]) + 2*exp(x[7]) + 3*exp(x[8]) + 4*exp(x[9]), -p[1] - 2*p[11] - 3*p[12] - 4*p[13] - p[4] + exp(x[1]) + 2*exp(x[11]) + 3*exp(x[12]) + 4*exp(x[13]) + exp(x[4]), -p[10] - 2*p[11] - p[12] - p[13] - p[5] - p[6] - p[7] - p[8] - p[9] + exp(x[10]) + 2*exp(x[11]) + exp(x[12]) + exp(x[13]) + exp(x[5]) + exp(x[6]) + exp(x[7]) + exp(x[8]) + exp(x[9])]
15+
1516
lmb_sp = sp.lambdify(args, exprs)
16-
lbm_se = se.Lambdify(args, exprs)
17-
lbm_se_llvm = se.Lambdify(args, exprs, backend='llvm')
17+
lmb_se = se.Lambdify(args, exprs)
18+
lmb_se_cse = se.LambdifyCSE(args, exprs)
19+
lmb_se_llvm = se.Lambdify(args, exprs, backend='llvm')
1820

1921
inp = np.ones(28)
2022

@@ -24,25 +26,35 @@
2426
res_sympy = lmb_sp(*inp)
2527
tim_sympy = clock() - tim_sympy
2628

27-
lbm_se(inp)
29+
lmb_se(inp)
2830
tim_se = clock()
2931
res_se = np.empty(len(exprs))
3032
for i in range(500):
31-
res_se = lbm_se(inp)
33+
res_se = lmb_se(inp)
3234
tim_se = clock() - tim_se
3335

34-
lbm_se_llvm(inp)
36+
lmb_se_cse(inp)
37+
tim_se_cse = clock()
38+
res_se_cse = np.empty(len(exprs))
39+
for i in range(500):
40+
res_se_cse = lmb_se_cse(inp)
41+
tim_se_cse = clock() - tim_se_cse
42+
43+
lmb_se_llvm(inp)
3544
tim_se_llvm = clock()
3645
res_se_llvm = np.empty(len(exprs))
3746
for i in range(500):
38-
res_se_llvm = lbm_se_llvm(inp)
47+
res_se_llvm = lmb_se_llvm(inp)
3948
tim_se_llvm = clock() - tim_se_llvm
4049

4150

42-
print('SymEngine (lambda double) speed-up factor (higher is better) vs sympy: %12.5g' %
51+
print('SymEngine (lambda double) speed-up factor (higher is better) vs sympy: %12.5g' %
4352
(tim_sympy/tim_se))
4453

45-
print('symengine (LLVM) speed-up factor (higher is better) vs sympy: %12.5g' %
54+
print('symengine (lambda double + CSE) speed-up factor (higher is better) vs sympy: %12.5g' %
55+
(tim_sympy/tim_se_cse))
56+
57+
print('symengine (LLVM) speed-up factor (higher is better) vs sympy: %12.5g' %
4658
(tim_sympy/tim_se_llvm))
4759

4860
import itertools
@@ -64,14 +76,14 @@ def func(*args):
6476
return result
6577
return func
6678

67-
lbm_se_llvm_manual = ManualLLVM(args, np.array(exprs))
68-
lbm_se_llvm_manual(inp)
79+
lmb_se_llvm_manual = ManualLLVM(args, np.array(exprs))
80+
lmb_se_llvm_manual(inp)
6981
tim_se_llvm_manual = clock()
7082
res_se_llvm_manual = np.empty(len(exprs))
7183
for i in range(500):
72-
res_se_llvm_manual = lbm_se_llvm_manual(inp)
84+
res_se_llvm_manual = lmb_se_llvm_manual(inp)
7385
tim_se_llvm_manual = clock() - tim_se_llvm_manual
74-
print('symengine (ManualLLVM) speed-up factor (higher is better) vs sympy: %12.5g' %
86+
print('symengine (ManualLLVM) speed-up factor (higher is better) vs sympy: %12.5g' %
7587
(tim_sympy/tim_se_llvm_manual))
7688

7789
if tim_se_llvm_manual < tim_se_llvm:
@@ -87,5 +99,5 @@ def func(*args):
8799
for i in range(500):
88100
res_ref = lmb_ref(inp)
89101
tim_ref = clock() - tim_ref
90-
print('Hard-coded Cython code speed-up factor (higher is better) vs sympy: %12.5g' %
102+
print('Hard-coded Cython code speed-up factor (higher is better) vs sympy: %12.5g' %
91103
(tim_sympy/tim_ref))

0 commit comments

Comments
 (0)