/* example of asir program for computation of (F)_W * (G)_W */ load("gr"); MydegF=4; MydegG=5; def mygenf(N,STR){ Ans=1; for (J=1;J<= N;J++) {Coeff=strtov(STR+rtostr(J)); Ans=Ans+Coeff*t^J; } return(Ans); } def mygenroot(N, STR) { Ans = 1; for (J = 1; J <= N; J++) { Coeff = strtov(STR + rtostr(J)); Ans = Ans *(1- Coeff * t ); } return (Ans); } F=mygenf(MydegF,"a"); G=mygenf(MydegG,"b"); def myactroot(G,N, STR) { Ans = 1; for (J = 1; J <= N; J++) { Coeff = strtov(STR + rtostr(J)); Ans = Ans *subst(G,t, Coeff * t ); } return (Ans); } Fr=myactroot(1-t,MydegF,"r"); ANS1=myactroot(G,MydegF,"r"); L=[]; for (J=1; J<=MydegF; J++){ L=append([coef(F-Fr,J,t)],L); } V1=cdr(vars(Fr)); V2=cdr(vars(F)); VARS=append(V1,V2); B=gr(L,VARS,2); ANS2=coef(ANS1,1,t); ANS3=p_true_nf(ANS1,B,VARS,2); end$