Cadabra
Computer algebra system for field theory problems
Loading...
Searching...
No Matches
Grouping.hh
Go to the documentation of this file.
1
2#pragma once
3
4#include "Storage.hh"
5#include <functional>
6
7namespace cadabra {
8
14
15 typedef std::map<Ex::iterator, std::pair<multiplier_t, Ex::sibling_iterator>, Ex::iterator_base_less> equiv_map_t;
16 typedef std::function<bool(const Ex&, Ex::iterator, Ex::iterator)> equiv_fun_t;
17
18 equiv_map_t group_by_equivalence(const Ex&, Ex::sibling_iterator first, Ex::sibling_iterator last);
19 equiv_map_t group_by_equivalence(const Ex&, Ex::iterator comma_top);
20
21 equiv_map_t group_by_equivalence(const Ex&, Ex::sibling_iterator first, Ex::sibling_iterator last, equiv_fun_t&);
23
24}
Definition Storage.hh:170
std::map< Ex::iterator, std::pair< multiplier_t, Ex::sibling_iterator >, Ex::iterator_base_less > equiv_map_t
Given an ExNode iterator, find all expressions in its range which are equal up to a numerical multipl...
Definition Grouping.hh:15
Functions to handle the exchange properties of two or more symbols in a product.
Definition Adjform.cc:83
std::function< bool(const Ex &, Ex::iterator, Ex::iterator)> equiv_fun_t
Definition Grouping.hh:16
void set(rset_t::iterator &num, multiplier_t fac)
Definition Storage.cc:1179
equiv_map_t group_by_equivalence(const Ex &, Ex::sibling_iterator first, Ex::sibling_iterator last)
Definition Grouping.cc:6