Cadabra
Computer algebra system for field theory problems
Toggle main menu visibility
Loading...
Searching...
No Matches
core
algorithms
integrate_by_parts.hh
Go to the documentation of this file.
1
2
3
#pragma once
4
5
#include "
Algorithm.hh
"
6
7
namespace
cadabra
{
8
12
13
14
class
integrate_by_parts
:
public
Algorithm
{
15
public
:
16
integrate_by_parts
(
const
Kernel
&,
Ex
&,
Ex
&);
17
18
virtual
bool
can_apply
(
iterator
)
override
;
19
virtual
result_t
apply
(
iterator
&)
override
;
20
21
private
:
22
// Integrate by parts on a single term in the integrand. First
23
// argument points to the integral, second to a term in the
24
// integrand.
25
result_t
handle_term
(
iterator
,
iterator
&);
26
27
// Are the given integral and derivative inverses of each-other?
28
bool
int_and_derivative_related
(
iterator
int_it,
iterator
der_it)
const
;
29
30
// Split one derivative from a multiple derivative.
31
void
split_off_single_derivative
(
iterator
int_it,
iterator
der_it);
32
33
// Wrap the indicated range of factor nodes inside the product node in
34
// the derivative.
35
Ex
wrap
(
iterator
,
sibling_iterator
,
sibling_iterator
)
const
;
36
37
// Determine whether the indicated derivative acts on the 'away_from'
38
// expression.
39
bool
derivative_acting_on_arg
(
iterator
der_it)
const
;
40
41
// Expression to move derivative away from.
42
Ex
away_from
;
43
};
44
45
}
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::sibling_iterator
Ex::sibling_iterator sibling_iterator
Definition
ExManip.hh:14
cadabra::ExManip::iterator
Ex::iterator iterator
Definition
ExManip.hh:12
cadabra::Kernel
Definition
Kernel.hh:15
cadabra::integrate_by_parts::handle_term
result_t handle_term(iterator, iterator &)
Definition
integrate_by_parts.cc:101
cadabra::integrate_by_parts::away_from
Ex away_from
Definition
integrate_by_parts.hh:42
cadabra::integrate_by_parts::can_apply
virtual bool can_apply(iterator) override
Definition
integrate_by_parts.cc:15
cadabra::integrate_by_parts::integrate_by_parts
integrate_by_parts(const Kernel &, Ex &, Ex &)
Definition
integrate_by_parts.cc:10
cadabra::integrate_by_parts::derivative_acting_on_arg
bool derivative_acting_on_arg(iterator der_it) const
Definition
integrate_by_parts.cc:64
cadabra::integrate_by_parts::apply
virtual result_t apply(iterator &) override
Definition
integrate_by_parts.cc:21
cadabra::integrate_by_parts::int_and_derivative_related
bool int_and_derivative_related(iterator int_it, iterator der_it) const
Definition
integrate_by_parts.cc:59
cadabra::integrate_by_parts::wrap
Ex wrap(iterator, sibling_iterator, sibling_iterator) const
Definition
integrate_by_parts.cc:250
cadabra::integrate_by_parts::split_off_single_derivative
void split_off_single_derivative(iterator int_it, iterator der_it)
Definition
integrate_by_parts.cc:80
cadabra
Functions to handle the exchange properties of two or more symbols in a product.
Definition
Adjform.cc:83
Generated by
1.17.0