Cadabra
Computer algebra system for field theory problems
Toggle main menu visibility
Loading...
Searching...
No Matches
core
algorithms
factor_in.hh
Go to the documentation of this file.
1
2
#pragma once
3
4
#include "
Algorithm.hh
"
5
6
namespace
cadabra
{
7
9
10
class
factor_in
:
public
Algorithm
{
11
public
:
12
factor_in
(
const
Kernel
&,
Ex
&,
Ex
&);
13
14
virtual
bool
can_apply
(
iterator
)
override
;
15
virtual
result_t
apply
(
iterator
&)
override
;
16
17
protected
:
18
Ex
&
factors
;
19
std::set<Ex, tree_exact_less_for_indexmap_obj>
factnodes
;
// objects to be taken in brackets;
20
// FIXME: use patterns
21
bool
compare_restricted
(
iterator
one
,
iterator
two)
const
;
22
bool
compare_prod_nonprod
(
iterator
prod,
iterator
nonprod)
const
;
23
24
// Calculate the hash value excluding factors given in the argument list
25
hashval_t
calc_restricted_hash
(
iterator
it)
const
;
26
void
fill_hash_map
(
iterator
);
27
28
typedef
std::multimap<hashval_t, Ex::sibling_iterator>
term_hash_t
;
29
typedef
term_hash_t::iterator
term_hash_iterator_t
;
30
31
term_hash_t
term_hash
;
32
};
33
34
}
Algorithm.hh
cadabra::Algorithm::Algorithm
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
cadabra::Algorithm::result_t
Ex::result_t result_t
Definition
Algorithm.hh:65
cadabra::Ex
Definition
Storage.hh:170
cadabra::ExManip::iterator
Ex::iterator iterator
Definition
ExManip.hh:12
cadabra::Kernel
Definition
Kernel.hh:15
cadabra::factor_in::term_hash_t
std::multimap< hashval_t, Ex::sibling_iterator > term_hash_t
Definition
factor_in.hh:28
cadabra::factor_in::term_hash_iterator_t
term_hash_t::iterator term_hash_iterator_t
Definition
factor_in.hh:29
cadabra::factor_in::factor_in
factor_in(const Kernel &, Ex &, Ex &)
Definition
factor_in.cc:12
cadabra::factor_in::can_apply
virtual bool can_apply(iterator) override
Definition
factor_in.cc:17
cadabra::factor_in::factnodes
std::set< Ex, tree_exact_less_for_indexmap_obj > factnodes
Definition
factor_in.hh:19
cadabra::factor_in::term_hash
term_hash_t term_hash
Definition
factor_in.hh:31
cadabra::factor_in::compare_prod_nonprod
bool compare_prod_nonprod(iterator prod, iterator nonprod) const
Definition
factor_in.cc:70
cadabra::factor_in::apply
virtual result_t apply(iterator &) override
Definition
factor_in.cc:123
cadabra::factor_in::fill_hash_map
void fill_hash_map(iterator)
Definition
factor_in.cc:56
cadabra::factor_in::compare_restricted
bool compare_restricted(iterator one, iterator two) const
Definition
factor_in.cc:90
cadabra::factor_in::calc_restricted_hash
hashval_t calc_restricted_hash(iterator it) const
Definition
factor_in.cc:31
cadabra::factor_in::factors
Ex & factors
Definition
factor_in.hh:18
cadabra
Functions to handle the exchange properties of two or more symbols in a product.
Definition
Adjform.cc:83
cadabra::hashval_t
uintptr_t hashval_t
Definition
Storage.hh:47
cadabra::one
void one(rset_t::iterator &num)
Definition
Storage.cc:1201
Generated by
1.17.0