fromoperatorimportadd,sub,mul,div
fun='add(add(sub(sub(safeDiv(xL1, add(D, mul(sub(add(sub(A, 0), mul(D, rv)), mul(xL1, add(D, 3))), xL1))), add(0, rv)), safeDiv(mul(sub(D, sigma2), safeDiv(sub(safeDiv(xL1, A), 1), add(safeDiv(safeDiv(B1, xL1), sub(4, xL2)), add(sigma1, xL1)))), sigma1)), add(4, B1)), add(add(A, A), sub(add(xL1, xL1), mul(xL2, safeDiv(xL1, add(sub(add(mul(D, -4), add(add(safeDiv(mul(sigma2, sigma2), safeDiv(B1, sigma1)), sub(add(D, safeDiv(xL2, B1)), D)), sub(4, B1))), A), add(mul(sigma2, xL1), mul(xL1, mul(rv, xL2)))))))))'d=[(51.696521954140991,31.156112806482234,54.629863633907163,27.491618858013698,26.223584534107289,77.10005191617563,2708.4145268939428,0.20952943771134946,15.558278150405643,102.0,225.0)]defadd_verbose(a,b):res=a+b;print"add: {0} + {1} = {2}".format(a,b,res);returnres;defsub_verbose(a,b):res=a-b;print"sub: {0} - {1} = {2}".format(a,b,res);returnres;defdiv_verbose(a,b):res=a/b;print"div: {0} / {1} = {2}".format(a,b,res);returnres;defmul_verbose(a,b):res=a*b;print"mul: {0} * {1} = {2}".format(a,b,res);returnres;arglabels=['xL1','sigma1','xL2','sigma2','A','B1','D','rv']other={'add':add_verbose,'sub':sub_verbose,'mul':mul_verbose,'safeDiv':div_verbose}inputs=dict(zip(arglabels,d[0][:-4]+(d[0][-3]*d[0][-4],)))inputs.update(other)# out 108printeval(fun,inputs)# set locals that can give out 109safeDiv=div;rv=4.0751641470166795256;inputs.update(locals());# out 109printeval(fun,inputs)