Question about term ordering

53 views
Skip to first unread message

Jean-Pierre Flori

unread,
Nov 13, 2015, 2:28:24 PM11/13/15
to libsingular-devel
Dear all,

It seems the following commit:
https://github.com/Singular/Sources/commit/d711b46eb29f241f3854ae99e8451d3beb7f96e4
makes r->pLDeg be switched from a weighted total order to a standard total order when the order is a matrix order with a zero in the first row.
Excuse me if I say stupid things as I have no idea to what extent such an order would make sense, but is it intentional?

Best,
JP

han...@mathematik.uni-kl.de

unread,
Nov 16, 2015, 9:15:28 AM11/16/15
to libsingu...@googlegroups.com
Such ordering do make sense: think for example of the lexicographic
ordering (which is quite useful) and can be represented as diagonal
matrix - which has many zeros in the first row.

If a weigted ordering assigns positive weights to all variables
it is usually the best to use these weight for ecart etc.,
but if weights of different signs or weight 0 exist they cannot be used for the
ecart (requirement: there are only finitely many monomials of a each degree).

Hannes

Jean-Pierre Flori

unread,
Nov 17, 2015, 8:59:27 AM11/17/15
to libsingular-devel
I'm sorry, but I have no clue what ecart is :)
Though I spotted it was mentioned as the reason for this commit.

So my question is now:
how to get a polynomial degree using the original degree function used during the polynomial ring creation?
Would using r->pFDegOrig be ok?
(I'm sorry, I'm basically discovering Singular's internals while updating Singular in Sage.)

Best,
JP

Hannes

han...@mathematik.uni-kl.de

unread,
Nov 17, 2015, 11:47:29 AM11/17/15
to libsingu...@googlegroups.com
On Tue, Nov 17, 2015 at 05:59:26AM -0800, Jean-Pierre Flori wrote:
> I'm sorry, but I have no clue what ecart is :)
> Though I spotted it was mentioned as the reason for this commit.
>
> So my question is now:
> how to get a polynomial degree using the original degree function used
> during the polynomial ring creation?
> Would using r->pFDegOrig be ok?
> (I'm sorry, I'm basically discovering Singular's internals while updating
> Singular in Sage.)
>
> Best,
> JP

there is:
r->pFDeg : the degree of the leading monomial, compatible with the
ordering
r->pLDeg : the maximal degree (and the length) of a polynomial,
usable for ecart
p_WDegree/pWDegree: degree of the leading monomial wrt. the current
weights, total degree for lex. orderings
p_Deg/pDeg: degree of the leading monomial wrt. the current weights
p_Totaldegree/pTotaldegree: degree of the leading monomial wrt. weight 1

Remark: ecart:=max degree - degree of leading term,
used for non-global orderings (i.e. algorithm of Mora)

Hannes

han...@mathematik.uni-kl.de

unread,
Nov 17, 2015, 6:11:33 PM11/17/15
to libsingu...@googlegroups.com
On Tue, Nov 17, 2015 at 05:47:24PM +0100, han...@mathematik.uni-kl.de wrote:
> there is:
> r->pFDeg : the degree of the leading monomial, compatible with the
> ordering
> r->pLDeg : the maximal degree (and the length) of a polynomial,
> usable for ecart
> p_WDegree/pWDegree: degree of the leading monomial wrt. the current
> weights, total degree for lex. orderings
> p_Deg/pDeg: degree of the leading monomial wrt. the current weights
> p_Totaldegree/pTotaldegree: degree of the leading monomial wrt. weight 1
>
> Remark: ecart:=max degree - degree of leading term,
> used for non-global orderings (i.e. algorithm of Mora)
>
> Hannes
Addendum:
r->pFDeg is used for ecart, i.e. ignores the weights from the ordering
in the cases there r->pLDeg ignores them: if not all weights are
positive (resp. of the same sign)
r->pFDegOrig and r->pLdegOrig are never called, but just the original
settings of pFdef/pLDEg if the degree function are temporarily changed

Hannes

Jean-Pierre Flori

unread,
Nov 18, 2015, 4:14:11 AM11/18/15
to libsingular-devel
Thanks.
The right solution for me was simply pDeg. Not sure why pLDeg was used in Sage before.

Jakob Kroeker

unread,
Jun 12, 2016, 9:11:02 PM6/12/16
to libsingular-devel

Am Mittwoch, 18. November 2015 10:14:11 UTC+1 schrieb Jean-Pierre Flori:
Thanks.
The right solution for me was simply pDeg. Not sure why pLDeg was used in Sage before.

I'm not sure that is right.

@Hans

consider following example:

`ring rng = 0,(x,y), lp;poly p = x;deg(x);`

when I use p_Deg() to compute the degree of x instead of pLDeg, I get
`65536 as an answer. Why?`

Reply all
Reply to author
Forward
0 new messages