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 }
Definition: Adjform.hh:73
AdjformEx symmetrize(Ex::iterator it)
Definition: meld.cc:156
bool can_apply_traces(iterator it)
Definition: meld.cc:516
const Kernel & kernel
Definition: IndexClassifier.hh:76
virtual ~meld()
Definition: meld.cc:80
bool can_apply_tableaux(iterator it)
Definition: meld.cc:119
result_t apply_tableaux(iterator it)
Definition: meld.cc:342
Definition: Kernel.hh:14
Basic storage class for symbolic mathemematical expressions.
Definition: Storage.hh:140
result_t
Keeping track of what algorithms have done to this expression.
Definition: Storage.hh:159
Definition: meld.hh:10
result_t apply_traces(iterator it)
Definition: meld.cc:570
meld(const Kernel &kernel, Ex &ex)
Definition: meld.cc:73
virtual result_t apply(iterator &it) override
Definition: meld.cc:90
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:83
Definition: Adjform.hh:84
virtual bool can_apply(iterator it) override
Definition: meld.cc:85
Ex::iterator iterator
Definition: Algorithm.hh:70
Base class for all algorithms, containing generic routines and in particular the logic for index clas...
Definition: Algorithm.hh:59
IndexMap index_map
Definition: meld.hh:28