The codebase for polynomials is quite large, so it's hard for me to weigh
in on an issue of implementation. There are several forms of
noncommutativity that can be quite interesting to study. For now I'll only
address things that admit "PBW-ish bases" (x_1^{a_1} ... x_r^{a_r} for a
fixed set x_1,...,x_r and non-negative integers a_i). This includes a huge
number of examples:
* polynomials in commutative variables (you already have this)
* quantum polynomials and other "quantum algebras"
* exterior algebras (and quantum analogues)
* quaternions
* group algebras of finite groups
* finite and affine type Hecke algebras
* Weyl algebras
* universal enveloping algebras of Lie algebras
and quite a lot more.
One could choose a preferred basis ordering and encode a finite number of
relations that suffice for transforming any element into a sum of terms in
this preferred basis. To be clear, the basis is infinite but the sums will
always be finite. For sake of efficiency, certain special cases may be
better handled by more specific simplification algorithms. I've done stuff
like this for q-polynomials and nil Hecke algebras.
On Wednesday, March 20, 2013 1:07:10 PM UTC-7, Aaron Meurer wrote:
>
> On Wed, Mar 20, 2013 at 1:57 PM, Alexander Ellis
> <[email protected]<javascript:>>
> wrote:
> >
> >> Awesome. Did you hear about it from the keynote, or someone at PyData
> told
> >> you?
> >
> >
> > Fernando Perez mentioned it in his keynote talk on iPython.
>
> Oh, I didn't realize Fernando was the keynote speaker. Yes, he likes
> to mention SymPy, since SymPy + IPython notebook = awesomeness.
>
> >>
> >>
> >> Anyway, it definitely sounds like something that we would like to
> >> have. Is your code on GitHub somewhere?
> >
> >
> > Yes! The packages to see are "symmetric" (not "symmetric-old"),
> > "manin_schechtman", and "nc_polynomial" (that last one is being
> overhauled
> > right now).
> > https://github.com/apellis?tab=repositories
>
> A lot of your boilerplate is already done in SymPy, like printing and
> symbols.
>
> I would also encourage you to look through the polys module. Make sure
> to do a git pull, since I just merged a huge refactoring of the polys
> about two seconds ago (see https://github.com/sympy/sympy/pull/1840,
> and more work is coming). Would it make sense to implement
> non-commuting polynomials in the polys module, or outside it? I
> really hope that someone who knows more about the math your code
> implements will chime in here. Maybe Mario Pernici can comment.
>
> Aaron Meurer
>
> >
> > --
> > 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 [email protected] <javascript:>.
> > To post to this group, send email to [email protected]<javascript:>.
>
> > Visit this group at http://groups.google.com/group/sympy?hl=en.
> > For more options, visit https://groups.google.com/groups/opt_out.
> >
> >
>
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.