1 #include "def.h"
2 #include "macro.h"
3
4 INT tsp___faktor();
5 INT tep___faktor();
6 INT ppp___();
7
plet_schur_elmsym_pre101201(a,b,c)8 INT plet_schur_elmsym_pre101201(a,b,c) OP a,b,c;
9 /* AK 061201
10 */
11 {
12 INT erg = OK;
13 CTTTTO(HASHTABLE,INTEGER,PARTITION,SCHUR,"plet_schur_elmsym_pre101201(1)",a);
14 CTTTTO(INTEGER,HASHTABLE,PARTITION,ELMSYM,"plet_schur_elmsym_pre101201(2)",b);
15 CTTTO(EMPTY,HASHTABLE,ELMSYM,"plet_schur_elmsym_pre101201(3)",c);
16
17 /*
18 if (S_O_K(c) == EMPTY)
19 t=1; init_hashtable(c); }
20 pph___(a,b,c,cons_eins);
21 */
22 {
23 /* via ppp with change of basis */
24 OP d = CALLOCOBJECT();
25 OP e = CALLOCOBJECT();
26 OP f = CALLOCOBJECT();
27 erg += init_hashtable(e);
28 erg += init_hashtable(d);
29 erg += init_hashtable(f);
30 erg += tsp___faktor(a,f,cons_eins);
31 erg += tep___faktor(b,d,cons_eins);
32 erg += ppp___(f,d,e,cons_eins);
33 FREEALL(d);
34 FREEALL(f);
35 erg += t_POWSYM_ELMSYM(e,c);
36 FREEALL(e);
37 }
38 /*
39 if (t==1) t_HASHTABLE_ELMSYM(c,c);
40 */
41 ENDR("plet_schur_elmsym_pre101201");
42 }
43
44 INT ppe___();
plet_schur_elmsym(a,b,c)45 INT plet_schur_elmsym(a,b,c) OP a,b,c;
46 /* AK 061201
47 */
48 {
49 INT t=0,erg = OK;
50 CTTTTO(HASHTABLE,INTEGER,PARTITION,SCHUR,"plet_schur_elmsym(1)",a);
51 CTTTTO(INTEGER,HASHTABLE,PARTITION,ELMSYM,"plet_schur_elmsym(2)",b);
52 CTTTO(EMPTY,HASHTABLE,ELMSYM,"plet_schur_elmsym(3)",c);
53
54 if (S_O_K(c) == EMPTY)
55 { t=1; init_hashtable(c); }
56 /*
57 pse___(a,b,c,cons_eins);
58 */
59 {
60 /* via ppe with change of basis */
61 OP f = CALLOCOBJECT();
62 erg += init_hashtable(f);
63 erg += tsp___faktor(a,f,cons_eins);
64 erg += ppe___(f,b,c,cons_eins);
65 FREEALL(f);
66 }
67
68 if (t==1) t_HASHTABLE_ELMSYM(c,c);
69 ENDR("plet_schur_elmsym");
70 }
71
72
73