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  }
Basic storage class for symbolic mathemematical expressions.
Definition: Storage.hh:142
Class holding a collection of properties attached to expressions.
Definition: Props.hh:234
Definition: TableauBase.hh:9
virtual std::string name() const
Definition: TableauBase.cc:6
virtual tab_t get_tab(const Properties &, Ex &, Ex::iterator, unsigned int) const =0
bool is_simple_symmetry(const Properties &, Ex &, Ex::iterator) const
Definition: TableauBase.cc:34
virtual bool only_column_exchange() const
Definition: TableauBase.hh:19
virtual ~TableauBase()
Definition: TableauBase.hh:11
int get_indexgroup(const Properties &, Ex &, Ex::iterator, int) const
Definition: TableauBase.cc:11
virtual unsigned int size(const Properties &, Ex &, Ex::iterator) const =0
yngtab::filled_tableau< unsigned int > tab_t
Definition: TableauBase.hh:11
Base class for all properties, handling argument parsing and defining the interface.
Definition: Props.hh:127
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:83