|
GiNaC 1.8.9
|
A user-defined integration kernel. More...
#include <integration_kernel.h>
Public Member Functions | |
| user_defined_kernel (const ex &f, const ex &x) | |
| size_t | nops () const override |
| Number of operands/members. | |
| ex | op (size_t i) const override |
| Return operand/member at position i. | |
| ex & | let_op (size_t i) override |
| Return modifiable operand/member at position i. | |
| bool | is_numeric (void) const override |
| This routine returns true, if the integration kernel can be evaluated numerically. | |
| ex | Laurent_series (const ex &x, int order) const override |
| Returns the Laurent series, starting possibly with the pole term. | |
Public Member Functions inherited from GiNaC::integration_kernel | |
| ex | series (const relational &r, int order, unsigned options=0) const override |
| Default implementation of ex::series(). | |
| virtual bool | has_trailing_zero (void) const |
| This routine returns true, if the integration kernel has a trailing zero. | |
| virtual ex | get_numerical_value (const ex &lambda, int N_trunc=0) const |
| Evaluates the integrand at lambda. | |
| size_t | get_cache_size (void) const |
| Returns the current size of the cache. | |
| void | set_cache_step (int cache_steps) const |
| Sets the step size by which the cache is increased. | |
| ex | get_series_coeff (int i) const |
| Wrapper around series_coeff(i), converts cl_N to numeric. | |
| cln::cl_N | series_coeff (int i) const |
| Subclasses have either to implement series_coeff_impl or the two methods Laurent_series and uses_Laurent_series. | |
Public Member Functions inherited from GiNaC::basic | |
| virtual | ~basic () |
| basic destructor, virtual because class ex will delete objects of derived classes via a basic*. | |
| basic (const basic &other) | |
| const basic & | operator= (const basic &other) |
| basic assignment operator: the other object might be of a derived class. | |
| virtual basic * | duplicate () const |
| Create a clone of this object on the heap. | |
| virtual ex | eval () const |
| Perform automatic non-interruptive term rewriting rules. | |
| virtual ex | evalf () const |
| Evaluate object numerically. | |
| virtual ex | evalm () const |
| Evaluate sums, products and integer powers of matrices. | |
| virtual ex | eval_integ () const |
| Evaluate integrals, if result is known. | |
| virtual ex | eval_indexed (const basic &i) const |
| Perform automatic symbolic evaluations on indexed expression that contains this object as the base expression. | |
| virtual void | print (const print_context &c, unsigned level=0) const |
| Output to stream. | |
| virtual void | dbgprint () const |
| Little wrapper around print to be called within a debugger. | |
| virtual void | dbgprinttree () const |
| Little wrapper around printtree to be called within a debugger. | |
| virtual unsigned | precedence () const |
| Return relative operator precedence (for parenthezing output). | |
| virtual bool | info (unsigned inf) const |
| Information about the object. | |
| virtual ex | operator[] (const ex &index) const |
| virtual ex | operator[] (size_t i) const |
| virtual ex & | operator[] (const ex &index) |
| virtual ex & | operator[] (size_t i) |
| virtual bool | has (const ex &other, unsigned options=0) const |
| Test for occurrence of a pattern. | |
| virtual bool | match (const ex &pattern, exmap &repls) const |
| Check whether the expression matches a given pattern. | |
| virtual ex | subs (const exmap &m, unsigned options=0) const |
| Substitute a set of objects by arbitrary expressions. | |
| virtual ex | map (map_function &f) const |
| Construct new expression by applying the specified function to all sub-expressions (one level only, not recursively). | |
| virtual void | accept (GiNaC::visitor &v) const |
| virtual bool | is_polynomial (const ex &var) const |
| Check whether this is a polynomial in the given variables. | |
| virtual int | degree (const ex &s) const |
| Return degree of highest power in object s. | |
| virtual int | ldegree (const ex &s) const |
| Return degree of lowest power in object s. | |
| virtual ex | coeff (const ex &s, int n=1) const |
| Return coefficient of degree n in object s. | |
| virtual ex | expand (unsigned options=0) const |
| Expand expression, i.e. | |
| virtual ex | collect (const ex &s, bool distributed=false) const |
| Sort expanded expression in terms of powers of some object(s). | |
| virtual ex | normal (exmap &repl, exmap &rev_lookup, lst &modifier) const |
| Default implementation of ex::normal(). | |
| virtual ex | to_rational (exmap &repl) const |
| Default implementation of ex::to_rational(). | |
| virtual ex | to_polynomial (exmap &repl) const |
| virtual numeric | integer_content () const |
| virtual ex | smod (const numeric &xi) const |
| Apply symmetric modular homomorphism to an expanded multivariate polynomial. | |
| virtual numeric | max_coefficient () const |
| Implementation ex::max_coefficient(). | |
| virtual exvector | get_free_indices () const |
| Return a vector containing the free indices of an expression. | |
| virtual ex | add_indexed (const ex &self, const ex &other) const |
| Add two indexed expressions. | |
| virtual ex | scalar_mul_indexed (const ex &self, const numeric &other) const |
| Multiply an indexed expression with a scalar. | |
| virtual bool | contract_with (exvector::iterator self, exvector::iterator other, exvector &v) const |
| Try to contract two indexed expressions that appear in the same product. | |
| virtual unsigned | return_type () const |
| virtual return_type_t | return_type_tinfo () const |
| virtual ex | conjugate () const |
| virtual ex | real_part () const |
| virtual ex | imag_part () const |
| template<class T > | |
| void | print_dispatch (const print_context &c, unsigned level) const |
| Like print(), but dispatch to the specified class. | |
| void | print_dispatch (const registered_class_info &ri, const print_context &c, unsigned level) const |
| Like print(), but dispatch to the specified class. | |
| virtual void | archive (archive_node &n) const |
| Save (serialize) the object into archive node. | |
| virtual void | read_archive (const archive_node &n, lst &syms) |
| Load (deserialize) the object from an archive node. | |
| ex | subs_one_level (const exmap &m, unsigned options) const |
| Helper function for subs(). | |
| ex | diff (const symbol &s, unsigned nth=1) const |
| Default interface of nth derivative ex::diff(s, n). | |
| int | compare (const basic &other) const |
| Compare objects syntactically to establish canonical ordering. | |
| bool | is_equal (const basic &other) const |
| Test for syntactic equality. | |
| const basic & | hold () const |
| Stop further evaluation. | |
| unsigned | gethash () const |
| const basic & | setflag (unsigned f) const |
| Set some status_flags. | |
| const basic & | clearflag (unsigned f) const |
| Clear some status_flags. | |
Public Member Functions inherited from GiNaC::refcounted | |
| refcounted () noexcept | |
| unsigned int | add_reference () noexcept |
| unsigned int | remove_reference () noexcept |
| unsigned int | get_refcount () const noexcept |
| void | set_refcount (unsigned int r) noexcept |
Protected Member Functions | |
| bool | uses_Laurent_series () const override |
| Returns true, if the coefficients are computed from the Laurent series (in which case the method Laurent_series needs to be implemented). | |
| void | do_print (const print_context &c, unsigned level) const |
Protected Member Functions inherited from GiNaC::integration_kernel | |
| virtual cln::cl_N | series_coeff_impl (int i) const |
| For | |
| ex | get_numerical_value_impl (const ex &lambda, const ex &pre, int shift, int N_trunc) const |
| The actual implementation for computing a numerical value for the integrand. | |
| void | do_print (const print_context &c, unsigned level) const |
Protected Member Functions inherited from GiNaC::basic | |
| basic () | |
| virtual ex | eval_ncmul (const exvector &v) const |
| virtual bool | match_same_type (const basic &other) const |
| Returns true if the attributes of two objects are similar enough for a match. | |
| virtual ex | derivative (const symbol &s) const |
| Default implementation of ex::diff(). | |
| virtual int | compare_same_type (const basic &other) const |
| Returns order relation between two objects of same type. | |
| virtual bool | is_equal_same_type (const basic &other) const |
| Returns true if two objects of same type are equal. | |
| virtual unsigned | calchash () const |
| Compute the hash value of an object and if it makes sense to store it in the objects status_flags, do so. | |
| void | ensure_if_modifiable () const |
| Ensure the object may be modified without hurting others, throws if this is not the case. | |
| void | do_print (const print_context &c, unsigned level) const |
| Default output to stream. | |
| void | do_print_tree (const print_tree &c, unsigned level) const |
| Tree output to stream. | |
| void | do_print_python_repr (const print_python_repr &c, unsigned level) const |
| Python parsable output to stream. | |
Protected Attributes | |
| ex | f |
| ex | x |
Protected Attributes inherited from GiNaC::integration_kernel | |
| int | cache_step_size |
| std::vector< cln::cl_N > | series_vec |
Protected Attributes inherited from GiNaC::basic | |
| unsigned | flags |
| of type status_flags | |
| unsigned | hashvalue |
| hash value | |
A user-defined integration kernel.
The input is an expression 




Definition at line 624 of file integration_kernel.h.
Definition at line 2070 of file integration_kernel.cpp.
|
overridevirtual |
Number of operands/members.
Reimplemented from GiNaC::basic.
Definition at line 2087 of file integration_kernel.cpp.
|
overridevirtual |
Return operand/member at position i.
Reimplemented from GiNaC::basic.
Definition at line 2092 of file integration_kernel.cpp.
|
overridevirtual |
Return modifiable operand/member at position i.
Reimplemented from GiNaC::basic.
Definition at line 2104 of file integration_kernel.cpp.
References GiNaC::basic::ensure_if_modifiable(), f, and x.
|
overridevirtual |
This routine returns true, if the integration kernel can be evaluated numerically.
Reimplemented from GiNaC::integration_kernel.
Definition at line 2118 of file integration_kernel.cpp.
References GiNaC::ex::evalf(), f, GiNaC::ex::info(), GiNaC::info_flags::numeric, GiNaC::ex::subs(), and x.
Returns the Laurent series, starting possibly with the pole term.
Neglected terms are of order 
Reimplemented from GiNaC::integration_kernel.
Definition at line 2124 of file integration_kernel.cpp.
References f, order, GiNaC::ex::series(), GiNaC::ex::subs(), and x.
|
overrideprotectedvirtual |
Returns true, if the coefficients are computed from the Laurent series (in which case the method Laurent_series needs to be implemented).
Returns false if this is not the case (and the class has an implementation of series_coeff_impl).
Reimplemented from GiNaC::integration_kernel.
Definition at line 2131 of file integration_kernel.cpp.
|
protected |
Definition at line 2136 of file integration_kernel.cpp.
References c, f, GiNaC::ex::print(), and x.
|
protected |
Definition at line 660 of file integration_kernel.h.
Referenced by do_print(), is_numeric(), Laurent_series(), let_op(), and op().
|
protected |
Definition at line 661 of file integration_kernel.h.
Referenced by do_print(), is_numeric(), Laurent_series(), let_op(), and op().