On Sat, Oct 25, 2008 at 10:32 PM, Andy Ray Terrel <[EMAIL PROTECTED]> wrote: > On Sat, Oct 25, 2008 at 3:39 PM, Alan Bromborsky <[EMAIL PROTECTED]> wrote: >> >> Ondrej Certik wrote: >>> On Fri, Oct 24, 2008 at 1:35 PM, Alan Bromborsky <[EMAIL PROTECTED]> wrote: >>> >>>> Ondrej Certik wrote: >>>> >>>>> On Wed, Oct 22, 2008 at 7:11 AM, Alan Bromborsky <[EMAIL PROTECTED]> >>>>> wrote: >>>>> >>>>> >>>>>> Using sympy I have attached a program (LaTeX.py) demonstrating Maxwell's >>>>>> equations using geometric calculus. Also attached is a version of >>>>>> GAsympy.py with some geometric calculus extensions (the version in sympy >>>>>> only does geometric algebra). The demo program is called LaTeX.py since >>>>>> it uses LaTeX to show the equations in a nice format. Eventually I will >>>>>> use the standard latex printing system in sympy with some >>>>>> modifications. Just run LaTeX.py and see what come out! >>>>>> >>>>>> >>>>> Wow, this is impressive! Thanks for doing this. >>>>> >>>>> I would like the LaTeX class to be integrated with our LatexPrinter, >>>>> see sympy/printing/latex.py. Do you have any comments on that? Because >>>>> you are duplicating a lot of stuff in your own class. >>>>> >>>>> Ondrej >>>>> >>>>> >>>>> >>>> I need to consult with you more on how your printer classes in general >>>> work before starting integrating my latex with your latex. Also with >>>> regard to the actual math part of geometric calculus, now that I can do >>>> geometric derivatives in rectangular coordinates I need to implement >>>> curvilinear coordinates for practical applications which means I need to >>>> do some pencil and paper derivations. >>>> >>> >>> Ok. >>> >>> Related note I wrote recently regarding my research: >>> >>> I had to convert the Laplace equation with nonconstant conductivity >>> into cylindrical coordinates. One can find such formulas on the >>> internet, but in fact, I wasn't able to quickly find formulas if the >>> conductivity is not constant. Now, obviously in this is simple example >>> the result is obvious. But nevertheless, as an >>> excersise, I wrote some notes how such things can be done using >>> differential geometry, see the geom.ps referenced in the above wiki, >>> or this link: >>> >>> http://github.com/certik/differential-geometry/tree/0552cdd5b99ebfb356c1d469f84314027cc3ffb0%2Fgeom.ps?raw=true >>> >>> See the section 3.1. I can imagine that converting more complex >>> equation, or using other curvilinear coordinates such conversions >>> quickly become very messy. Using my notes above, the task can be >>> completely automated and it is in my TODO list to implement this in >>> SymPy. >>> >>> --------- >>> >>> It'd be cool if we could do all the stuff in geom.ps in sympy. >>> >>> Ondrej >>> >>> > >>> >>> >> Code below works for pretty printing, but not for latex. What am I doing >> wrong? It is not clear to me how to refer to doprint for latex. One I >> know the correct way to do the below I will start modifying LatexPrinter >> to do the required formatting. On general philosophy with regard to >> different types of printers I think there should be a global switch to >> determine the type of printer and fomatting options for each type of >> printer. To output one should always be able to just use print and str! >> >> >> #!/usr/bin/python >> #Printer.py >> >> import sympy >> from sympy import * >> from sympy.printing.pretty.pretty import PrettyPrinter >> from sympy.printing.latex import LatexPrinter >> >> class Printer: >> >> printer_types = 0 >> >> normal = sympy.Basic.__str__ >> >> @staticmethod >> def pretty(x): >> return(PrettyPrinter().doprint(x)) >> >> @staticmethod >> def latex(x): >> return(LatexPrinter().doprint(x)) >> >> @staticmethod >> def set(printer='normal'): >> if Printer.printer_types == 0: >> Printer.printer_types = {'normal':Printer.normal,\ >> 'pretty':Printer.pretty,\ >> 'latex':Printer.latex} >> sympy.Basic.__str__ = Printer.printer_types[printer] >> return >> >> Printer.set('pretty') >> var('x') >> print x**2+1 >> >> Printer.set('latex') >> print x**2+1 >> >> >> >> >> > > > Overload __repr__ not __str__ and it works. The default for > sympy.printing.printer is the __str__ method, PrettyPrinter overloads > this, LatexPrinter doesn't, which is reasonable. > > -- Andy >
Oops that doesn't print what you want either. -- Andy --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sympy?hl=en -~----------~----~----~----~------~----~------~--~---
