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