Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
decompose_product.hh
Go to the documentation of this file.
1
2#pragma once
3
7
8namespace cadabra {
9
13
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 }
Base class for all algorithms, containing generic routines and in particular the logic for index clas...
Definition: Algorithm.hh:59
Ex::iterator iterator
Definition: Algorithm.hh:70
Ex & tr
Definition: Algorithm.hh:151
Basic storage class for symbolic mathemematical expressions.
Definition: Storage.hh:141
result_t
Keeping track of what algorithms have done to this expression.
Definition: Storage.hh:160
Definition: Indices.hh:8
Definition: Kernel.hh:15
Definition: TableauBase.hh:9
Decompose a product of tensors by applying Young projectors.
Definition: decompose_product.hh:14
young_project::name_tab_t sibtab_t
Definition: decompose_product.hh:22
young_project::pos_tab_t numtab_t
Definition: decompose_product.hh:24
yngtab::filled_tableau< iterator > nt2
Definition: decompose_product.hh:42
const TableauBase * t2
Definition: decompose_product.hh:38
yngtab::filled_tableau< iterator > nt1
Definition: decompose_product.hh:42
void fill_asym_ranges(TableauBase::tab_t &tab, int offset, combin::range_vector_t &)
Definition: decompose_product.cc:74
virtual bool can_apply(iterator) override
Definition: decompose_product.cc:29
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
iterator f2
Definition: decompose_product.hh:37
TableauBase::tab_t t1tab
Definition: decompose_product.hh:39
yngtab::tableaux< numtab_t > numtabs_t
Definition: decompose_product.hh:25
TableauBase::tab_t t2tab
Definition: decompose_product.hh:39
unsigned int dim
Definition: decompose_product.hh:41
combin::range_vector_t asym_ranges
Definition: decompose_product.hh:44
virtual result_t apply(iterator &) override
Definition: decompose_product.cc:94
const Indices * ind1
Definition: decompose_product.hh:40
iterator f1
Definition: decompose_product.hh:37
yngtab::tableaux< sibtab_t > sibtabs_t
Definition: decompose_product.hh:23
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
const Indices * ind2
Definition: decompose_product.hh:40
const TableauBase * t1
Definition: decompose_product.hh:38
Definition: young_project.hh:9
Definition: YoungTab.hh:344
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:83
std::vector< range_t > range_vector_t
Definition: Combinatorics.hh:40