70 virtual unsigned int row_size(
unsigned int row)
const;
93 std::pair<int, int>
find(
const T&)
const;
181 const T& operator*()
const;
182 const T* operator->()
const;
183 in_column_const_iterator& operator++();
184 in_column_const_iterator operator++(
int);
185 in_column_const_iterator& operator--();
186 in_column_const_iterator operator--(
int);
187 in_column_const_iterator operator+(
unsigned int);
188 in_column_const_iterator operator-(
unsigned int);
189 in_column_const_iterator& operator+=(
unsigned int);
190 in_column_const_iterator& operator-=(
unsigned int);
192 bool operator>(
const in_column_const_iterator&
other)
const;
194 bool operator>=(
const in_column_const_iterator&
other)
const;
195 ptrdiff_t operator-(
const in_column_const_iterator&)
const;
196 bool operator==(
const in_column_const_iterator&)
const;
209 T& operator*()
const;
210 T* operator->()
const;
211 in_row_iterator& operator++();
212 in_row_iterator operator++(
int);
213 in_row_iterator& operator--();
214 in_row_iterator operator--(
int);
215 in_row_iterator operator+(
unsigned int);
216 in_row_iterator operator-(
unsigned int);
217 in_row_iterator& operator+=(
unsigned int);
218 in_row_iterator& operator-=(
unsigned int);
220 bool operator>(
const in_row_iterator&
other)
const;
222 bool operator>=(
const in_row_iterator&
other)
const;
224 bool operator==(
const in_row_iterator&)
const;
238 const T& operator*()
const;
239 const T* operator->()
const;
240 in_row_const_iterator& operator++();
241 in_row_const_iterator operator++(
int);
242 in_row_const_iterator& operator--();
243 in_row_const_iterator operator--(
int);
244 in_row_const_iterator operator+(
unsigned int);
245 in_row_const_iterator operator-(
unsigned int);
246 in_row_const_iterator& operator+=(
unsigned int);
247 in_row_const_iterator& operator-=(
unsigned int);
249 bool operator>(
const in_row_const_iterator&
other)
const;
251 bool operator>=(
const in_row_const_iterator&
other)
const;
252 ptrdiff_t operator-(
const in_row_const_iterator&)
const;
253 bool operator==(
const in_row_const_iterator&)
const;
266 T& operator*()
const;
267 T* operator->()
const;
268 iterator& operator++();
269 iterator operator++(
int);
270 iterator& operator--();
271 iterator operator--(
int);
272 iterator operator+(
unsigned int);
273 iterator operator-(
unsigned int);
274 iterator& operator+=(
unsigned int);
275 iterator& operator-=(
unsigned int);
277 bool operator>(
const iterator&
other)
const;
279 bool operator==(
const iterator&)
const;
293 const T& operator*()
const;
294 const T* operator->()
const;
295 const_iterator& operator++();
296 const_iterator operator++(
int);
297 const_iterator& operator--();
298 const_iterator operator--(
int);
299 const_iterator operator+(
unsigned int);
300 const_iterator operator-(
unsigned int);
301 const_iterator& operator+=(
unsigned int);
302 const_iterator& operator-=(
unsigned int);
304 bool operator>(
const const_iterator&
other)
const;
306 bool operator==(
const const_iterator&)
const;
318 in_column_const_iterator
begin_column(
unsigned int column_number)
const;
319 in_column_const_iterator
end_column(
unsigned int column_number)
const;
321 in_column_const_iterator
cend_column(
unsigned int column_number)
const;
323 in_row_iterator
end_row(
unsigned int row_number);
324 in_row_const_iterator
begin_row(
unsigned int row_number)
const;
325 in_row_const_iterator
end_row(
unsigned int row_number)
const;
326 in_row_const_iterator
cbegin_row(
unsigned int row_number)
const;
327 in_row_const_iterator
cend_row(
unsigned int row_number)
const;
331 const_iterator
end()
const;
335 template<
class OutputIterator>
346 yngint_t total_dimension(
unsigned int dim);
347 void remove_nullifying_traces();
350 bool standard_form();
351 void add_tableau(
const T&);
352 void symmetrise(
const T&
tabsym);
363 const std::vector<std::pair<int,int> >&
ths,
378 typename tableau_container_t::iterator it=storage.begin();
379 while(it!=storage.end()) {
380 if(it->has_nullifying_trace())
381 it=storage.erase(it);
415 for(
unsigned int r=0;
r<
other.number_of_rows(); ++
r) {
418 tableau::operator=(
other);
424 return (rows==
other.rows);
460 for(
unsigned int ir=0;
ir<rows.size(); ++
ir) {
461 for(
unsigned int ic=0;
ic<rows[
ir].size(); ++
ic) {
462 if(rows[
ir][
ic]==obj)
463 return std::pair<int,int>(
ir,
ic);
466 return std::pair<int,int>(-1,-1);
473 sort_within_columns(comp);
491 template<
class StrictWeakOrdering>
495 if(number_of_rows()==0)
return;
496 for(
unsigned int c=0;
c<row_size(0); ++
c) {
497 std::sort(begin_column(
c), end_column(
c), comp);
503 template<
class StrictWeakOrdering>
506 for(
unsigned int c1=0;
c1<row_size(0); ++
c1) {
507 for(
unsigned int c2=
c1;
c2<row_size(0); ++
c2) {
508 if(column_size(
c1)==column_size(
c2)) {
509 if(comp((*
this)(0,
c2), (*
this)(0,
c1)))
517 template<
class StrictWeakOrdering>
521 sort_within_columns(comp);
530 : tab(
t), column_number(
c), row_number(
r)
559 return (*tab)(row_number +
n, column_number);
565 return (*tab)(row_number,column_number);
571 return &((*tab)(row_number,column_number));
621 if(tab==
other.tab && row_number==
other.row_number && column_number==
other.column_number)
629 if(row_number<=
other.row_number)
return true;
636 if(row_number>=
other.row_number)
return true;
643 if(row_number<
other.row_number)
return true;
650 if(row_number>
other.row_number)
return true;
657 return !((*this)==
other);
665 : tab(
t), column_number(
c), row_number(
r)
671 : tab(
other.tab), column_number(
other.column_number), row_number(
other.row_number)
700 return (*tab)(row_number, column_number);
706 return &((*tab)(row_number, column_number));
756 if (tab ==
other.tab && row_number ==
other.row_number && column_number ==
other.column_number)
764 if (row_number <=
other.row_number)
return true;
771 if (row_number >=
other.row_number)
return true;
778 if (row_number <
other.row_number)
return true;
785 if (row_number >
other.row_number)
return true;
792 return !((*this) ==
other);
801 : tab(
t), column_number(
c), row_number(
r)
830 return (*tab)(row_number, column_number);
836 return &((*tab)(row_number, column_number));
886 if (tab ==
other.tab && row_number ==
other.row_number && column_number ==
other.column_number)
894 if (column_number <=
other.column_number)
return true;
901 if (column_number >=
other.column_number)
return true;
908 if (column_number <
other.column_number)
return true;
915 if (column_number >
other.column_number)
return true;
922 return !((*this) ==
other);
930 : tab(
t), column_number(
c), row_number(
r)
936 : tab(
other.tab), column_number(
other.column_number), row_number(
other.row_number)
966 return (*tab)(row_number, column_number);
972 return &((*tab)(row_number, column_number));
1022 if (tab ==
other.tab && row_number ==
other.row_number && column_number ==
other.column_number)
1030 if (column_number <=
other.column_number)
return true;
1037 if (column_number >=
other.column_number)
return true;
1044 if (column_number <
other.column_number)
return true;
1051 if (column_number >
other.column_number)
return true;
1058 return !((*this) ==
other);
1068 : tab(
t), column_number(
c), row_number(
r)
1097 return (*tab)(row_number,column_number);
1103 return &((*tab)(row_number,column_number));
1109 if(++column_number==tab->rows[row_number].size()) {
1120 if(++column_number==tab->rows[row_number]) {
1132 if(column_number==0) {
1134 column_number=tab->rows[row_number].size()-1;
1136 else --column_number;
1144 if(column_number==0) {
1146 column_number=tab->rows[row_number].size()-1;
1148 else --column_number;
1157 if(++column_number==tab->rows[row_number]) {
1170 if(column_number==0) {
1172 column_number=tab->rows[row_number].size()-1;
1174 else --column_number;
1183 if(tab==
other.tab && row_number==
other.row_number && column_number==
other.column_number)
1191 if(row_number<
other.row_number)
return true;
1198 if(row_number>
other.row_number)
return true;
1205 return !((*this)==
other);
1215 : tab(
t), column_number(
c), row_number(
r)
1221 : tab(
other.tab), column_number(
other.column_number), row_number(
other.row_number)
1250 return (*tab)(row_number, column_number);
1256 return &((*tab)(row_number, column_number));
1262 if (++column_number == tab->rows[row_number].size()) {
1273 if (++column_number == tab->rows[row_number]) {
1285 if (column_number == 0) {
1287 column_number = tab->rows[row_number].size() - 1;
1289 else --column_number;
1297 if (column_number == 0) {
1299 column_number = tab->rows[row_number].size() - 1;
1301 else --column_number;
1309 while (this->
n > 0) {
1310 if (++column_number == tab->rows[row_number]) {
1323 if (column_number == 0) {
1325 column_number = tab->rows[row_number].size() - 1;
1327 else --column_number;
1336 if (tab ==
other.tab && row_number ==
other.row_number && column_number ==
other.column_number)
1344 if (row_number <
other.row_number)
return true;
1351 if (row_number >
other.row_number)
return true;
1358 return !((*this) ==
other);
1498 template<
class OutputIterator>
1530 if((*
this)(
r,
c) > (*
this)(
r,
c+1) )
1531 return std::pair<int, int>(
r,
c);
1535 return std::pair<int,int>(-1,-1);
1543 typename tableau_container_t::iterator
thetab=storage.begin();
1544 while(
thetab!=storage.end()) {
1545 (*thetab).sort_within_columns();
1546 std::pair<int,int>
where=(*thetab).nonstandard_loc();
1547 if(
where.first!=-1) {
1550 for(
unsigned int i1=
where.first;
i1<(*thetab).column_size(
where.second); ++
i1)
1554 com.sublengths.push_back((*thetab).column_size(
where.second)-
where.first);
1555 com.sublengths.push_back(
where.first+1);
1559 unsigned int offset=0;
1560 for(
unsigned int i1=
where.first;
i1<(*thetab).column_size(
where.second); ++
i1, ++offset)
1562 for(
unsigned int i1=0;
i1<=(
unsigned int)(
where.first); ++
i1, ++offset)
1577 typename tableau_container_t::iterator it=storage.begin();
1578 while(it!=storage.end()) {
1579 if((*it).compare_without_multiplicity(
ntab)) {
1580 (*it).multiplicity+=
ntab.multiplicity;
1581 if((*it).multiplicity==0)
1587 storage.push_back(
ntab);
1606 unsigned int offset=0;
1619 if(modulo_monoterm) {
1623 for(
unsigned int i=0;
i<sym.
size(); ++
i)
1650 unsigned int offset=0;
1731 typename tableau_container_t::const_iterator it=storage.begin();
1732 while(it!=storage.end()) {
1733 totdim+=(*it).dimension(dim);
1739 template<
class T,
class OutputIterator>
1750 template<
class T1,
class T2>
1752 const T2& tab2,
unsigned int row2,
unsigned int col2)
1759 const tableau&,
unsigned int,
unsigned int)
1766 template<
class Tab,
class OutputIterator>
1777 if((++
currow2)==tab2.number_of_rows()) {
1847 template<
class Tab,
class OutputIterator>
1863 (*yi)=std::pair<int,int>(-2,-2);
1870 template<
class T,
class OutputIterator>
1878 std::ostream&
operator<<(std::ostream&,
const tableau& );
1918 unsigned int row = 0;
1958 (*this)(
r,
c1)=(*
this)(
r,
c2);
1984 while(it!=tabs.
storage.end()) {
1985 str << (*it) << std::endl << std::endl;
bool operator<(const cadabra::Ex::iterator &i1, const cadabra::Ex::iterator &i2)
Definition Compare.cc:1761
websocketpp::client< websocketpp::config::asio_client > client
Definition ComputeThread.cc:15
mpq_class yngrat_t
Definition YoungTab.hh:39
mpz_class yngint_t
Definition YoungTab.hh:38
std::vector< T > original
Definition Combinatorics.hh:76
Definition Combinatorics.hh:101
Definition Combinatorics.hh:154
unsigned int size() const
Definition Combinatorics.hh:906
void apply_symmetry(long start=-1, long end=-1)
Definition Combinatorics.hh:695
int permutation_sign
Definition Combinatorics.hh:163
range_vector_t sublengths_scattered
Definition Combinatorics.hh:167
std::vector< unsigned int > permute_blocks
Definition Combinatorics.hh:161
std::vector< T > original
Definition Combinatorics.hh:159
range_vector_t input_asym
Definition Combinatorics.hh:166
std::vector< T > value_permute
Definition Combinatorics.hh:162
void set_multiplicity(unsigned int pos, int val)
Definition Combinatorics.hh:1003
unsigned int block_length
Definition Combinatorics.hh:160
int signature(unsigned int) const
Definition Combinatorics.hh:996
Definition YoungTab.hh:130
size_t size_type
Definition YoungTab.hh:135
T value_type
Definition YoungTab.hh:132
const T * pointer
Definition YoungTab.hh:133
const T & reference
Definition YoungTab.hh:134
ptrdiff_t difference_type
Definition YoungTab.hh:136
std::random_access_iterator_tag iterator_category
Definition YoungTab.hh:137
Definition YoungTab.hh:289
const T & operator*() const
Definition YoungTab.hh:1248
bool operator==(const const_iterator &) const
Definition YoungTab.hh:1334
bool operator<(const const_iterator &other) const
Definition YoungTab.hh:1342
bool operator!=(const const_iterator &) const
Definition YoungTab.hh:1356
const_iterator & operator++()
Definition YoungTab.hh:1260
const_iterator(unsigned int r, unsigned int c, const filled_tableau< T > *)
Definition YoungTab.hh:1214
const T * operator->() const
Definition YoungTab.hh:1254
const_iterator(const iterator &other)
bool operator>(const const_iterator &other) const
Definition YoungTab.hh:1349
const_iterator & operator+=(unsigned int)
Definition YoungTab.hh:1270
unsigned int column_number
Definition YoungTab.hh:312
const_iterator operator+(unsigned int)
Definition YoungTab.hh:1226
unsigned int row_number
Definition YoungTab.hh:312
const_iterator & operator-=(unsigned int)
Definition YoungTab.hh:1320
const filled_tableau< T > * tab
Definition YoungTab.hh:311
const_iterator operator-(unsigned int)
Definition YoungTab.hh:1234
const_iterator & operator--()
Definition YoungTab.hh:1283
A const iterator which stays inside a given column of a tableau.
Definition YoungTab.hh:177
in_column_const_iterator & operator+=(unsigned int)
Definition YoungTab.hh:717
bool operator<(const in_column_const_iterator &other) const
Definition YoungTab.hh:776
const T * operator->() const
Definition YoungTab.hh:704
in_column_const_iterator(unsigned int r, unsigned int c, const filled_tableau< T > *)
Definition YoungTab.hh:664
in_column_const_iterator & operator--()
Definition YoungTab.hh:724
unsigned int column_number
Definition YoungTab.hh:202
bool operator<=(const in_column_const_iterator &other) const
Definition YoungTab.hh:762
in_column_const_iterator & operator-=(unsigned int)
Definition YoungTab.hh:747
bool operator>(const in_column_const_iterator &other) const
Definition YoungTab.hh:783
bool operator!=(const in_column_const_iterator &) const
Definition YoungTab.hh:790
unsigned int row_number
Definition YoungTab.hh:202
const filled_tableau< T > * tab
Definition YoungTab.hh:201
const T & operator*() const
Definition YoungTab.hh:698
in_column_const_iterator operator+(unsigned int)
Definition YoungTab.hh:676
in_column_const_iterator operator-(unsigned int)
Definition YoungTab.hh:684
bool operator>=(const in_column_const_iterator &other) const
Definition YoungTab.hh:769
in_column_const_iterator(const in_column_iterator &other)
bool operator==(const in_column_const_iterator &) const
Definition YoungTab.hh:754
in_column_const_iterator & operator++()
Definition YoungTab.hh:710
An iterator which stays inside a given column of a tableau.
Definition YoungTab.hh:147
T * operator->() const
Definition YoungTab.hh:569
in_column_iterator operator-(unsigned int)
Definition YoungTab.hh:543
in_column_iterator operator+(unsigned int)
Definition YoungTab.hh:535
filled_tableau< T > * tab
Definition YoungTab.hh:172
in_column_iterator & operator--()
Definition YoungTab.hh:589
bool operator>(const in_column_iterator &other) const
Definition YoungTab.hh:648
bool operator>=(const in_column_iterator &other) const
Definition YoungTab.hh:634
T & operator*() const
Definition YoungTab.hh:563
unsigned int row_number
Definition YoungTab.hh:173
bool operator==(const in_column_iterator &) const
Definition YoungTab.hh:619
bool operator<(const in_column_iterator &other) const
Definition YoungTab.hh:641
T & operator[](int n) const
Definition YoungTab.hh:557
in_column_iterator & operator++()
Definition YoungTab.hh:575
bool operator!=(const in_column_iterator &) const
Definition YoungTab.hh:655
in_column_iterator & operator-=(unsigned int)
Definition YoungTab.hh:612
in_column_iterator(unsigned int r, unsigned int c, filled_tableau< T > *)
Definition YoungTab.hh:529
unsigned int column_number
Definition YoungTab.hh:173
in_column_iterator & operator+=(unsigned int)
Definition YoungTab.hh:582
bool operator<=(const in_column_iterator &other) const
Definition YoungTab.hh:627
Definition YoungTab.hh:234
bool operator<(const in_row_const_iterator &other) const
Definition YoungTab.hh:1042
bool operator<=(const in_row_const_iterator &other) const
Definition YoungTab.hh:1028
in_row_const_iterator operator+(unsigned int)
Definition YoungTab.hh:942
in_row_const_iterator operator-(unsigned int)
Definition YoungTab.hh:950
in_row_const_iterator & operator+=(unsigned int)
Definition YoungTab.hh:983
bool operator>=(const in_row_const_iterator &other) const
Definition YoungTab.hh:1035
in_row_const_iterator(unsigned int r, unsigned int c, const filled_tableau< T > *)
Definition YoungTab.hh:929
bool operator==(const in_row_const_iterator &) const
Definition YoungTab.hh:1020
in_row_const_iterator & operator--()
Definition YoungTab.hh:990
const T & operator*() const
Definition YoungTab.hh:964
unsigned int column_number
Definition YoungTab.hh:259
const T * operator->() const
Definition YoungTab.hh:970
bool operator>(const in_row_const_iterator &other) const
Definition YoungTab.hh:1049
in_row_const_iterator & operator++()
Definition YoungTab.hh:976
in_row_const_iterator(const in_row_iterator &other)
bool operator!=(const in_row_const_iterator &) const
Definition YoungTab.hh:1056
in_row_const_iterator & operator-=(unsigned int)
Definition YoungTab.hh:1013
const filled_tableau< T > * tab
Definition YoungTab.hh:258
An iterator which stays inside a given row of a tableau.
Definition YoungTab.hh:206
in_row_iterator operator-(unsigned int)
Definition YoungTab.hh:814
bool operator==(const in_row_iterator &) const
Definition YoungTab.hh:884
T * operator->() const
Definition YoungTab.hh:834
in_row_iterator operator+(unsigned int)
Definition YoungTab.hh:806
T & operator*() const
Definition YoungTab.hh:828
bool operator>(const in_row_iterator &other) const
Definition YoungTab.hh:913
in_row_iterator(unsigned int r, unsigned int c, filled_tableau< T > *)
Definition YoungTab.hh:800
bool operator<=(const in_row_iterator &other) const
Definition YoungTab.hh:892
bool operator>=(const in_row_iterator &other) const
Definition YoungTab.hh:899
bool operator<(const in_row_iterator &other) const
Definition YoungTab.hh:906
unsigned int column_number
Definition YoungTab.hh:231
in_row_iterator & operator+=(unsigned int)
Definition YoungTab.hh:847
in_row_iterator & operator++()
Definition YoungTab.hh:840
in_row_iterator & operator--()
Definition YoungTab.hh:854
bool operator!=(const in_row_iterator &) const
Definition YoungTab.hh:920
in_row_iterator & operator-=(unsigned int)
Definition YoungTab.hh:877
Definition YoungTab.hh:120
ptrdiff_t difference_type
Definition YoungTab.hh:126
T & reference
Definition YoungTab.hh:124
T * pointer
Definition YoungTab.hh:123
size_t size_type
Definition YoungTab.hh:125
std::random_access_iterator_tag iterator_category
Definition YoungTab.hh:127
T value_type
Definition YoungTab.hh:122
An iterator over all boxes of a tableau, left to right, top to bottom.
Definition YoungTab.hh:263
T * operator->() const
Definition YoungTab.hh:1101
iterator & operator--()
Definition YoungTab.hh:1130
bool operator>(const iterator &other) const
Definition YoungTab.hh:1196
iterator & operator+=(unsigned int)
Definition YoungTab.hh:1117
bool operator<(const iterator &other) const
Definition YoungTab.hh:1189
iterator & operator-=(unsigned int)
Definition YoungTab.hh:1167
iterator(unsigned int r, unsigned int c, filled_tableau< T > *)
Definition YoungTab.hh:1067
iterator operator-(unsigned int)
Definition YoungTab.hh:1081
iterator & operator++()
Definition YoungTab.hh:1107
iterator operator+(unsigned int)
Definition YoungTab.hh:1073
unsigned int row_number
Definition YoungTab.hh:286
T & operator*() const
Definition YoungTab.hh:1095
bool operator==(const iterator &) const
Definition YoungTab.hh:1181
bool operator!=(const iterator &) const
Definition YoungTab.hh:1203
Definition YoungTab.hh:84
const T & operator()(unsigned int row, unsigned int col) const
Definition YoungTab.hh:1908
virtual ~filled_tableau()
Definition YoungTab.hh:1929
void projector(combin::symmetriser< T > &, combin::range_vector_t &) const
Definition YoungTab.hh:1643
void canonicalise(StrictWeakOrdering comp, bool only_col_ex=false)
Definition YoungTab.hh:518
T value_type
Definition YoungTab.hh:86
in_row_iterator end_row(unsigned int row_number)
Definition YoungTab.hh:1465
std::vector< T > box_row
Definition YoungTab.hh:338
const_iterator begin() const
Definition YoungTab.hh:1391
void sort_columns()
Definition YoungTab.hh:477
void add_box(unsigned int rownum, T val)
Definition YoungTab.hh:1943
in_column_const_iterator begin_column(unsigned int column_number) const
Definition YoungTab.hh:1447
in_row_const_iterator cbegin_row(unsigned int row_number) const
Definition YoungTab.hh:1471
const_iterator cbegin() const
Definition YoungTab.hh:1379
void projector(combin::symmetriser< T > &, bool modulo_monoterm=false) const
Definition YoungTab.hh:1600
in_column_const_iterator cbegin_column(unsigned int column_number) const
Definition YoungTab.hh:1425
virtual unsigned int number_of_rows() const
Definition YoungTab.hh:1887
const_iterator cend() const
Definition YoungTab.hh:1385
void sort_within_columns(StrictWeakOrdering comp)
Definition YoungTab.hh:492
bool compare_without_multiplicity(const filled_tableau< T > &other) const
Definition YoungTab.hh:422
filled_tableau< T > & operator=(const filled_tableau< T > &)
Definition YoungTab.hh:1720
in_column_iterator begin_column(unsigned int column_number)
Definition YoungTab.hh:1403
void sort_within_columns()
Definition YoungTab.hh:470
iterator end()
Definition YoungTab.hh:1372
in_row_const_iterator cend_row(unsigned int row_number) const
Definition YoungTab.hh:1477
void canonicalise()
Sort equal-length columns and sort within columns.
Definition YoungTab.hh:484
void copy_shape(const tableau &)
Definition YoungTab.hh:412
std::pair< int, int > find(const T &) const
Definition YoungTab.hh:458
std::vector< box_row > row_stack
Definition YoungTab.hh:339
in_row_iterator begin_row(unsigned int row_number)
Definition YoungTab.hh:1459
void sort_columns(StrictWeakOrdering comp)
Definition YoungTab.hh:504
row_stack rows
Definition YoungTab.hh:340
T & operator()(unsigned int row, unsigned int col)
Definition YoungTab.hh:1900
const T & operator[](unsigned int boxnum) const
Definition YoungTab.hh:1916
yngrat_t projector_normalisation() const
Definition YoungTab.hh:1592
OutputIterator Garnir_set(OutputIterator, unsigned int, unsigned int) const
Definition YoungTab.hh:1499
in_column_iterator end_column(unsigned int column_number)
Definition YoungTab.hh:1412
in_row_const_iterator end_row(unsigned int row_number) const
Definition YoungTab.hh:1489
iterator begin()
Definition YoungTab.hh:1366
bool has_nullifying_trace() const
Definition YoungTab.hh:428
void swap_columns(unsigned int c1, unsigned int c2)
Definition YoungTab.hh:1952
std::pair< int, int > nonstandard_loc() const
Definition YoungTab.hh:1523
in_column_const_iterator end_column(unsigned int column_number) const
Definition YoungTab.hh:1453
in_column_const_iterator cend_column(unsigned int column_number) const
Definition YoungTab.hh:1434
virtual unsigned int row_size(unsigned int row) const
Definition YoungTab.hh:1893
virtual void clear()
Definition YoungTab.hh:1974
virtual void add_box(unsigned int row)
Definition YoungTab.hh:1934
const_iterator end() const
Definition YoungTab.hh:1397
virtual void remove_box(unsigned int row)
Definition YoungTab.hh:1964
in_row_const_iterator begin_row(unsigned int row_number) const
Definition YoungTab.hh:1483
Definition YoungTab.hh:47
unsigned long hook_length(unsigned int row, unsigned int col) const
Definition YoungTab.cc:72
yngint_t hook_length_prod() const
Definition YoungTab.cc:82
virtual ~tableau_base()
Definition YoungTab.cc:31
virtual unsigned int number_of_rows() const =0
yngint_t dimension(unsigned int) const
Definition YoungTab.cc:47
tableau_base()
Definition YoungTab.cc:26
virtual unsigned int row_size(unsigned int row) const =0
virtual void add_row(unsigned int row_size)
Definition YoungTab.cc:39
yngrat_t multiplicity
Definition YoungTab.hh:59
virtual void add_box(unsigned int row)=0
int selfdual_column
Definition YoungTab.hh:60
virtual unsigned int column_size(unsigned int col) const
Definition YoungTab.cc:61
virtual void remove_box(unsigned int row)=0
Definition YoungTab.hh:66
virtual unsigned int number_of_rows() const
Definition YoungTab.cc:110
tableau & operator=(const tableau &)
Definition YoungTab.cc:126
virtual unsigned int row_size(unsigned int row) const
Definition YoungTab.cc:115
virtual void add_box(unsigned int row)
Definition YoungTab.cc:91
virtual void clear()
Definition YoungTab.cc:121
virtual void remove_box(unsigned int row)
Definition YoungTab.cc:102
std::vector< int > rows
Definition YoungTab.hh:77
virtual ~tableau()
Definition YoungTab.cc:35
Definition YoungTab.hh:344
std::list< T > tableau_container_t
Definition YoungTab.hh:354
tableau_container_t storage
Definition YoungTab.hh:355
void add_tableau(const T &)
Definition YoungTab.hh:1575
bool standard_form()
Put the set of tableaux into standard form by using Garnir symmetries.
Definition YoungTab.hh:1539
std::back_insert_iterator< tableau_container_t > back_insert_iterator
Definition YoungTab.hh:357
yngint_t total_dimension(unsigned int dim)
Definition YoungTab.hh:1728
std::vector< range_t > range_vector_t
Definition Combinatorics.hh:40
unsigned long factorial(unsigned int x)
Definition Combinatorics.cc:23
int ordersign(iterator1 b1, iterator1 e1, iterator2 b2, iterator2 e2, int stepsize=1)
Definition Combinatorics.hh:224
Generic Young tableaux routines.
Definition YoungTab.cc:24
std::ostream & operator<<(std::ostream &str, const tableau &tab)
Definition YoungTab.cc:132
bool legal_box(const std::vector< std::pair< int, int > > &prev, const std::vector< std::pair< int, int > > &ths, int colpos, int trypos)
filled_tableau< std::pair< int, int > > keeptrack_tab_t
Definition YoungTab.hh:1764
void LR_tensor(const tableaux< T > &tabs1, const T &tab2, unsigned int maxrows, OutputIterator out, bool alltabs=false)
Definition YoungTab.hh:1740
void LR_add_box(const Tab &tab2, Tab &newtab, unsigned int currow2, unsigned int curcol2, unsigned int startrow, unsigned int maxrows, OutputIterator outit, keeptrack_tab_t &Ycurrent, bool alltabs)
Definition YoungTab.hh:1767