@@ -19,6 +19,7 @@ bool lr_tensor::can_apply(iterator it)
1919 tab2=tr.end (it);
2020 while (sib!=tr.end (it)) {
2121 if (kernel.properties .get <Tableau>(sib)) {
22+ // FIXME: test that tab2 has the same dimension!
2223 if (tab1==tr.end (it))
2324 tab1=sib;
2425 else {
@@ -51,15 +52,18 @@ bool lr_tensor::can_apply(iterator it)
5152
5253Algorithm::result_t lr_tensor::apply (iterator& it)
5354 {
54- if (kernel.properties .get <Tableau>(tab1)) do_tableau (it);
55- else do_filledtableau (it);
55+ const Tableau *t1=kernel.properties .get <Tableau>(tab1);
56+ const FilledTableau *f1=kernel.properties .get <FilledTableau>(tab1);
57+
58+ if (t1) do_tableau (it, t1->dimension );
59+ else do_filledtableau (it, f1->dimension );
5660
5761 return result_t ::l_applied;
5862 }
5963
6064// The format is \ftab{a,b,c}{d,e}{f}.
6165//
62- void lr_tensor::do_filledtableau (iterator& it)
66+ void lr_tensor::do_filledtableau (iterator& it, int dimension )
6367 {
6468 bool even_only=false ;
6569 bool singlet_rules=false ;
@@ -80,7 +84,7 @@ void lr_tensor::do_filledtableau(iterator& it)
8084 tree_to_numerical_tab (tab1, one);
8185 tree_to_numerical_tab (tab2, two);
8286
83- yngtab::LR_tensor (one,two,999 ,prod.get_back_insert_iterator ());
87+ yngtab::LR_tensor (one,two,dimension ,prod.get_back_insert_iterator ());
8488
8589 Ex rep;
8690 iterator top=rep.set_head (str_node (" \\ sum" ));
@@ -99,7 +103,7 @@ void lr_tensor::do_filledtableau(iterator& it)
99103 cleanup_dispatch (kernel, tr, it);
100104 }
101105
102- void lr_tensor::do_tableau (iterator& it)
106+ void lr_tensor::do_tableau (iterator& it, int dimension )
103107 {
104108 bool even_only=false ;
105109 // FIXME: put arguments back in
@@ -119,7 +123,7 @@ void lr_tensor::do_tableau(iterator& it)
119123 two.add_row (to_long (*sib->multiplier ));
120124 ++sib;
121125 }
122- yngtab::LR_tensor (one,two,999 ,prod.get_back_insert_iterator ());
126+ yngtab::LR_tensor (one,two,dimension ,prod.get_back_insert_iterator ());
123127
124128 Ex rep;
125129 iterator top=rep.set_head (str_node (" \\ sum" ));
0 commit comments