/* $OpenXM: OpenXM_contrib2/asir2000/lib/cyclic,v 1.1 1999/12/03 07:39:11 noro Exp $ */ def mkc(L,N) { if (L >= N) L -= N; if (L >= 0) return strtov("c"+rtostr(L)); return 0; } /* generate cyclic N-th roots systems */ def cyclic(N) { R = []; for (L = 1; L <= N; L++) { for (A = 0, I = 0; I <= N-1; I++) { for (B = 1,J = I; J < L+I; J++) { B *= mkc(J,N); } A += B; } A = ptozp(A); if (L == N) A += -1; R = cons(A,R); } return R; } /* generate homogenized cyclic N-th roots systems */ def hcyclic(N) { R = []; for (L = 1; L <= N; L++) { for (A = 0, I = 0; I <= N-1; I++) { for (B = 1,J = I; J < L+I; J++) { B *= mkc(J,N); } A += B; } A = ptozp(A); if (L == N) A += -c^N; R = cons(A,R); } return R; } def homo(X) { X=nm(red(subst(X,a,a/t,b,b/t,c,c/t))); } BJ6 = [a^2*b*c+a*b^2*c+a*b*c^2+a*b+b*c+c*a,a^2*b^2*c+a*b^2*c^2+b*c^2+c+a+a^2*b, a^2*b^2*c^2+b^2*c^2+c^2+1+a^2+a^2*b^2]$ HBJ6 = [homo(BJ6[0]),homo(BJ6[1]),homo(BJ6[2])]$ BJ7 = [nm(red(a+b+c+1+1/c+1/b+1/a)),nm(red(a*b+b*c+c+1/c+1/(b*c)+1/(a*b)+1)), nm(red(a*b*c+b*c+1+1/(b*c)+1/(a*b*c)+1/b+b))]$ HBJ7 = [homo(BJ7[0]),homo(BJ7[1]),homo(BJ7[2])]$ end$