As easy as that! Thank you, that's essentially exactly what I wanted to do.
cheers Richard On Thursday, 5 November 2015 02:21:46 UTC+13, Jason Moore wrote: > > This should be: > > class MyPrinter(CCodePrinter): > def _print_Symbol(self, expr): > name = super(MyPrinter, self)._print_Symbol(expr) > return 'foo_' + name > > > Jason > moorepants.info > +01 530-601-9791 > > On Tue, Nov 3, 2015 at 8:01 PM, Jason Moore <moore...@gmail.com > <javascript:>> wrote: > >> How about something like this: >> >> In [1]: from sympy.abc import a, b, c >> >> In [2]: from sympy.printing.ccode import CCodePrinter >> >> In [3]: class MyPrinter(CCodePrinter): >> def _print_Symbol(self, expr): >> name = super(CCodePrinter, self)._print_Symbol(expr) >> return 'foo_' + name >> ...: >> >> In [4]: MyPrinter().doprint(a) >> Out[4]: 'foo_a' >> >> >> Jason >> moorepants.info >> +01 530-601-9791 >> >> On Tue, Nov 3, 2015 at 3:01 PM, Richard Brown <rgb...@gmail.com >> <javascript:>> wrote: >> >>> Hi there >>> >>> I'm a relative python/sympy newbie, and I need a little help on a >>> problem. I'm writing a piece of code that translates a system of >>> differential equations into either C, Python, or MATLAB/Octave code that >>> can be interfaced to solvers in those languages. The models are specified >>> using .ini files, and I'm using sympy's code generators to translate the >>> model equations (which are in python syntax). So far so good. >>> >>> What I want to be able to do, is take an expression like >>> >>> prefix = 'foo' >>> str = 'x**2 - sin(x) + exp(xy)' >>> >>> and turn it into C (or MATLAB) like >>> >>> 'pow(foo_x, 2) - sin(foo_x) + exp(foo_x * foo_y)' >>> >>> I know this involves overriding the printing library somehow, but I'm >>> getting confused with where to start. Should I be overriding the __str__ >>> method of atom? >>> >>> Any help would be gratefully accepted >>> >>> Richard >>> >>> -- >>> 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+un...@googlegroups.com <javascript:>. >>> To post to this group, send email to sy...@googlegroups.com >>> <javascript:>. >>> 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/d4c5d051-d835-4a63-a966-191938935a2d%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/sympy/d4c5d051-d835-4a63-a966-191938935a2d%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- 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/9104bbad-56f3-4d20-8d46-568428e03d8d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.