Andy Ray Terrel wrote:
> 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
>
> >
>
>
I have created a class LaTeXPrinter that extends LatexPrinter, yet when
the default switches are used duplicates LatexPrinter. What remains to
be done is to implement a _print_MV function for the MV (multivector
class) and to solve the problem discussed in the previous email.
The main extensions to LatexPrinter are:
1. Symbol subscripts and superscripts can contain roman and greek
symbols
2. Symbols can have accents, even nested accents.
3. Function names can have the same extensions as symbol names.
4. Implicit Functions can be printed without argument lists.
5. Multiple partial derivative formats (to be implemented).
6. Changes in standard function names. For example 'acos' becomes
'Cos^{-1}'.
7. The latex '\operator{}' macro is not use for implicit function names.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---