Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
cadabra::join_gamma Class Reference

#include <join_gamma.hh>

Inheritance diagram for cadabra::join_gamma:
cadabra::Algorithm cadabra::ExManip

Public Member Functions

 join_gamma (const Kernel &, Ex &, bool expand, bool use_gendelta)
virtual bool can_apply (iterator)
virtual result_t apply (iterator &)
Public Member Functions inherited from cadabra::Algorithm
 Algorithm (const Kernel &, Ex &)
 Initialise the algorithm with a reference to the expression tree, but do not yet do anything with this tree.
virtual ~Algorithm ()
void set_progress_monitor (ProgressMonitor *)
 Provide the algorithm with a ProgressMonitor object on which to register (nested) progress information, to be reported out-of-band to a client.
result_t apply_generic (bool deep=true, bool repeat=false, unsigned int depth=0)
 The main entry points for running algorithms, which traverse the tree post-order ('child before parent').
result_t apply_generic (iterator &, bool deep, bool repeat, unsigned int depth)
result_t apply_pre_order (bool repeat=false)
 Apply algorithm with alternative traversal: starting from the top node, traverse the tree pre-order ('parent before child') and once the algorithm acts at a given node, do not traverse the subtree below anymore.
bool check_consistency (iterator) const
 Given an expression top node, check index consistency.
bool check_index_consistency (iterator) const
bool check_degree_consistency (iterator) const
 Given an expression top node, check differential form degree consistency.
void report_progress (const std::string &, int todo, int done, int count=2)
index_iterator begin_index (iterator it) const
index_iterator end_index (iterator it) const
unsigned int number_of_indices (iterator it)
std::string get_index_set_name (iterator it) const
bool rename_replacement_dummies (iterator, bool still_inside_algo=false)
 Rename the dummies in the sub-tree starting with head at the given iterator.
Ex_set_t dependencies (iterator it, bool include_derivatives_of=true) const
 Determine all the Coordinate dependencies of the object at 'it'.
bool derivative_acts_on (iterator it) const
 Is this a symbol on which a derivative acts?
Public Member Functions inherited from cadabra::ExManip
 ExManip (const Kernel &, Ex &)
bool prod_wrap_single_term (iterator &)
 Take a single non-product node in a sum and wrap it in a product node, so it can be handled on the same footing as a proper product.
bool prod_unwrap_single_term (iterator &)
bool sum_wrap_single_term (iterator &)
bool sum_unwrap_single_term (iterator &)
bool is_single_term (iterator)
 Is the indicated node a single term in an expression?
bool is_nonprod_factor_in_prod (iterator)
void force_node_wrap (iterator &, std::string)
 Wrap a term in a product or sum in a node with indicated name, irrespective of its parent (it usually makes more sense to call the safer prod_wrap_single_term or sum_wrap_single_term above).

Public Attributes

bool expand
std::vector< int > only_expand
const GammaMatrixgm1
const GammaMatrixgm2
Public Attributes inherited from cadabra::Algorithm
bool interrupted
unsigned int number_of_calls
unsigned int number_of_modifications
bool suppress_normal_output
bool discard_command_node
Stopwatch index_sw
Stopwatch get_dummy_sw
Stopwatch report_progress_stopwatch

Private Member Functions

void regroup_indices_ (sibling_iterator, sibling_iterator, unsigned int, std::vector< Ex > &, std::vector< Ex > &)
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)

Private Attributes

bool use_generalised_delta_
Ex::iterator gamma_name_
str_node::bracket_t gamma_bracket_

Additional Inherited Members

Public Types inherited from cadabra::Algorithm
typedef std::set< Ex, tree_exact_less_objEx_set_t
typedef Ex::result_t result_t
Public Types inherited from cadabra::ExManip
typedef Ex::iterator_base iterator_base
typedef Ex::iterator iterator
typedef Ex::post_order_iterator post_order_iterator
typedef Ex::sibling_iterator sibling_iterator
Static Public Member Functions inherited from cadabra::Algorithm
static unsigned int number_of_indices (const Properties &, iterator it)
static unsigned int number_of_direct_indices (iterator it)
static bool is_termlike (iterator)
 Determines whether the indicated node is 'like a term in a sum'.
static bool is_noncommuting (const Properties &, iterator)
 Determines whether the indicated node is 'like a factor in a product'.
Protected Types inherited from cadabra::Algorithm
typedef std::pair< sibling_iterator, sibling_iteratorrange_t
 Finding objects in sets.
typedef std::vector< range_trange_vector_t
Protected Member Functions inherited from cadabra::Algorithm
bool contains (sibling_iterator from, sibling_iterator to, sibling_iterator arg)
void find_argument_lists (range_vector_t &, bool only_comma_lists=true) const
template<class Iter>
range_vector_t::iterator find_arg_superset (range_vector_t &, Iter st, Iter nd)
range_vector_t::iterator find_arg_superset (range_vector_t &, sibling_iterator it)
unsigned int locate_single_object (Ex::iterator obj_to_find, Ex::iterator st, Ex::iterator nd, std::vector< unsigned int > &store)
bool locate_object_set (const Ex &objs, Ex::iterator st, Ex::iterator nd, std::vector< unsigned int > &store)
bool separated_by_derivative (iterator, iterator, iterator check_dependence) const
 Figure out whether two objects (commonly indices) are separated by a derivative operator, as in.
void pushup_multiplier (iterator)
template<class BinaryPredicate>
unsigned int intersection_number (sibling_iterator, sibling_iterator, sibling_iterator, sibling_iterator, BinaryPredicate) const
 Determine the number of elements in the first range which also occur in the second range.
void node_zero (iterator)
void node_one (iterator)
void node_integer (iterator, int)
Static Protected Member Functions inherited from cadabra::Algorithm
static bool compare_ (const str_node &, const str_node &)
Protected Attributes inherited from cadabra::Algorithm
ProgressMonitorpm
bool traverse_ldots
Protected Attributes inherited from cadabra::ExManip
const Kernel & kernel
Extr

Constructor & Destructor Documentation

◆ join_gamma()

join_gamma::join_gamma ( const Kernel & kernel,
Ex & tr_,
bool expand,
bool use_gendelta )

Member Function Documentation

◆ append_prod_()

void join_gamma::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 )
private

◆ apply()

Algorithm::result_t join_gamma::apply ( iterator & st)
virtual

Implements cadabra::Algorithm.

◆ can_apply()

bool join_gamma::can_apply ( iterator st)
virtual

Implements cadabra::Algorithm.

◆ regroup_indices_()

void join_gamma::regroup_indices_ ( sibling_iterator gam1,
sibling_iterator gam2,
unsigned int i,
std::vector< Ex > & r1,
std::vector< Ex > & r2 )
private

Member Data Documentation

◆ expand

bool cadabra::join_gamma::expand

◆ gamma_bracket_

str_node::bracket_t cadabra::join_gamma::gamma_bracket_
private

◆ gamma_name_

Ex::iterator cadabra::join_gamma::gamma_name_
private

◆ gm1

const GammaMatrix* cadabra::join_gamma::gm1

◆ gm2

const GammaMatrix * cadabra::join_gamma::gm2

◆ only_expand

std::vector<int> cadabra::join_gamma::only_expand

◆ use_generalised_delta_

bool cadabra::join_gamma::use_generalised_delta_
private

The documentation for this class was generated from the following files: