Top
Back: invariants
Forward: displayInvariants
FastBack: gaussman_lib
FastForward: mondromy_lib
Up: hnoether_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.5.5.9 multsequence

Procedure from library hnoether.lib (see hnoether_lib).

Usage:
multsequence(L); L list

Assume:
L is the output of develop(f), or of extdevelop(develop(f),n), or one entry of the output of reddevelop(f).

Return:
intvec corresponding to the multiplicity sequence of (a branch) of the curve (the same as invariants(L)[6]).

Assume:
L is the output of reddevelop(f).

Return:
list of two integer matrices:

multsequence(L)[1][i,*]
contains the multiplicities of the branches at their infinitely near point of 0 in its (i-1) order neighbourhood (i.e., i=1: multiplicity of the branches themselves, i=2: multiplicity of their 1st quadratic transformed, etc.,
Hence, multsequence(L)[1][*,j] is the multiplicity sequence of branch j.
multsequence(L)[2][i,*]:
contains the information which of these infinitely near points coincide.

Note:
The order of elements of the list obtained from reddevelop(f) must not be changed (because then the coincident infinitely near points couldn't be grouped together, cf. meaning of 2nd intmat in example). Hence, it is not wise to compute the HNE of several polynomials separately, put them into a list L and call multsequence(L).
Use displayMultsequence to produce a better readable output for reducible curves on the screen.

Example:
 
LIB "hnoether.lib";
// -------- prepare for example ---------
if (nameof(basering)=="HNEring") {
def rettering=HNEring;
kill HNEring;
}
// ------ the example starts here -------
int plevel=printlevel; printlevel=-1;
ring r=0,(x,y),dp;
list hne=reddevelop((x6-y10)*(x+y2-y3)*(x+y2+y3));   // 4 branches
multsequence(hne[1]),"  |  ",multsequence(hne[2]),"  |  ",
multsequence(hne[3]),"  |  ",multsequence(hne[4]);
==> 3,2,1   |   3,2,1   |   1   |   1
multsequence(hne);
==> [1]:
==>    3,3,1,1,
==>    2,2,1,1,
==>    1,1,1,1,
==>    1,1,1,1,
==>    1,1,1,1 
==> [2]:
==>    4,0,0,0,
==>    4,0,0,0,
==>    2,2,0,0,
==>    2,1,1,0,
==>    1,1,1,1 
// The meaning of the entries of the 2nd matrix is as follows:
displayMultsequence(hne);
==> [(3,3,1,1)],
==> [(2,2,1,1)],
==> [(1,1),(1,1)],
==> [(1,1),(1),(1)],
==> [(1),(1),(1),(1)]
kill HNEring,r;
printlevel=plevel;
// --- restore HNEring if previously defined ---
if (defined(rettering)) {
setring rettering;
def HNEring=rettering;
export HNEring;
}
See also: develop; displayMultsequence; reddevelop; separateHNE.


Top Back: invariants Forward: displayInvariants FastBack: gaussman_lib FastForward: mondromy_lib Up: hnoether_lib Top: Singular Manual Contents: Table of Contents Index: Index About: About this document
            User manual for Singular version 2-0-2, August 2001, generated by texi2html.