| LIB "hnoether.lib";
// -------- prepare for example ---------
if (nameof(basering)=="HNEring") {
def rettering=HNEring;
kill HNEring;
}
// ------ the example starts here -------
ring r=0,(x,y),dp;
list hn=hnexpansion((x6-y10)*(x+y2-y3)*(x+y2+y3)); // 4 branches
def HNEring=hn[1];
setring HNEring;
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)]
// --- restore HNEring if previously defined ---
kill HNEring,r;
if (defined(rettering)) {
setring rettering;
def HNEring=rettering;
export HNEring;
}
|