> Help19 := proc() print(`Umb1(M,var), Umb(P,var), Zs(N) `); end proc; > Umb1 := proc(M, var) local f, d, i, c; for i to nops(var) do d[i] := degree(M, var[i]); end do; c := normal(M/mul(var[i]^d[i], i = 1 .. nops(var))); if {seq(normal(diff(c, var[i])), i = 1 .. nops(var))} <> {0} then RETURN(FAIL); end if; c*add(d[i], i = 1 .. nops(var))!/mul(d[i]!, i = 1 .. nops(var)); end proc; > Umb := proc(P, var) local P1, i; if P = 0 then RETURN(0); end if; P1 := expand(P); if not type(P1, `+`) then RETURN(Umb1(P, var)); end if; add(Umb1(op(i, P1), var), i = 1 .. nops(P1)); end proc; > Zs := proc(N) local f, var, i, L; f := (t^3*x123*x231*x312 + 1)*t^3*x312*x123*x231/((-t^2*x123*x321 + 1)*(-t^2*x213*x312 + 1)*(-t^2*x123*x312 + 1)*(-t^2*x132*x231 + 1)*(-t^2*x123*x231 + 1)*(-t^2*x231*x312 + 1)); f := taylor(f, t, N + 4); var := [x123, x132, x213, x231, x312, x321]; L := [seq(expand(coeff(f, t, i)), i = 1 .. N)]; [seq(2*Umb(L[i], var), i = 1 .. nops(L))]; end proc; > UmbT := proc(P, var, N) local i, j, S, P1; S := []; for i to N do P1 := expand(P^i); S := [op(S), Umb(P1, var)]; end do; seq(S[i], i = 1 .. nops(S)); end proc; > UmbT(x + y, [x, y], 20); 2, 6, 20, 70, 252, 924, 3432, 12870, 48620, 184756, 705432, 2704156, 10400600, 40116600, 155117520, 601080390, 2333606220, 9075135300, 35345263800, 137846528820 ; > UmbT(x + y + z, [x, y, z], 20); 3, 15, 93, 639, 4653, 35169, 272835, 2157759, 17319837, 140668065, 1153462995, 9533639025, 79326566595, 663835030335, 5582724468093, 47152425626559, 399769750195965, 3400775573443089, 29016970072920387, 248256043372999089 ; > UmbT(x1 + x2 + x3 + x4, [x1, x2, x3, x4], 20); 4, 28, 256, 2716, 31504, 387136, 4951552, 65218204, 878536624, 12046924528, 167595457792, 2359613230144, 33557651538688, 481365424895488, 6956365106016256, 101181938814289564, 1480129751586116848, 21761706991570726096, 321401321741959062016, 4766118425002290943216 ; > UmbT(1 + 2*x + 3*y, [x, y], 20); 6, 48, 432, 4104, 40176, 400896, 4053888, 41396832, 425922624, 4408432128, 45850157568, 478784058624, 5016552777216, 52713659768832, 555293062213632, 5862253175834112, 62006462404125696, 656969858722013184, 6971258566157672448, 74074268834613817344 ; > UmbT((1 + x)*(1 + y)*(1 + z), [x, y, z], 20); 16, 550, 24136, 1176106, 60777016, 3261771136, 179738342800, 10099540746586, 576074600766736, 33252430325188900, 1938057963369265600, 113864747946771636400, 6735066708925272520000, 400678521748749771325600, 23955811161103318460282656, 1438502844846334412424107866, 86710074762372112298341225600, 5244447235864729051389952560556, 318158612150147855918832514776496, 19353875636742012377756474564054476 ; > NULL; > NULL;