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