Cadabra
Computer algebra system for field theory problems
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
substitute.hh
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include "Algorithm.hh"
6 
7 namespace cadabra {
8 
12 
13 class substitute : public Algorithm {
14  public:
15  substitute(const Kernel&, Ex& tr, Ex& args);
16 
32 
33  virtual bool can_apply(iterator st);
34 
35  virtual result_t apply(iterator&);
36 
38  private:
39  Ex& args;
40 
43 
44  std::map<iterator, bool> lhs_contains_dummies, rhs_contains_dummies;
45 
46  // For object swap testing routines:
48 };
49 
50 }
Base class for all algorithms, containing generic routines and in particular the logic for index clas...
Definition: Algorithm.hh:58
Basic storage class for symbolic mathemematical expressions.
Definition: Storage.hh:130
A generic tree comparison class which will take into account index contractions and will also keep tr...
Definition: Compare.hh:189
std::map< iterator, bool > lhs_contains_dummies
Definition: substitute.hh:44
Generic substitution algorithm.
Definition: substitute.hh:13
Definition: sort_product.hh:8
iterator use_rule
Definition: substitute.hh:41
iterator conditions
Definition: substitute.hh:42
Ex_comparator comparator
Definition: substitute.hh:37
Ex & args
Definition: substitute.hh:39
Ex::iterator iterator
Definition: Algorithm.hh:69
sort_product sort_product_
Definition: substitute.hh:47
substitute(const Kernel &, Ex &tr, Ex &args)
Definition: substitute.cc:11
Definition: Kernel.hh:15
result_t
Keeping track of what algorithms have done to this expression.
Definition: Storage.hh:149
Ex & tr
Definition: Algorithm.hh:146
std::map< iterator, bool > rhs_contains_dummies
Definition: substitute.hh:44
virtual bool can_apply(iterator st)
Match the lhs of the replacement rule to the subtree 'st' under consideration.
Definition: substitute.cc:70
virtual result_t apply(iterator &)
Definition: substitute.cc:122