/* $OpenXM: OpenXM_contrib2/asir2000/lib/katsura,v 1.1.1.1 1999/12/03 07:39:11 noro Exp $ */ def mku(L,N) { if (L < 0) L = -L; if (L <= N) return strtov("u"+rtostr(L)); return 0; } /* generate katsura systems */ def katsura(N) { R = []; for(L = 0; L < N; L++) { for(A = -mku(L,N),I = -N; I <= N; I++) A += mku(L-I,N)*mku(I,N); R = cons(A,R); } for(A = 0, L = -N; L <= N; L++) A += mku(L,N); R = cons(A-1,R); return R; } /* generate homogenized katsura systems */ def hkatsura(N) { R = []; for(L = 0; L < N; L++) { for(A = -mku(L,N)*t,I = -N; I <= N; I++) A += mku(L-I,N)*mku(I,N); R = cons(A,R); } for(A = 0, L = -N; L <= N; L++) A += mku(L,N); R = cons(A-t,R); return R; } end$