Cadabra
Computer algebra system for field theory problems
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 : virtual public property {
10  public:
11  virtual ~TableauBase() {};
13 
14  virtual std::string name() const;
15 
16  virtual unsigned int size(const Properties&, Ex&, Ex::iterator) const=0;
17  virtual tab_t get_tab(const Properties&, Ex&, Ex::iterator, unsigned int) const=0;
18 
19  virtual bool only_column_exchange() const
20  {
21  return false;
22  };
23 
24  // Indexgroups are groups of indices which can be sorted by application
25  // of single-index monoterm symmetries. E.g. R_{m n p q} -> {m,n}:0, {p,q}:1.
26  int get_indexgroup(const Properties&, Ex&, Ex::iterator, int) const;
27 
28  // Is the tableau either a single column or a single row, and without
29  // duality projections?
30  bool is_simple_symmetry(const Properties&, Ex&, Ex::iterator) const;
31  };
32 
33  }
cadabra::TableauBase::get_indexgroup
int get_indexgroup(const Properties &, Ex &, Ex::iterator, int) const
Definition: TableauBase.cc:11
cadabra::TableauBase::is_simple_symmetry
bool is_simple_symmetry(const Properties &, Ex &, Ex::iterator) const
Definition: TableauBase.cc:34
cadabra::TableauBase::tab_t
yngtab::filled_tableau< unsigned int > tab_t
Definition: TableauBase.hh:11
cadabra::TableauBase::~TableauBase
virtual ~TableauBase()
Definition: TableauBase.hh:11
cadabra::TableauBase::name
virtual std::string name() const
Definition: TableauBase.cc:6
cadabra::TableauBase::only_column_exchange
virtual bool only_column_exchange() const
Definition: TableauBase.hh:19
YoungTab.hh
cadabra::property
FIXME: the above two need to be merged, because parse may need access to the actual pattern tree,...
Definition: Props.hh:126
cadabra::TableauBase
Definition: TableauBase.hh:9
yngtab::filled_tableau< unsigned int >
cadabra::Ex
Definition: Storage.hh:140
cadabra
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:80
Props.hh
cadabra::Properties
Definition: Props.hh:233
cadabra::TableauBase::size
virtual unsigned int size(const Properties &, Ex &, Ex::iterator) const =0
cadabra::TableauBase::get_tab
virtual tab_t get_tab(const Properties &, Ex &, Ex::iterator, unsigned int) const =0