Cadabra
Computer algebra system for field theory problems
decompose_product.hh
Go to the documentation of this file.
1 
2 #pragma once
3 
6 #include "properties/Indices.hh"
7 
8 namespace cadabra {
9 
13 
14  class decompose_product : public Algorithm {
15  public:
16  decompose_product(const Kernel&, Ex& tr);
17 
18  virtual bool can_apply(iterator) override;
19  virtual result_t apply(iterator&) override;
20 
21  private:
26 
29  const Indices *indices_equivalent(iterator it) const;
30 
33  const TableauBase *tt, iterator ff,
34  int offset, const TableauBase::tab_t& thetab,
35  bool remove_traces);
36 
38  const TableauBase *t1, *t2;
40  const Indices *ind1, *ind2;
41  unsigned int dim;
43 
45  };
46 
47  }
Indices.hh
cadabra::decompose_product
Definition: decompose_product.hh:14
cadabra::decompose_product::f2
iterator f2
Definition: decompose_product.hh:37
cadabra::decompose_product::apply
virtual result_t apply(iterator &) override
Definition: decompose_product.cc:94
cadabra::decompose_product::fill_asym_ranges
void fill_asym_ranges(TableauBase::tab_t &tab, int offset, combin::range_vector_t &)
Definition: decompose_product.cc:74
yngtab::tableaux
Definition: YoungTab.hh:81
cadabra::decompose_product::sibtab_t
young_project::name_tab_t sibtab_t
Definition: decompose_product.hh:22
TableauBase.hh
cadabra::Kernel
Definition: Kernel.hh:15
cadabra::decompose_product::ind2
const Indices * ind2
Definition: decompose_product.hh:40
cadabra::Indices
Definition: Indices.hh:8
cadabra::decompose_product::sibtabs_t
yngtab::tableaux< sibtab_t > sibtabs_t
Definition: decompose_product.hh:23
cadabra::decompose_product::decompose_product
decompose_product(const Kernel &, Ex &tr)
Definition: decompose_product.cc:10
cadabra::decompose_product::dim
unsigned int dim
Definition: decompose_product.hh:41
combin::range_vector_t
std::vector< range_t > range_vector_t
Definition: Combinatorics.hh:40
cadabra::decompose_product::numtabs_t
yngtab::tableaux< numtab_t > numtabs_t
Definition: decompose_product.hh:25
cadabra::decompose_product::asym_ranges
combin::range_vector_t asym_ranges
Definition: decompose_product.hh:44
cadabra::decompose_product::nt2
yngtab::filled_tableau< iterator > nt2
Definition: decompose_product.hh:42
cadabra::decompose_product::t1
const TableauBase * t1
Definition: decompose_product.hh:38
cadabra::decompose_product::t2
const TableauBase * t2
Definition: decompose_product.hh:38
cadabra::decompose_product::f1
iterator f1
Definition: decompose_product.hh:37
young_project.hh
cadabra::decompose_product::can_apply
virtual bool can_apply(iterator) override
Definition: decompose_product.cc:29
cadabra::young_project
Definition: young_project.hh:9
yngtab::filled_tableau< iterator >
cadabra::decompose_product::t2tab
TableauBase::tab_t t2tab
Definition: decompose_product.hh:39
cadabra::decompose_product::numtab_t
young_project::pos_tab_t numtab_t
Definition: decompose_product.hh:24
cadabra::Algorithm::iterator
Ex::iterator iterator
Definition: Algorithm.hh:70
cadabra::TableauBase
Definition: TableauBase.hh:9
cadabra::Algorithm
Definition: Algorithm.hh:59
cadabra::decompose_product::ind1
const Indices * ind1
Definition: decompose_product.hh:40
cadabra
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:83
cadabra::Ex
Definition: Storage.hh:141
cadabra::decompose_product::project_onto_initial_symmetries
void project_onto_initial_symmetries(Ex &rep, iterator rr, young_project &yp, const TableauBase *tt, iterator ff, int offset, const TableauBase::tab_t &thetab, bool remove_traces)
Definition: decompose_product.cc:266
cadabra::decompose_product::t1tab
TableauBase::tab_t t1tab
Definition: decompose_product.hh:39
cadabra::Ex::result_t
result_t
Keeping track of what algorithms have done to this expression.
Definition: Storage.hh:160
cadabra::Algorithm::tr
Ex & tr
Definition: Algorithm.hh:151
cadabra::decompose_product::nt1
yngtab::filled_tableau< iterator > nt1
Definition: decompose_product.hh:42
cadabra::decompose_product::indices_equivalent
const Indices * indices_equivalent(iterator it) const
Test that all indices on the product are equivalent, that is, have the same Indices property attached...
Definition: decompose_product.cc:15