Cadabra
Computer algebra system for field theory problems
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TableauBase.hh
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include "Props.hh"
5 #include "YoungTab.hh"
6 
7 namespace cadabra {
8 
9  class TableauBase {
10  public:
11  virtual ~TableauBase() {};
13 
14  virtual unsigned int size(const Properties&, Ex&, Ex::iterator) const=0;
15  virtual tab_t get_tab(const Properties&, Ex&, Ex::iterator, unsigned int) const=0;
16 
17  virtual bool only_column_exchange() const { return false; };
18 
19  // Indexgroups are groups of indices which can be sorted by application
20  // of single-index monoterm symmetries. E.g. R_{m n p q} -> {m,n}:0, {p,q}:1.
21  int get_indexgroup(const Properties&, Ex&, Ex::iterator, int) const;
22 
23  // Is the tableau either a single column or a single row, and without
24  // duality projections?
25  bool is_simple_symmetry(const Properties&, Ex&, Ex::iterator) const;
26 };
27 
28 }
virtual bool only_column_exchange() const
Definition: TableauBase.hh:17
virtual tab_t get_tab(const Properties &, Ex &, Ex::iterator, unsigned int) const =0
Basic storage class for symbolic mathemematical expressions.
Definition: Storage.hh:130
virtual unsigned int size(const Properties &, Ex &, Ex::iterator) const =0
yngtab::filled_tableau< unsigned int > tab_t
Definition: TableauBase.hh:11
Definition: TableauBase.hh:9
int get_indexgroup(const Properties &, Ex &, Ex::iterator, int) const
Definition: TableauBase.cc:6
bool is_simple_symmetry(const Properties &, Ex &, Ex::iterator) const
Definition: TableauBase.cc:29
Class holding a collection of properties attached to expressions.
Definition: Props.hh:203
virtual ~TableauBase()
Definition: TableauBase.hh:11