First time here? Check out the FAQ!

Ask Your Question
2

How to add term order to free module?

asked 14 years ago

Jeff Stroomer gravatar image

updated 14 years ago

niles gravatar image

I am working with a free module over a ring of polynomials, and need more than what's available in FreeModule. To be specific, I want to define an order on the terms in the module (think term orders for Grobner bases), and then to be able to obtain leading monomials of module elements.

I tried to augment sage.modules.free_module_element.FreeModuleElement.__bases__ with my own mix-in as described in the tutorial, but apparently FreeModuleElement cannot be augmented in this way.

Presumably I could also put together derived classes for FreeModule and FreeModuleElement, but I'm somewhat up in the air as how to do this.

I considered augmenting my ring of polynomials with extra variables as a back-door way to produce my free module, but the term orders available in polynomial rings are not general enough for my application.

Any suggestions? So far I have worked around the problem, but it's ugly.

Preview: (hide)

Comments

Have you tried "CombinatorialFreeModule" instead of "FreeModule"? For giving elements names, for example, it's very good, and it might suit your needs.

John Palmieri gravatar imageJohn Palmieri ( 14 years ago )

1 Answer

Sort by » oldest newest most voted
1

answered 14 years ago

Jason Bandlow gravatar image

updated 14 years ago

To slightly elaborate on John's comment, "CombinatorialFreeModule" allows you to specify an arbitrary comparison function on the elements. Here is a sample doctest from sage.categories.modules_with_basis :

            sage: X = CombinatorialFreeModule(QQ, [1, 2, 3]); X.rename("X")
            sage: x = 3*X.monomial(1) + 2*X.monomial(2) + X.monomial(3)
            sage: x.leading_monomial()
            B[3]
            sage: def cmp(x,y): return y-x
            sage: x.leading_monomial(cmp=cmp)
            B[1]
Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 14 years ago

Seen: 514 times

Last updated: Dec 15 '10