Hi everyone, I'm using sympy to automatically apply a certain transformation to symbolic input and to generate a reasonably efficient numerical function as an output (I'm creating a finite difference Hamiltonian from a continuum one). My current plan is to define a bunch of strings containing function definitions that I'd feed to exec(). The problem that I have currently is with numerical prefactors and imaginary unit. Sympy functions that generate string form of expressions like to keep it as 'I', thus turning e.g. "(0.5 + .5j)" into "(0.5 + 0.5 * I)". I could replace every I with 1j in the output, or modify the value assigned to I, but this is not really robust, and not efficient, since at least there's an extra multiplication. So here's my question: how to generate a string form of an expression where all the numerical coefficients would be evaluated into float/complex numbers?
I have found a somewhat suboptimal solution similar to the one described over here: http://www.mail-archive.com/sympy@googlegroups.com/msg05139.html . The reason why it is suboptimal is because terms like 0.5 * I will transform into 0.5 * 1.j instead of 0.5j (and thus an extra unnecessary multiplication is performed). Thanks, Anton Akhmerov -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/8586a91c-e70a-43e3-ba70-6a918a6589e7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.