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


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to