#11847: unexpexted behavior of degree() with matrix ordering
-----------------------------------+----------------------------------------
Reporter: john_perry | Owner: malb
Type: enhancement | Status: new
Priority: major | Milestone: sage-4.7.2
Component: commutative algebra | Keywords: degree, polynomial,
singular
Work_issues: | Upstream: Not yet reported
upstream; Will do shortly.
Reviewer: | Author:
Merged: | Dependencies:
-----------------------------------+----------------------------------------
Singular assumes the standard grading when predefined orderings such as
`lex` and `degrevlex` are given, but infers a grading of a ring from the
first row of a specified matrix ordering. This can confuse users (and has
confused some developers!) who expect to work in a standard grading, and
will not expect this behavior:
{{{
sage: R.<x,y,z> =
PolynomialRing(QQ,'x',3,order=TermOrder(matrix([3,0,1,1,1,0,1,0,0])))
sage: (x^2*y).degree()
6
sage: x.degree()
3
sage: x.degree(x)
1
}}}
This confusion is compounded by the fact that the term ''degree'' carries
different meanings, depending on the context (degree wrt grading, degree
wrt exponents, degree of a monomial, degree of a variable).
Sage has an `exponents()` command that behaves somewhat closer to what a
user unfamiliar with graded rings might expect:
{{{
sage: (x^2*y).exponents()
[(2,1,0)]
}}}
The documentation should inform users of this behavior. It would also be
nice to add a function that computes the total degree wrt the standard
grading for the user.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11847>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" 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/sage-trac?hl=en.