Cadabra
Computer algebra system for field theory problems
meld.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <array>
5 #include "Algorithm.hh"
6 #include "Adjform.hh"
7 
8 namespace cadabra {
9 
10  class meld : public Algorithm
11  {
12  public:
13  meld(const Kernel& kernel, Ex& ex);
14  virtual ~meld();
15 
16  virtual bool can_apply(iterator it) override;
17  virtual result_t apply(iterator& it) override;
18 
19  private:
20  AdjformEx symmetrize(Ex::iterator it);
21 
22  bool can_apply_traces(iterator it);
24 
27 
29  };
30 
31 }
cadabra::Algorithm::iterator
Ex::iterator iterator
Definition: Algorithm.hh:70
cadabra::AdjformEx
Definition: Adjform.hh:79
cadabra::meld::symmetrize
AdjformEx symmetrize(Ex::iterator it)
Definition: meld.cc:199
cadabra::Kernel
Definition: Kernel.hh:14
cadabra::meld::can_apply
virtual bool can_apply(iterator it) override
Definition: meld.cc:163
Algorithm.hh
cadabra::meld::can_apply_tableaux
bool can_apply_tableaux(iterator it)
Definition: meld.cc:270
cadabra::meld::index_map
IndexMap index_map
Definition: meld.hh:28
cadabra::Ex::result_t
result_t
Keeping track of what algorithms have done to this expression.
Definition: Storage.hh:159
Adjform.hh
cadabra::Algorithm
Base class for all algorithms, containing generic routines and in particular the logic for index clas...
Definition: Algorithm.hh:59
cadabra::meld
Definition: meld.hh:11
cadabra::meld::can_apply_traces
bool can_apply_traces(iterator it)
Definition: meld.cc:284
cadabra::meld::apply
virtual result_t apply(iterator &it) override
Definition: meld.cc:184
cadabra::meld::meld
meld(const Kernel &kernel, Ex &ex)
Definition: meld.cc:152
cadabra::Ex
Basic storage class for symbolic mathemematical expressions.
Definition: Storage.hh:140
cadabra
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:80
cadabra::meld::~meld
virtual ~meld()
Definition: meld.cc:158
cadabra::IndexMap
Definition: Adjform.hh:71
cadabra::IndexClassifier::kernel
const Kernel & kernel
Definition: IndexClassifier.hh:66
cadabra::meld::apply_traces
result_t apply_traces(iterator it)
Definition: meld.cc:524
cadabra::meld::apply_tableaux
result_t apply_tableaux(iterator it)
Definition: meld.cc:298