|  |  D.6.11.8 multsequence Procedure from libraryhnoether.lib(see  hnoether_lib).
 
Example:Usage:
multsequence(INPUT); INPUT list or poly
Assume:
INPUTis the output ofdevelop(f), or ofextdevelop(develop(f),n), or one entry of the list of HN data
computed byhnexpansion(f[,"ess"]).
Return:
intvec corresponding to the multiplicity sequence of the irreducible
plane curve singularity described by the HN data (return value
coincides with invariants(INPUT)[6]).
Assume:
INPUTis a bivariate polynomial f, or the output ofhnexpansion(f), or the list of HN data computed byhnexpansion(f [,"ess"]).
Return:
list of two integer matrices:
 
multsequence(INPUT)[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 transform,
   etc., Hence,
 multsequence(INPUT)[1][*,j]is the multiplicity sequence
   of branch j.multsequence(INPUT)[2][i,*]:   contains the information which of these infinitely near points coincide.
 
Note:
The order of the elements of the list of HN data obtained from
hnexpansion(f [,"ess"])must not be changed (because otherwise
the coincident infinitely near points couldn't be grouped together,
see the meaning of the 2nd intmat in the example).Hence, it is not wise to compute the HN expansion of polynomial factors
separately, put them into a list INPUT and call
 multsequence(INPUT).Use
 displayMultsequenceto produce a better readable output for
reducible curves on the screen.In case the Hamburger-Noether expansion of the curve f is needed
for other purposes as well it is better to calculate this first
with the aid of
 hnexpansionand use it as input instead of
the polynomial itself.
 See also:
 develop;
 displayMultsequence;
 hnexpansion;
 separateHNE.|  | LIB "hnoether.lib";
ring r=0,(x,y),dp;
list Hne=hnexpansion((x6-y10)*(x+y2-y3)*(x+y2+y3));
==> // No change of ring necessary, return value is HN expansion.
multsequence(Hne[1]),"  |  ",multsequence(Hne[2]),"  |  ",
multsequence(Hne[3]),"  |  ",multsequence(Hne[4]);
==> 3,2,1,1   |   3,2,1,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)]
 | 
 
 |