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