Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168733
Image: ubuntu2004
var('K1,K2') z=(24*K1**2*K2**2*e**(4*I) + (24*K2**2 - 32*I*K2 + 32)*K1**2 + (-48*I*K2**2 - 64*K2 - 64*I)*K1 - ((48*K2**2 - 32*I*K2)*K1**2 - (48*I*K2**2 + 32*K2)*K1)*e**(2*I))*(24*K1**2*K2**2*e**(-4*I) + (24*K2**2 + 32*I*K2 + 32)*K1**2 + (48*I*K2**2 - 64*K2 + 64*I)*K1 - ((48*K2**2 + 32*I*K2)*K1**2 - (-48*I*K2**2 + 32*K2)*K1)*e**(-2*I))/((9*K1**3*K2**3*e**(6*I) - (9*K2**3 - 30*I*K2**2 - 12*K2 - 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 + 80)*K1**2 + 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 - (30*I*K2**3 + 28*K2**2)*K1**2)*e**(4*I) + (12*K2**3 - 40*I*K2**2 - 16*K2 - 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 + (-60*I*K2**3 - 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 + 16*K2)*K1)*e**(2*I) + 80*K2**2 - 32*I*K2 + 64)*(9*K1**3*K2**3*e**(-6*I) - (9*K2**3 + 30*I*K2**2 - 12*K2 + 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 - 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 + 28*K2**2)*K1**2)*e**(-4*I) + (12*K2**3 + 40*I*K2**2 - 16*K2 + 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 - 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 + 16*K2)*K1)*e**(-2*I) + 80*K2**2 + 32*I*K2 + 64)) + (8*K1**2*K2**2*e**(4*I) + (8*K2**2 - 16*I*K2)*K1**2 - ((16*K2**2 - 16*I*K2)*K1**2 + 32*K1*K2)*e**(2*I) + 32*K2**2 - 64*I*K2)*(8*K1**2*K2**2*e**(-4*I) + (8*K2**2 + 16*I*K2)*K1**2 - ((16*K2**2 + 16*I*K2)*K1**2 + 32*K1*K2)*e**(-2*I) + 32*K2**2 + 64*I*K2)/((9*K1**3*K2**3*e**(6*I) - (9*K2**3 - 30*I*K2**2 - 12*K2 - 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 + 80)*K1**2 + 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 - (30*I*K2**3 + 28*K2**2)*K1**2)*e**(4*I) + (12*K2**3 - 40*I*K2**2 - 16*K2 - 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 + (-60*I*K2**3 - 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 + 16*K2)*K1)*e**(2*I) + 80*K2**2 - 32*I*K2 + 64)*(9*K1**3*K2**3*e**(-6*I) - (9*K2**3 + 30*I*K2**2 - 12*K2 + 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 - 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 + 28*K2**2)*K1**2)*e**(-4*I) + (12*K2**3 + 40*I*K2**2 - 16*K2 + 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 - 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 + 16*K2)*K1)*e**(-2*I) + 80*K2**2 + 32*I*K2 + 64))
timeit('z.subs(K1=3,K2=4)')
25 loops, best of 3: 27.3 ms per loop
z_fast_callable=fast_callable(z,vars=[K1,K2],domain=CC)
timeit('z_fast_callable(3,4)')
625 loops, best of 3: 952 µs per loop
%cython cdef complex I=1j from sage.all import exp cdef float e = exp(1) def z_cython(float K1, float K2): return (24*K1**2*K2**2*e**(4*I) + (24*K2**2 - 32*I*K2 + 32)*K1**2 + (-48*I*K2**2 - 64*K2 - 64*I)*K1 - ((48*K2**2 - 32*I*K2)*K1**2 - (48*I*K2**2 + 32*K2)*K1)*e**(2*I))*(24*K1**2*K2**2*e**(-4*I) + (24*K2**2 + 32*I*K2 + 32)*K1**2 + (48*I*K2**2 - 64*K2 + 64*I)*K1 - ((48*K2**2 + 32*I*K2)*K1**2 - (-48*I*K2**2 + 32*K2)*K1)*e**(-2*I))/((9*K1**3*K2**3*e**(6*I) - (9*K2**3 - 30*I*K2**2 - 12*K2 - 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 + 80)*K1**2 + 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 - (30*I*K2**3 + 28*K2**2)*K1**2)*e**(4*I) + (12*K2**3 - 40*I*K2**2 - 16*K2 - 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 + (-60*I*K2**3 - 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 + 16*K2)*K1)*e**(2*I) + 80*K2**2 - 32*I*K2 + 64)*(9*K1**3*K2**3*e**(-6*I) - (9*K2**3 + 30*I*K2**2 - 12*K2 + 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 - 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 + 28*K2**2)*K1**2)*e**(-4*I) + (12*K2**3 + 40*I*K2**2 - 16*K2 + 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 - 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 + 16*K2)*K1)*e**(-2*I) + 80*K2**2 + 32*I*K2 + 64)) + (8*K1**2*K2**2*e**(4*I) + (8*K2**2 - 16*I*K2)*K1**2 - ((16*K2**2 - 16*I*K2)*K1**2 + 32*K1*K2)*e**(2*I) + 32*K2**2 - 64*I*K2)*(8*K1**2*K2**2*e**(-4*I) + (8*K2**2 + 16*I*K2)*K1**2 - ((16*K2**2 + 16*I*K2)*K1**2 + 32*K1*K2)*e**(-2*I) + 32*K2**2 + 64*I*K2)/((9*K1**3*K2**3*e**(6*I) - (9*K2**3 - 30*I*K2**2 - 12*K2 - 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 + 80)*K1**2 + 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 - (30*I*K2**3 + 28*K2**2)*K1**2)*e**(4*I) + (12*K2**3 - 40*I*K2**2 - 16*K2 - 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 + (-60*I*K2**3 - 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 + 16*K2)*K1)*e**(2*I) + 80*K2**2 - 32*I*K2 + 64)*(9*K1**3*K2**3*e**(-6*I) - (9*K2**3 + 30*I*K2**2 - 12*K2 + 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 - 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 + 28*K2**2)*K1**2)*e**(-4*I) + (12*K2**3 + 40*I*K2**2 - 16*K2 + 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 - 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 + 16*K2)*K1)*e**(-2*I) + 80*K2**2 + 32*I*K2 + 64))
%cython cdef complex I=1j from sage.all import exp cdef complex e = exp(1) cdef complex e6I=exp(6*I) cdef complex e4I=exp(4*I) cdef complex e2I=exp(2*I) cdef complex em2I=exp(-2*I) cdef complex em4I=exp(-4*I) cdef complex em6I=exp(-6*I) def z_cython2(float K1, float K2): return (24*K1**2*K2**2*(e4I) + (24*K2**2 - 32*I*K2 + 32)*K1**2 + (-48*I*K2**2 - 64*K2 - 64*I)*K1 - ((48*K2**2 - 32*I*K2)*K1**2 - (48*I*K2**2 + 32*K2)*K1)*(e2I))*(24*K1**2*K2**2*(em4I) + (24*K2**2 + 32*I*K2 + 32)*K1**2 + (48*I*K2**2 - 64*K2 + 64*I)*K1 - ((48*K2**2 + 32*I*K2)*K1**2 - (-48*I*K2**2 + 32*K2)*K1)*(em2I))/((9*K1**3*K2**3*(e6I) - (9*K2**3 - 30*I*K2**2 - 12*K2 - 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 + 80)*K1**2 + 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 - (30*I*K2**3 + 28*K2**2)*K1**2)*(e4I) + (12*K2**3 - 40*I*K2**2 - 16*K2 - 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 + (-60*I*K2**3 - 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 + 16*K2)*K1)*(e2I) + 80*K2**2 - 32*I*K2 + 64)*(9*K1**3*K2**3*(em6I) - (9*K2**3 + 30*I*K2**2 - 12*K2 + 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 - 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 + 28*K2**2)*K1**2)*(em4I) + (12*K2**3 + 40*I*K2**2 - 16*K2 + 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 - 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 + 16*K2)*K1)*(em2I) + 80*K2**2 + 32*I*K2 + 64)) + (8*K1**2*K2**2*(e4I) + (8*K2**2 - 16*I*K2)*K1**2 - ((16*K2**2 - 16*I*K2)*K1**2 + 32*K1*K2)*(e2I) + 32*K2**2 - 64*I*K2)*(8*K1**2*K2**2*(em4I) + (8*K2**2 + 16*I*K2)*K1**2 - ((16*K2**2 + 16*I*K2)*K1**2 + 32*K1*K2)*(em2I) + 32*K2**2 + 64*I*K2)/((9*K1**3*K2**3*(e6I) - (9*K2**3 - 30*I*K2**2 - 12*K2 - 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 + 80)*K1**2 + 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 - (30*I*K2**3 + 28*K2**2)*K1**2)*(e4I) + (12*K2**3 - 40*I*K2**2 - 16*K2 - 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 + (-60*I*K2**3 - 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 + 16*K2)*K1)*(e2I) + 80*K2**2 - 32*I*K2 + 64)*(9*K1**3*K2**3*(em6I) - (9*K2**3 + 30*I*K2**2 - 12*K2 + 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 - 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 + 28*K2**2)*K1**2)*(em4I) + (12*K2**3 + 40*I*K2**2 - 16*K2 + 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 - 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 + 16*K2)*K1)*(em2I) + 80*K2**2 + 32*I*K2 + 64))
timeit('z_cython(3,4)')
625 loops, best of 3: 13.4 µs per loop
timeit('z_cython2(3,4)')
625 loops, best of 3: 9.14 µs per loop
z.subs(K1=3,K2=4)
((3456*I - 6528)*e^(2*I) + 3456*e^(4*I) - 3648*I + 2976)*(3456*e^(-4*I) - (3456*I + 6528)*e^(-2*I) + 3648*I + 2976)/((-(59136*I - 24432)*e^(2*I) + (30240*I - 42624)*e^(4*I) + 15552*e^(6*I) + 28840*I + 4320)*(15552*e^(-6*I) - (30240*I + 42624)*e^(-4*I) + (59136*I + 24432)*e^(-2*I) - 28840*I + 4320)) + ((576*I - 2688)*e^(2*I) + 1152*e^(4*I) - 832*I + 1664)*(1152*e^(-4*I) - (576*I + 2688)*e^(-2*I) + 832*I + 1664)/((-(59136*I - 24432)*e^(2*I) + (30240*I - 42624)*e^(4*I) + 15552*e^(6*I) + 28840*I + 4320)*(15552*e^(-6*I) - (30240*I + 42624)*e^(-4*I) + (59136*I + 24432)*e^(-2*I) - 28840*I + 4320))
z_fast_callable(3,4)
0.0104157592190909
z_cython(3,4)
(0.010415759307286171+0j)
z_cython2(3,4)
(0.010415759219090895+0j)
#From Oscar Lazo: def fast_complex(expr,name,vars,domain=CC): varlist='' for i in vars: varlist+=str(i)+',' varlist=varlist[:-1] s='!f90\n' #s='program programa_x\n' #s+=' implicit none\n' #s+='end program\n\n' s+='subroutine '+name+'('+varlist+',output_var)\n' s+=' implicit none\n' s+=' real, intent(in) ::'+varlist s+='\n' if domain==RR: s+=' real, intent(out) :: output_var\n' else: s+=' complex, intent(out) :: output_var\n' s+=' complex :: I,e,z\n' s+=' e=exp(1.0)\n' s+=' I=(0,1)\n' fun=' z=' fun+= str(expr).replace('^','**') nums=['0','1','2','3','4','5','6','7','8','9','*','(',')'] while True: maxi=70 while True: c1=fun[maxi-1:maxi]; c2=fun[maxi:maxi+1] if (c1 in nums) or (c2 in nums): maxi-=1 else: break s+=fun[:maxi]+'&\n' if len(fun)<maxi: break fun=fun[maxi:] s=s[:-2] s+='\n\n' if domain==RR: s+=' output_var=real(z)\n' else: s+=' output_var=z\n' s+='end subroutine\n' f=file(DATA+'ejem.f90','w') f.write(s) f.close() return s
print fast_complex(z,'z_fortran',[K1,K2])
!f90 subroutine z_fortran(K1,K2,output_var) implicit none real, intent(in) ::K1,K2 complex, intent(out) :: output_var complex :: I,e,z e=exp(1.0) I=(0,1) z=(24*K1**2*K2**2*e**(4*I) + (24*K2**2 - 32*I*K2 + 32)*K1**2 +& (-48*I*K2**2 - 64*K2 - 64*I)*K1 - ((48*K2**2 - 32*I*K2)*K1**2 -& (48*I*K2**2 + 32*K2)*K1)*e**(2*I))*(24*K1**2*K2**2*e**(-4*I) +& (24*K2**2 + 32*I*K2 + 32)*K1**2 + (48*I*K2**2 - 64*K2 + 64*I)*K1 -& ((48*K2**2 + 32*I*K2)*K1**2 - (-48*I*K2**2 +& 32*K2)*K1)*e**(-2*I))/((9*K1**3*K2**3*e**(6*I) - (9*K2**3 -& 30*I*K2**2 - 12*K2 - 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 & + 80)*K1**2 + 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 -& (30*I*K2**3 + 28*K2**2)*K1**2)*e**(4*I) + (12*K2**3 - 40*I*K2**2 -& 16*K2 - 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 +& (-60*I*K2**3 - 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 +& 16*K2)*K1)*e**(2*I) + 80*K2**2 - 32*I*K2 +& 64)*(9*K1**3*K2**3*e**(-6*I) - (9*K2**3 + 30*I*K2**2 - 12*K2 +& 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 -& 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 +& 28*K2**2)*K1**2)*e**(-4*I) + (12*K2**3 + 40*I*K2**2 - 16*K2 +& 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 -& 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 +& 16*K2)*K1)*e**(-2*I) + 80*K2**2 + 32*I*K2 + 64)) +& (8*K1**2*K2**2*e**(4*I) + (8*K2**2 - 16*I*K2)*K1**2 - ((16*K2**2 -& 16*I*K2)*K1**2 + 32*K1*K2)*e**(2*I) + 32*K2**2 -& 64*I*K2)*(8*K1**2*K2**2*e**(-4*I) + (8*K2**2 + 16*I*K2)*K1**2 -& ((16*K2**2 + 16*I*K2)*K1**2 + 32*K1*K2)*e**(-2*I) + 32*K2**2 +& 64*I*K2)/((9*K1**3*K2**3*e**(6*I) - (9*K2**3 - 30*I*K2**2 - 12*K2 -& 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 + 80)*K1**2 +& 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 - (30*I*K2**3 +& 28*K2**2)*K1**2)*e**(4*I) + (12*K2**3 - 40*I*K2**2 - 16*K2 -& 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 + (-60*I*K2**3 -& 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 +& 16*K2)*K1)*e**(2*I) + 80*K2**2 - 32*I*K2 +& 64)*(9*K1**3*K2**3*e**(-6*I) - (9*K2**3 + 30*I*K2**2 - 12*K2 +& 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 -& 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 +& 28*K2**2)*K1**2)*e**(-4*I) + (12*K2**3 + 40*I*K2**2 - 16*K2 +& 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 -& 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 +& 16*K2)*K1)*e**(-2*I) + 80*K2**2 + 32*I*K2 + 64)) output_var=z end subroutine
%fortran !f90 subroutine z_fortran(K1,K2,output_var) implicit none real, intent(in) ::K1,K2 complex, intent(out) :: output_var complex :: I,e,z e=exp(1.0) I=(0,1) z=(24*K1**2*K2**2*e**(4*I) + (24*K2**2 - 32*I*K2 + 32)*K1**2 +& (-48*I*K2**2 - 64*K2 - 64*I)*K1 - ((48*K2**2 - 32*I*K2)*K1**2 -& (48*I*K2**2 + 32*K2)*K1)*e**(2*I))*(24*K1**2*K2**2*e**(-4*I) +& (24*K2**2 + 32*I*K2 + 32)*K1**2 + (48*I*K2**2 - 64*K2 + 64*I)*K1 -& ((48*K2**2 + 32*I*K2)*K1**2 - (-48*I*K2**2 +& 32*K2)*K1)*e**(-2*I))/((9*K1**3*K2**3*e**(6*I) - (9*K2**3 -& 30*I*K2**2 - 12*K2 - 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 & + 80)*K1**2 + 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 -& (30*I*K2**3 + 28*K2**2)*K1**2)*e**(4*I) + (12*K2**3 - 40*I*K2**2 -& 16*K2 - 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 +& (-60*I*K2**3 - 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 +& 16*K2)*K1)*e**(2*I) + 80*K2**2 - 32*I*K2 +& 64)*(9*K1**3*K2**3*e**(-6*I) - (9*K2**3 + 30*I*K2**2 - 12*K2 +& 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 -& 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 +& 28*K2**2)*K1**2)*e**(-4*I) + (12*K2**3 + 40*I*K2**2 - 16*K2 +& 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 -& 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 +& 16*K2)*K1)*e**(-2*I) + 80*K2**2 + 32*I*K2 + 64)) +& (8*K1**2*K2**2*e**(4*I) + (8*K2**2 - 16*I*K2)*K1**2 - ((16*K2**2 -& 16*I*K2)*K1**2 + 32*K1*K2)*e**(2*I) + 32*K2**2 -& 64*I*K2)*(8*K1**2*K2**2*e**(-4*I) + (8*K2**2 + 16*I*K2)*K1**2 -& ((16*K2**2 + 16*I*K2)*K1**2 + 32*K1*K2)*e**(-2*I) + 32*K2**2 +& 64*I*K2)/((9*K1**3*K2**3*e**(6*I) - (9*K2**3 - 30*I*K2**2 - 12*K2 -& 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 + 80)*K1**2 +& 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 - (30*I*K2**3 +& 28*K2**2)*K1**2)*e**(4*I) + (12*K2**3 - 40*I*K2**2 - 16*K2 -& 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 + (-60*I*K2**3 -& 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 +& 16*K2)*K1)*e**(2*I) + 80*K2**2 - 32*I*K2 +& 64)*(9*K1**3*K2**3*e**(-6*I) - (9*K2**3 + 30*I*K2**2 - 12*K2 +& 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 -& 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 +& 28*K2**2)*K1**2)*e**(-4*I) + (12*K2**3 + 40*I*K2**2 - 16*K2 +& 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 -& 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 +& 16*K2)*K1)*e**(-2*I) + 80*K2**2 + 32*I*K2 + 64)) output_var=z end subroutine
None
%fortran !f90 subroutine z_expanded_fortran(K1,K2,output_var) implicit none real, intent(in) ::K1,K2 complex, intent(out) :: output_var complex :: I,e,z,em2i,em4i,em6i,e2i,e4i,e6i e=exp(1.0) I=(0,1) em2i=exp(-2*I) em4i=exp(-4*I) em6i=exp(-6*I) e2i=exp(2*I) e4i=exp(4*I) e6i=exp(6*I) z=(24*K1**2*K2**2*e4i + (24*K2**2 - 32*I*K2 + 32)*K1**2 +& (-48*I*K2**2 - 64*K2 - 64*I)*K1 - ((48*K2**2 - 32*I*K2)*K1**2 -& (48*I*K2**2 + 32*K2)*K1)*e2i)*(24*K1**2*K2**2*em4i +& (24*K2**2 + 32*I*K2 + 32)*K1**2 + (48*I*K2**2 - 64*K2 + 64*I)*K1 -& ((48*K2**2 + 32*I*K2)*K1**2 - (-48*I*K2**2 +& 32*K2)*K1)*em2i)/((9*K1**3*K2**3*e6i - (9*K2**3 -& 30*I*K2**2 - 12*K2 - 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 & + 80)*K1**2 + 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 -& (30*I*K2**3 + 28*K2**2)*K1**2)*e4i + (12*K2**3 - 40*I*K2**2 -& 16*K2 - 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 +& (-60*I*K2**3 - 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 +& 16*K2)*K1)*e2i + 80*K2**2 - 32*I*K2 +& 64)*(9*K1**3*K2**3*em6i - (9*K2**3 + 30*I*K2**2 - 12*K2 +& 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 -& 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 +& 28*K2**2)*K1**2)*em4i + (12*K2**3 + 40*I*K2**2 - 16*K2 +& 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 -& 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 +& 16*K2)*K1)*em2i + 80*K2**2 + 32*I*K2 + 64)) +& (8*K1**2*K2**2*e4i + (8*K2**2 - 16*I*K2)*K1**2 - ((16*K2**2 -& 16*I*K2)*K1**2 + 32*K1*K2)*e2i + 32*K2**2 -& 64*I*K2)*(8*K1**2*K2**2*em4i + (8*K2**2 + 16*I*K2)*K1**2 -& ((16*K2**2 + 16*I*K2)*K1**2 + 32*K1*K2)*em2i + 32*K2**2 +& 64*I*K2)/((9*K1**3*K2**3*e6i - (9*K2**3 - 30*I*K2**2 - 12*K2 -& 24*I)*K1**3 + (30*I*K2**3 + 100*K2**2 - 40*I*K2 + 80)*K1**2 +& 24*I*K2**3 - ((27*K2**3 - 30*I*K2**2)*K1**3 - (30*I*K2**3 +& 28*K2**2)*K1**2)*e4i + (12*K2**3 - 40*I*K2**2 - 16*K2 -& 32*I)*K1 + ((27*K2**3 - 60*I*K2**2 - 12*K2)*K1**3 + (-60*I*K2**3 -& 128*K2**2 + 16*I*K2)*K1**2 - (12*K2**3 - 16*I*K2**2 +& 16*K2)*K1)*e2i + 80*K2**2 - 32*I*K2 +& 64)*(9*K1**3*K2**3*em6i - (9*K2**3 + 30*I*K2**2 - 12*K2 +& 24*I)*K1**3 + (-30*I*K2**3 + 100*K2**2 + 40*I*K2 + 80)*K1**2 -& 24*I*K2**3 - ((27*K2**3 + 30*I*K2**2)*K1**3 - (-30*I*K2**3 +& 28*K2**2)*K1**2)*em4i + (12*K2**3 + 40*I*K2**2 - 16*K2 +& 32*I)*K1 + ((27*K2**3 + 60*I*K2**2 - 12*K2)*K1**3 + (60*I*K2**3 -& 128*K2**2 - 16*I*K2)*K1**2 - (12*K2**3 + 16*I*K2**2 +& 16*K2)*K1)*em2i + 80*K2**2 + 32*I*K2 + 64)) output_var=z end subroutine
None
%fortran !f90 subroutine z_expanded_more_fortran(K1,K2,output_var) implicit none real, intent(in) ::K1,K2 complex, intent(out) :: output_var complex :: I,e,z,em2i,em4i,em6i,e2i,e4i,e6i,K1E2,K1E3,K2E2,K2E3 e=exp(1.0) I=(0,1) em2i=exp(-2*I) em4i=exp(-4*I) em6i=exp(-6*I) e2i=exp(2*I) e4i=exp(4*I) e6i=exp(6*I) K1E2=K1**2 K1E3=K1**3 K2E2=K2**2 K2E3=K2**3 z=(24*K1E2*K2E2*e4i + (24*K2E2 - 32*I*K2 + 32)*K1E2 +& (-48*I*K2E2 - 64*K2 - 64*I)*K1 - ((48*K2E2 - 32*I*K2)*K1E2 -& (48*I*K2E2 + 32*K2)*K1)*e2i)*(24*K1E2*K2E2*em4i +& (24*K2E2 + 32*I*K2 + 32)*K1E2 + (48*I*K2E2 - 64*K2 + 64*I)*K1 -& ((48*K2E2 + 32*I*K2)*K1E2 - (-48*I*K2E2 +& 32*K2)*K1)*em2i)/((9*K1E3*K2E3*e6i - (9*K2E3 -& 30*I*K2E2 - 12*K2 - 24*I)*K1E3 + (30*I*K2E3 + 100*K2E2 - 40*I*K2 & + 80)*K1E2 + 24*I*K2E3 - ((27*K2E3 - 30*I*K2E2)*K1E3 -& (30*I*K2E3 + 28*K2E2)*K1E2)*e4i + (12*K2E3 - 40*I*K2E2 -& 16*K2 - 32*I)*K1 + ((27*K2E3 - 60*I*K2E2 - 12*K2)*K1E3 +& (-60*I*K2E3 - 128*K2E2 + 16*I*K2)*K1E2 - (12*K2E3 - 16*I*K2E2 +& 16*K2)*K1)*e2i + 80*K2E2 - 32*I*K2 +& 64)*(9*K1E3*K2E3*em6i - (9*K2E3 + 30*I*K2E2 - 12*K2 +& 24*I)*K1E3 + (-30*I*K2E3 + 100*K2E2 + 40*I*K2 + 80)*K1E2 -& 24*I*K2E3 - ((27*K2E3 + 30*I*K2E2)*K1E3 - (-30*I*K2E3 +& 28*K2E2)*K1E2)*em4i + (12*K2E3 + 40*I*K2E2 - 16*K2 +& 32*I)*K1 + ((27*K2E3 + 60*I*K2E2 - 12*K2)*K1E3 + (60*I*K2E3 -& 128*K2E2 - 16*I*K2)*K1E2 - (12*K2E3 + 16*I*K2E2 +& 16*K2)*K1)*em2i + 80*K2E2 + 32*I*K2 + 64)) +& (8*K1E2*K2E2*e4i + (8*K2E2 - 16*I*K2)*K1E2 - ((16*K2E2 -& 16*I*K2)*K1E2 + 32*K1*K2)*e2i + 32*K2E2 -& 64*I*K2)*(8*K1E2*K2E2*em4i + (8*K2E2 + 16*I*K2)*K1E2 -& ((16*K2E2 + 16*I*K2)*K1E2 + 32*K1*K2)*em2i + 32*K2E2 +& 64*I*K2)/((9*K1E3*K2E3*e6i - (9*K2E3 - 30*I*K2E2 - 12*K2 -& 24*I)*K1E3 + (30*I*K2E3 + 100*K2E2 - 40*I*K2 + 80)*K1E2 +& 24*I*K2E3 - ((27*K2E3 - 30*I*K2E2)*K1E3 - (30*I*K2E3 +& 28*K2E2)*K1E2)*e4i + (12*K2E3 - 40*I*K2E2 - 16*K2 -& 32*I)*K1 + ((27*K2E3 - 60*I*K2E2 - 12*K2)*K1E3 + (-60*I*K2E3 -& 128*K2E2 + 16*I*K2)*K1E2 - (12*K2E3 - 16*I*K2E2 +& 16*K2)*K1)*e2i + 80*K2E2 - 32*I*K2 +& 64)*(9*K1E3*K2E3*em6i - (9*K2E3 + 30*I*K2E2 - 12*K2 +& 24*I)*K1E3 + (-30*I*K2E3 + 100*K2E2 + 40*I*K2 + 80)*K1E2 -& 24*I*K2E3 - ((27*K2E3 + 30*I*K2E2)*K1E3 - (-30*I*K2E3 +& 28*K2E2)*K1E2)*em4i + (12*K2E3 + 40*I*K2E2 - 16*K2 +& 32*I)*K1 + ((27*K2E3 + 60*I*K2E2 - 12*K2)*K1E3 + (60*I*K2E3 -& 128*K2E2 - 16*I*K2)*K1E2 - (12*K2E3 + 16*I*K2E2 +& 16*K2)*K1)*em2i + 80*K2E2 + 32*I*K2 + 64)) output_var=z end subroutine
None
z_fortran?

Type: <type 'fortran'>

Definition: z_fortran( [noargspec] )

Docstring:



z_fortran - Function signature:
  output_var = z_fortran(k1,k2)
Required arguments:
  k1 : input float
  k2 : input float
Return objects:
  output_var : complex
timeit('z_fortran(3,4)')
625 loops, best of 3: 10.3 µs per loop
timeit('z_expanded_fortran(3,4)')
625 loops, best of 3: 3.3 µs per loop
timeit('z_expanded_more_fortran(3,4)')
625 loops, best of 3: 2.93 µs per loop
z_fortran(3,4)
(0.010415760800242424+0j)
z_expanded_fortran(3,4)
(0.010415760800242424+0j)
z_expanded_more_fortran(3,4)
(0.010415760800242424+0j)