On Wed, Jul 8, 2009 at 12:37 PM, David Simmons-Duffin<[email protected]> wrote: > I didn't realize that Sage could do Lie algebra manipulations. What are the > pros and cons for writing an interface to LiE as opposed to simply extending > Sage's existing functionality?
It depends on what you need to do. > Is LiE faster, or has it implemented some > tricky algorithms that people don't want to write in sage? I don't know. > I'd be happy to donate my code to Sage, although I don't know if it will > have the right organization or be of the right quality standards. I haven't > used Sage, but it looks like it has some kind of system for dealing with > general mathematical objects, for instance keeping track of whether > something is a group or ring element, or in a vector space over some field. True. > I made some decisions about what kind of classes to include in my interface > based on trying to achieve the simplest code for my particular applications, > and not with an eye towards conforming to some general math system. For > instance, whereas LiE uses a polynomial to stand for a representaion, I have > a Rep object that wraps a polynomial and a group, where multiplication on > Rep's is defined as tensor product. If I were writing a sage extension, I > imagine I would have to somehow also encode that Rep is a type of ring over > the integers, etc.. > > Would my code be useful even without conforming to sage's math conventions? > I'd be interested in learning how to write a sage extension at some point, > but I need my code for a physics project I'm actively working on now, and > I'm not sure I have very much time to spend on programming. I don't really. It sounds to me like you should focus on your current project first, and you might also want to investigate the capabilities of Sage (and Sage + the sage-combinat extensions).... William > > Thanks, > David > > > On Wed, Jul 8, 2009 at 12:22 PM, William Stein <[email protected]> wrote: >> >> On Wed, Jul 8, 2009 at 9:17 AM, David >> Simmons-Duffin<[email protected]> wrote: >> > On Jul 8, 2009, at 1:32 AM, Robert Bradshaw wrote: >> > >> >>> One possible solution is to just replace the word "object" in the C >> >>> source with something else throughout. But I'd like to make as few >> >>> modifications of the C source as possible. Is there an alternate >> >>> solution? >> >> >> >> Yes, you can use the magic c-namespace-renaming quotes. For your >> >> example. >> >> >> >>> I actually have another unrelated question: what is the correct >> >>> cython >> >>> syntax for the union statement at the top of this message? Cython >> >>> doesn't seem to like me putting >> >>> >> >>> struct any: >> >>> objtype type >> >>> reftype nfref >> >>> >> >>> in the middle of a union statement. >> >> >> >> Cython doesn't support anonymous structs. Give that struct a name, >> >> and then you can declare your variable with that type. (The name you >> >> choose will never actually be used.) >> > >> > Thanks, your suggestions worked perfectly. >> > >> >> Just out of curiosity, what are you wrapping? It looks like a math >> >> library of sorts. >> > >> > I'm wrapping a program called LiE for doing computations in lie group >> > representation theory. >> > >> > http://www-math.univ-poitiers.fr/~maavl/LiE/ >> > >> > This sort of thing is very useful in high energy theoretical physics, >> > which is what I work on. The typical choice among us theorists for >> > doing computations is Mathematica (with the exception of collider >> > simulations, which are run with dedicated programs like Pythia). >> > However, representation theory is something Mathematica doesn't seem >> > to know about, and I haven't been able to find a package for it. >> > >> > LiE does basically what I want, except that everything is wrapped up >> > in a custom language that's not very expressive, hard to debug, and >> > generally unpleasant to use. Python is much lovelier, especially >> > since the object-oriented-ness is well-suited for writing >> > mathematics. So I'm doing my best to provide a python interface as an >> > alternative to LiE's built-in lexer, parser, and interpreter. >> > >> >> (1) The Sage project (http://sagemath.org) may be very interested in >> getting your code that wraps LiE when you finish it. Having a Sage >> <--> Lie interface has been requested feature. >> >> (2) Sage itself has substantial functionality for combinatorics of Lie >> algebras. See, e.g., the talk by Dan Bump that is linked to from >> here: http://wiki.sagemath.org/days14 >> >> >> -- William >> _______________________________________________ >> Cython-dev mailing list >> [email protected] >> http://codespeak.net/mailman/listinfo/cython-dev > > > _______________________________________________ > Cython-dev mailing list > [email protected] > http://codespeak.net/mailman/listinfo/cython-dev > > -- William Stein Associate Professor of Mathematics University of Washington http://wstein.org _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
