/*mod_dg_sbd.c berechnet eine darstellende matrix, nach basisaenderung der bideterminanten modular um die übliche bezeichnung zu bekommen, wird die conjugierte partition genommen */ /* es wird nur die erste standard bi determinant ausgerechnet, die übrigen mit operate perm dabei wird die permutation genommen die von SYT 0 zu SYT i führt */ /* es wird keine ff arithmetik verwendet */ #include "def.h" #include "macro.h" /* standard bideterminanten */ /* polynom indiziert mit integer matrix */ /* */ /* basis fuer specht modul mit sbd */ static OP zero_one_matrices = NULL; static INT init_zero_one(OP part); static INT close_zero_one(); static INT operate_perm_spaltenmatrix_new(a,b,c) OP a,b,c; /* vertausch spalten gemaess der permutation */ /* spalte 0 nur wenn permutation auch 0 enthaelt */ /* AK 080802 */ { INT erg = OK; INT i,j; CTO(PERMUTATION,"operate_perm_spaltenmatrix(1)",a); CTTO(INTEGERMATRIX,MATRIX,"operate_perm_spaltenmatrix(2)",b); CE3(a,b,c,operate_perm_spaltenmatrix); SYMCHECK(S_P_LI(a) > S_M_LI(b), "operate_perm_spaltenmatrix: permutation degree too big"); COPY(b,c); for (j=0;j S_I_I(b+i)) return -1; ; return 0; } static INT get_symm_specht_poly(a,i,c) OP a,c; INT i; /* AK 210703 */ /* ite reihe von a ist symmetrized specht polynom write it as object of type POLYNOM */ { INT j,erg = OK; init(HASHTABLE,c); for (j=0;j