Hi all, I am new to Sage and I don't quite understand how to convert my code to cython code to speed up my program. I am doing a lot of symbolic manipulations and using the PolynomialRing object. Below I have some of my code so that you can see the types of manipulations I hope to speed up: Ring=PolynomialRing(ZZ,'q,t') q,t=Ring.gens() A=PolynomialRing(Ring,'x1,x1L,x1R,x2,x2L,x2R') x1,x1L,x1R,x2,x2L,x2R=A.gens() xnplus3=[] xnegn=[] zn=[] def qnumber(n): g(q,t)=(q^n-t^n)/(q-t) return g def qfactorial(n): prod(q,t)=1 for k in range(n): prod(q,t)=prod*qnumber(k+1) return prod def quantumBinomial(n,k): f(q,t)=factor(qfactorial(n)/(qfactorial(k)*qfactorial(n-k))) return f(q,q^(-1)) def L(x1x2_expr): f=x1x2_expr.substitute({x1:x1L,x2:x2L}) return f def R(x1x2_expr): f=x1x2_expr.substitute({x1:x1R,x2:x2R}) return f def x_nplus3(n): s=X(-n-1,n+2) #x1^(-n-1)*x2^(n+2) for p in range(n+1): for r in range(n+1-p): b1=quantumBinomial(n-r,p) b2=quantumBinomial(n+1-p,r) s=s+b1*b2*X(2*p-n-1,2*r-n) return s def commute(LR_expr): Sum=0 Coeffs=LR_expr.coeffs(x2L) for Term in Coeffs: Term[0]=Term[0].substitute({x1L:x1,x1R:q^(-Term[1]) *x1,x2R:x2}) Sum=Sum+Term[0]*x2^(Term[1]) Coeffs=Sum.coeffs(x1) Sum=0 for Term in Coeffs: coeffs=Term[0].coeffs(x2) for term in coeffs: p=q^(-term[1]*Term[1]/2) adj_qterm=term[0]/p qcoeffs=adj_qterm.coeffs(q) new_qterm=0 for qterm in qcoeffs: if qterm[1]>=0: new_qterm=new_qterm+qterm[0]*q^(qterm[1]) if qterm[1]<0: new_qterm=new_qterm+qterm[0]*t^(-qterm[1]) Sum=Sum+factor(new_qterm)*p*x1^(Term[1])*x2^(term[1]) return Sum.substitute({t:q^(-1)}) I am hoping to get a few pointers and suggestions for making my code compatible with cython. Thank you for your time.
Dylan --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---