Cadabra
Computer algebra system for field theory problems
join_gamma.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Algorithm.hh"
5 
6 namespace cadabra {
7 
8  class join_gamma : public Algorithm {
9  public:
10  join_gamma(const Kernel&, Ex&, bool expand, bool use_gendelta);
11 
12  virtual bool can_apply(iterator);
13  virtual result_t apply(iterator&);
14 
15  bool expand;
16  std::vector<int> only_expand;
17  const GammaMatrix *gm1, *gm2;
18  private:
20  std::vector<Ex>&, std::vector<Ex>& );
21  void append_prod_(const std::vector<Ex>& r1, const std::vector<Ex>& r2,
22  unsigned int num1, unsigned int num2, unsigned int i, multiplier_t mult,
23  Ex& rep, iterator loc);
24 
26  Ex::iterator gamma_name_;
28  };
29 
30  }
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::sibling_iterator sibling_iterator
Definition: Algorithm.hh:72
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: GammaMatrix.hh:9
Definition: Kernel.hh:15
Definition: expand.hh:8
Definition: join_gamma.hh:8
bool expand
Definition: join_gamma.hh:15
str_node::bracket_t gamma_bracket_
Definition: join_gamma.hh:27
const GammaMatrix * gm1
Definition: join_gamma.hh:17
virtual result_t apply(iterator &)
Definition: join_gamma.cc:138
bool use_generalised_delta_
Definition: join_gamma.hh:25
const GammaMatrix * gm2
Definition: join_gamma.hh:17
void append_prod_(const std::vector< Ex > &r1, const std::vector< Ex > &r2, unsigned int num1, unsigned int num2, unsigned int i, multiplier_t mult, Ex &rep, iterator loc)
Definition: join_gamma.cc:49
Ex::iterator gamma_name_
Definition: join_gamma.hh:26
virtual bool can_apply(iterator)
Definition: join_gamma.cc:109
std::vector< int > only_expand
Definition: join_gamma.hh:16
void regroup_indices_(sibling_iterator, sibling_iterator, unsigned int, std::vector< Ex > &, std::vector< Ex > &)
Definition: join_gamma.cc:15
join_gamma(const Kernel &, Ex &, bool expand, bool use_gendelta)
Definition: join_gamma.cc:10
bracket_t
Definition: Storage.hh:58
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