On Sun, Jun 30, 2013 at 04:52:18PM -0700, Matthieu Deneufchâtel wrote:
> I try to implement the Poincare-Birkhoff-Witt basis of the free algebra.
> I defined the elements of this basis and a function which gives the
> expansion of an element of the free algebra on this basis; actually, it
> returns a dictionary whose keys are monomials and whose values are the
> corresponding coefficients.
> I would like to define a new basis of the free algebra, but I don't know
> which structure I should use. Is there a "canonical way"? Should I use a
> CombinatorialFreeModule?
> There might be some documentation I should have read before asking any
> question. Please tell me where I should have a look.
Sounds like a good candidate for having a:
class PoincareBirkhoffWittBasisOfFreeAlgebra(CombinatorialFreeModule):
...
and making your change of basis function into a morphism. And possibly
a shortcut:
sage: F = FreeAlgebra(...)
sage: PBW = F.poincare_birkhof_witt_basis()
In the long run, if more bases come in, you might consider having a
"FreeAlgebraWithRealizations" similar to Sym with its several bases.
A natural starting point in the documentation is:
http://combinat.sagemath.org/doc/thematic_tutorials/tutorial-implementing-algebraic-structures.html
with its prerequisite:
http://combinat.sagemath.org/doc/reference/modules/sage/modules/tutorial_free_modules.html
Good luck!
Nicolas
--
Nicolas M. Thiéry "Isil" <[email protected]>
http://Nicolas.Thiery.name/
--
You received this message because you are subscribed to the Google Groups
"sage-devel" 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/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.