 |
Cadabra
Computer algebra system for field theory problems
|
Go to the documentation of this file.
112 void report_progress(
const std::string&,
int todo,
int done,
int count=2);
151 typedef std::pair<sibling_iterator, sibling_iterator>
range_t;
162 Ex::iterator st, Ex::iterator nd,
163 std::vector<unsigned int>& store);
165 Ex::iterator st, Ex::iterator nd,
166 std::vector<unsigned int>& store);
215 template<
class BinaryPredicate>
249 template<
class BinaryPredicate>
252 BinaryPredicate
fun)
const
unsigned int locate_single_object(Ex::iterator obj_to_find, Ex::iterator st, Ex::iterator nd, std::vector< unsigned int > &store)
Definition: Algorithm.cc:988
static bool less_without_numbers(nset_t::iterator, nset_t::iterator)
Definition: Algorithm.cc:1072
bool suppress_normal_output
Definition: Algorithm.hh:103
static bool equal_without_numbers(nset_t::iterator, nset_t::iterator)
Definition: Algorithm.cc:1093
unsigned int number_of_calls
Definition: Algorithm.hh:101
Stopwatch get_dummy_sw
Definition: Algorithm.hh:115
Ex::iterator iterator
Definition: Algorithm.hh:70
Definition: ProgressMonitor.hh:10
bool discard_command_node
Definition: Algorithm.hh:104
bool prod_unwrap_single_term(iterator &)
Definition: Algorithm.cc:879
bool sum_unwrap_single_term(iterator &)
Definition: Algorithm.cc:894
bool check_degree_consistency(iterator) const
Given an expression top node, check differential form degree consistency.
Definition: Algorithm.cc:503
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...
Definition: Algorithm.cc:864
Definition: IndexIterator.hh:16
Ex::result_t result_t
Definition: Algorithm.hh:73
result_t
Keeping track of what algorithms have done to this expression.
Definition: Storage.hh:159
virtual result_t apply(iterator &)=0
Definition: IndexClassifier.hh:13
bool locate_object_set(const Ex &objs, Ex::iterator st, Ex::iterator nd, std::vector< unsigned int > &store)
Definition: Algorithm.cc:1008
bool is_nonprod_factor_in_prod(iterator)
Definition: Algorithm.cc:833
bool contains(sibling_iterator from, sibling_iterator to, sibling_iterator arg)
Definition: Algorithm.cc:736
unsigned int number_of_indices(iterator it)
Definition: Algorithm.cc:471
bool traverse_ldots
Definition: Algorithm.hh:227
bool check_consistency(iterator) const
Given an expression top node, check index consistency.
Definition: Algorithm.cc:508
void node_zero(iterator)
Definition: Algorithm.cc:436
Definition: Stopwatch.hh:107
index_iterator begin_index(iterator it) const
Definition: Algorithm.cc:483
Ex::post_order_iterator post_order_iterator
Definition: Algorithm.hh:71
void report_progress(const std::string &, int todo, int done, int count=2)
Definition: Algorithm.cc:592
void find_argument_lists(range_vector_t &, bool only_comma_lists=true) const
static bool compare_(const str_node &, const str_node &)
Definition: Algorithm.cc:1118
virtual ~Algorithm()
Definition: Algorithm.cc:58
Definition: Algorithm.hh:59
void node_one(iterator)
Definition: Algorithm.cc:443
Algorithm(const Kernel &, Ex &)
Initialise the algorithm with a reference to the expression tree, but do not yet do anything with thi...
Definition: Algorithm.cc:46
result_t apply_pre_order(bool repeat=false)
Apply algorithm with alternative traversal: starting from the top node, traverse the tree pre-order (...
Definition: Algorithm.cc:67
result_t apply_once(Ex::iterator &it)
Definition: Algorithm.cc:188
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 paren...
Definition: Algorithm.cc:103
bool rename_replacement_dummies(iterator, bool still_inside_algo=false)
Definition: Algorithm.cc:625
int index_parity(iterator) const
Definition: Algorithm.cc:458
bool separated_by_derivative(iterator, iterator, iterator check_dependence) const
Figure out whether two objects (commonly indices) are separated by a derivative operator,...
Definition: Algorithm.cc:909
Stopwatch report_progress_stopwatch
Definition: Algorithm.hh:116
bool is_factorlike(iterator)
Determines whether the indicated node is 'like a factor in a product'.
Definition: Algorithm.cc:802
void propagate_zeroes(post_order_iterator &, const iterator &)
Given a node with zero multiplier, propagate this zero upwards in the tree.
Definition: Algorithm.cc:311
std::vector< range_t > range_vector_t
Definition: Algorithm.hh:152
Definition: Storage.hh:140
virtual bool can_apply(iterator)=0
void set_progress_monitor(ProgressMonitor *)
Provide the algorithm with a ProgressMonitor object on which to register (nested) progress informatio...
Definition: Algorithm.cc:62
bool check_index_consistency(iterator) const
Definition: Algorithm.cc:496
bool is_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 sa...
Definition: Algorithm.cc:814
Functions to handle the exchange properties of two or more symbols in a product.
Definition: Algorithm.cc:1045
bool sum_wrap_single_term(iterator &)
Definition: Algorithm.cc:855
static unsigned int number_of_direct_indices(iterator it)
Definition: Algorithm.cc:1060
ProgressMonitor * pm
Definition: Algorithm.hh:137
index_iterator end_index(iterator it) const
Definition: Algorithm.cc:488
void fun(int *&p)
Definition: passing.cc:6
bool prod_wrap_single_term(iterator &)
Definition: Algorithm.cc:846
Ex & tr
Definition: Algorithm.hh:136
Definition: Storage.hh:55
void node_integer(iterator, int)
Definition: Algorithm.cc:450
unsigned int number_of_modifications
Definition: Algorithm.hh:102
Ex::sibling_iterator sibling_iterator
Definition: Algorithm.hh:72
void pushup_multiplier(iterator)
Definition: Algorithm.cc:397
Stopwatch index_sw
Definition: Algorithm.hh:114
result_t apply_deep(Ex::iterator &it)
Definition: Algorithm.cc:205
bool is_termlike(iterator)
Determines whether the indicated node is 'like a term in a sum'.
Definition: Algorithm.cc:790
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.
Definition: Algorithm.hh:250
bool interrupted
Definition: Algorithm.hh:75
range_vector_t::iterator find_arg_superset(range_vector_t &, Iter st, Iter nd)
Definition: Algorithm.cc:769
std::pair< sibling_iterator, sibling_iterator > range_t
Finding objects in sets.
Definition: Algorithm.hh:151