Cadabra
Computer algebra system for field theory problems
drop_weight.hh
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include "Algorithm.hh"
6 #include "properties/Weight.hh"
7 #include <string>
8 
9 namespace cadabra {
10 
11  class drop_keep_weight : public Algorithm {
12  public:
13  drop_keep_weight(const Kernel&, Ex&, Ex&);
14 
15  virtual bool can_apply(iterator) override;
16  result_t do_apply(iterator&, bool keepthem);
17 
18  protected:
21  const Weight *wgh;
22  std::string label;
24  };
25 
26  class drop_weight : public drop_keep_weight {
27  public:
28  drop_weight(const Kernel&, Ex&, Ex&);
29 
30  virtual result_t apply(iterator&) override;
31  };
32 
33  class keep_weight : public drop_keep_weight {
34  public:
35  keep_weight(const Kernel&, Ex&, Ex&);
36 
37  virtual result_t apply(iterator&) override;
38  };
39 
40  }
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
Basic storage class for symbolic mathemematical expressions.
Definition: Storage.hh:142
result_t
Keeping track of what algorithms have done to this expression.
Definition: Storage.hh:161
Definition: Kernel.hh:15
Definition: Weight.hh:8
Definition: WeightInherit.hh:9
Definition: drop_weight.hh:11
std::string label
Definition: drop_weight.hh:22
const Weight * wgh
Definition: drop_weight.hh:21
result_t do_apply(iterator &, bool keepthem)
Definition: drop_weight.cc:60
drop_keep_weight(const Kernel &, Ex &, Ex &)
Definition: drop_weight.cc:10
virtual bool can_apply(iterator) override
Definition: drop_weight.cc:29
Ex arg
Definition: drop_weight.hh:19
const WeightInherit * gmn
Definition: drop_weight.hh:20
multiplier_t weight
Definition: drop_weight.hh:23
Definition: drop_weight.hh:26
virtual result_t apply(iterator &) override
Definition: drop_weight.cc:136
drop_weight(const Kernel &, Ex &, Ex &)
Definition: drop_weight.cc:131
Definition: drop_weight.hh:33
keep_weight(const Kernel &, Ex &, Ex &)
Definition: drop_weight.cc:141
virtual result_t apply(iterator &) override
Definition: drop_weight.cc:146
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Adjform.cc:83
mpq_class multiplier_t
Definition: Storage.hh:38