Using Robert's suggestion of repr() got me pretty close.  The biggest
remaining issue is that Sage writes a^x whereas C needs pow(a,x).  For
simple cases, I was able to fix this with regular expression
substitution as follows:

import re
p = re.compile("([a-zA-Z0-9]+?)\\^([a-zA-Z0-9]+)")

o = open("mycode.c", "w")
o.write("E1 = "
o.write(p.subn("pow(\\1,\\2)", repr(E1))[0])
o.write(";\n")

Here E1 is the expression to be written out.

Unfortunately, my regular expression is too simple to handle cases
like (a+b)^2.

--Michael

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to