64 typedef std::set<Ex, tree_exact_less_obj>
Ex_set_t;
104 void report_progress(
const std::string&,
int todo,
int done,
int count=2);
139 static bool is_factorlike(
iterator);
153 bool derivative_acts_on(
iterator it)
const;
170 typedef std::pair<sibling_iterator, sibling_iterator> range_t;
171 typedef std::vector<range_t> range_vector_t;
174 void find_argument_lists(range_vector_t&,
bool only_comma_lists=
true)
const;
176 range_vector_t::iterator find_arg_superset(range_vector_t&, Iter st, Iter nd);
177 range_vector_t::iterator find_arg_superset(range_vector_t&,
sibling_iterator it);
180 unsigned int locate_single_object(Ex::iterator obj_to_find,
181 Ex::iterator st, Ex::iterator nd,
182 std::vector<unsigned int>& store);
183 bool locate_object_set(
const Ex& objs,
184 Ex::iterator st, Ex::iterator nd,
185 std::vector<unsigned int>& store);
209 template<
class BinaryPredicate>
243 template<
class BinaryPredicate>
246 BinaryPredicate
fun)
const
Object keeping track of time spent in nested execution blocks, and keeping track of out-of-band messa...
Definition ProgressMonitor.hh:17
The Stopwach class provides a simple interace to allow timing function calls etc.....
Definition Stopwatch.hh:107
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:52
void report_progress(const std::string &, int todo, int done, int count=2)
Definition Algorithm.cc:625
bool interrupted
Definition Algorithm.hh:67
static unsigned int number_of_direct_indices(iterator it)
Definition Algorithm.cc:1101
bool check_degree_consistency(iterator) const
Given an expression top node, check differential form degree consistency.
Definition Algorithm.cc:536
void propagate_zeroes(post_order_iterator &, const iterator &)
Given a node with zero multiplier, propagate this zero upwards in the tree.
Definition Algorithm.cc:322
static bool is_termlike(iterator)
Determines whether the indicated node is 'like a term in a sum'.
Definition Algorithm.cc:829
index_iterator end_index(iterator it) const
Definition Algorithm.cc:519
void node_zero(iterator)
Definition Algorithm.cc:455
bool rename_replacement_dummies(iterator, bool still_inside_algo=false)
Rename the dummies in the sub-tree starting with head at the given iterator.
Definition Algorithm.cc:658
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:244
unsigned int number_of_calls
Definition Algorithm.hh:93
bool check_consistency(iterator) const
Given an expression top node, check index consistency.
Definition Algorithm.cc:541
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:110
void node_one(iterator)
Definition Algorithm.cc:462
void set_progress_monitor(ProgressMonitor *)
Provide the algorithm with a ProgressMonitor object on which to register (nested) progress informatio...
Definition Algorithm.cc:68
bool check_index_consistency(iterator) const
Definition Algorithm.cc:527
Ex::result_t result_t
Definition Algorithm.hh:65
bool traverse_ldots
Definition Algorithm.hh:221
Stopwatch index_sw
Definition Algorithm.hh:106
void node_integer(iterator, int)
Definition Algorithm.cc:469
bool discard_command_node
Definition Algorithm.hh:96
Stopwatch report_progress_stopwatch
Definition Algorithm.hh:108
bool suppress_normal_output
Definition Algorithm.hh:95
void pushup_multiplier(iterator)
Determines whether the indicated node is 'like a factor in a product'.
Definition Algorithm.cc:415
index_iterator begin_index(iterator it) const
Definition Algorithm.cc:514
result_t apply_once(Ex::iterator &it)
Definition Algorithm.cc:196
result_t apply_deep(Ex::iterator &it)
Definition Algorithm.cc:213
unsigned int number_of_indices(iterator it)
Definition Algorithm.cc:490
unsigned int number_of_modifications
Definition Algorithm.hh:94
std::string get_index_set_name(iterator it) const
Definition Algorithm.cc:501
Stopwatch get_dummy_sw
Definition Algorithm.hh:107
virtual ~Algorithm()
Definition Algorithm.cc:64
std::set< Ex, tree_exact_less_obj > Ex_set_t
Definition Algorithm.hh:64
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:73
Definition Storage.hh:170
result_t
Keeping track of what algorithms have done to this expression.
Definition Storage.hh:200
ExManip(const Kernel &, Ex &)
Definition ExManip.cc:8
Ex::post_order_iterator post_order_iterator
Definition ExManip.hh:13
Ex::sibling_iterator sibling_iterator
Definition ExManip.hh:14
Ex::iterator iterator
Definition ExManip.hh:12
Class holding a collection of properties attached to expressions.
Definition Props.hh:242
An iterator which iterates over indices even if they are at lower levels, i.e.
Definition IndexIterator.hh:20
Elementary building block for a mathematical expression.
Definition Storage.hh:62
Functions to handle the exchange properties of two or more symbols in a product.
Definition Adjform.cc:83
void fun(int *&p)
Definition passing.cc:6