![]() |
Cadabra
Computer algebra system for field theory problems
|
#include <meld.hh>
Classes | |
| struct | ProjectedTerm |
| struct | symmetrizer_t |
Public Member Functions | |
| meld (const Kernel &kernel, Ex &ex, bool project_as_sum=false) | |
| virtual | ~meld () |
| virtual bool | can_apply (iterator it) override |
| virtual result_t | apply (iterator &it) override |
| 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. | |
| void | pushup_multiplier (iterator) |
| Determines whether the indicated node is 'like a factor in a product'. | |
| 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) |
| 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). | |
Private Types | |
| using | tab_t = cadabra::TableauBase::tab_t |
Private Member Functions | |
| std::vector< tab_t > | collect_tableaux (Ex &ex) const |
| bool | collect_symmetries (const std::vector< tab_t > &tabs, std::vector< symmetrizer_t > &symmetrizers) const |
| bool | collect_symmetries_as_product (const std::vector< tab_t > &tabs, std::vector< symmetrizer_t > &symmetrizers) const |
| bool | collect_symmetries_as_sum (const std::vector< tab_t > &tabs, std::vector< symmetrizer_t > &symmetrizers) const |
| void | symmetrize (ProjectedTerm &adj, const std::vector< symmetrizer_t > &symmetries) |
| void | symmetrize_as_product (ProjectedTerm &adj, const std::vector< symmetrizer_t > &symmetrizers) |
| void | symmetrize_as_sum (ProjectedTerm &adj, const std::vector< symmetrizer_t > &symmetries) |
| void | symmetrize_idents (ProjectedTerm &sym) |
| bool | can_apply_diagonals (iterator it) |
| bool | apply_diagonals (iterator it) |
| bool | can_apply_traceless (iterator it) |
| bool | apply_traceless (iterator it) |
| bool | can_apply_cycle_traces (iterator it) |
| bool | apply_cycle_traces (iterator it) |
| bool | can_apply_tableaux (iterator it) |
| bool | apply_tableaux (iterator it) |
Private Attributes | |
| IndexMap | index_map |
| bool | project_as_sum |
Additional Inherited Members | |
| Public Types inherited from cadabra::Algorithm | |
| typedef std::set< Ex, tree_exact_less_obj > | Ex_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'. | |
| 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 |
| Protected Attributes inherited from cadabra::Algorithm | |
| bool | traverse_ldots |
| Protected Attributes inherited from cadabra::ExManip | |
| const Kernel & | kernel |
| Ex & | tr |
|
private |
|
virtual |
|
overridevirtual |
|
private |
|
private |
|
private |
|
private |
|
overridevirtual |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |