23 #ifndef GINAC_INTEGRATION_KERNEL_H 24 #define GINAC_INTEGRATION_KERNEL_H 30 #include <cln/complex.h> 169 size_t nops()
const override;
170 ex op(
size_t i)
const override;
220 size_t nops()
const override;
221 ex op(
size_t i)
const override;
275 size_t nops()
const override;
276 ex op(
size_t i)
const override;
331 size_t nops()
const override;
332 ex op(
size_t i)
const override;
387 size_t nops()
const override;
388 ex op(
size_t i)
const override;
453 size_t nops()
const override;
454 ex op(
size_t i)
const override;
515 size_t nops()
const override;
516 ex op(
size_t i)
const override;
578 size_t nops()
const override;
579 ex op(
size_t i)
const override;
633 size_t nops()
const override;
634 ex op(
size_t i)
const override;
668 #endif // ndef GINAC_INTEGRATION_KERNEL_H ex op(size_t i) const override
Return operand/member at position i.
ex op(size_t i) const override
Return operand/member at position i.
Eisenstein_h_kernel(const ex &k, const ex &N, const ex &r, const ex &s, const ex &C_norm=numeric(1))
void do_print(const print_context &c, unsigned level) const
void do_print(const print_context &c, unsigned level) const
bool is_numeric(void) const override
This routine returns true, if the integration kernel can be evaluated numerically.
ex q_expansion_modular_form(const ex &q, int order) const
ex Laurent_series(const ex &x, int order) const override
Returns the Laurent series, starting possibly with the pole term.
ex op(size_t i) const override
Return operand/member at position i.
ex series(const relational &r, int order, unsigned options=0) const override
Default implementation of ex::series().
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.
ex Laurent_series(const ex &x, int order) const override
Returns the Laurent series, starting possibly with the pole term.
cln::cl_N series_coeff_impl(int i) const override
For only the coefficient of is non-zero.
The integration kernel for multiple polylogarithms.
ex & let_op(size_t i) override
Return modifiable operand/member at position i.
ex & let_op(size_t i) override
Return modifiable operand/member at position i.
void do_print(const print_context &c, unsigned level) const
This class holds a relation consisting of two expressions and a logical relation between them...
ex get_numerical_value(const ex &z, int N_trunc=0) const override
Returns the value of the g^(n-1)(z-z_j,K*tau).
The kernel corresponding to the Eisenstein series .
bool is_numeric(void) const override
This routine returns true, if the integration kernel can be evaluated numerically.
size_t nops() const override
Number of operands/members.
Archiving of GiNaC expressions.
void do_print(const print_context &c, unsigned level) const
ex get_series_coeff(int i) const
Wrapper around series_coeff(i), converts cl_N to numeric.
The kernel corresponding to integrating the Kronecker coefficient function in (or equivalently in )...
This class is the ABC (abstract base class) of GiNaC's class hierarchy.
ex get_numerical_value(const ex &qbar, int N_trunc=0) const override
Returns the value of Ebar_{n,m}(x,y,qbar)
void do_print(const print_context &c, unsigned level) const
ex & let_op(size_t i) override
Return modifiable operand/member at position i.
ex & let_op(size_t i) override
Return modifiable operand/member at position i.
The base class for integration kernels for iterated integrals.
ex op(size_t i) const override
Return operand/member at position i.
Kronecker_dz_kernel(const ex &n, const ex &z_j, const ex &tau, const ex &K=numeric(1), const ex &C_norm=numeric(1))
cln::cl_N series_coeff(int i) const
Subclasses have either to implement series_coeff_impl or the two methods Laurent_series and uses_Laur...
size_t nops() const override
Number of operands/members.
ex & let_op(size_t i) override
Return modifiable operand/member at position i.
size_t nops() const override
Number of operands/members.
virtual bool is_numeric(void) const
This routine returns true, if the integration kernel can be evaluated numerically.
size_t nops() const override
Number of operands/members.
bool is_numeric(void) const override
This routine returns true, if the integration kernel can be evaluated numerically.
This class is a wrapper around CLN-numbers within the GiNaC class hierarchy.
ELi_kernel(const ex &n, const ex &m, const ex &x, const ex &y)
multiple_polylog_kernel(const ex &z)
std::vector< cln::cl_N > series_vec
bool uses_Laurent_series() const override
Returns true, if the coefficients are computed from the Laurent series (in which case the method Laur...
void do_print(const print_context &c, unsigned level) const
ex op(size_t i) const override
Return operand/member at position i.
cln::cl_N series_coeff_impl(int i) const override
For only the coefficient of is non-zero.
void do_print(const print_context &c, unsigned level) const
ex series(const relational &r, int order, unsigned options=0) const override
The series method for this class returns the qbar-expansion of the modular form, without an additiona...
size_t nops() const override
Number of operands/members.
bool is_numeric(void) const override
This routine returns true, if the integration kernel can be evaluated numerically.
numeric dirichlet_character(const numeric &n, const numeric &a, const numeric &N)
Defines a Dirichlet character through the Kronecker symbol.
ex coefficient_an(const numeric &n, const numeric &k, const numeric &r, const numeric &s, const numeric &N) const
The higher coefficients in the Fourier expansion.
cln::cl_N series_coeff_impl(int i) const override
For only the coefficient of is non-zero.
bool is_numeric(void) const override
This routine returns true, if the integration kernel can be evaluated numerically.
virtual ex get_numerical_value(const ex &lambda, int N_trunc=0) const
Evaluates the integrand at lambda.
user_defined_kernel(const ex &f, const ex &x)
size_t nops() const override
Number of operands/members.
size_t nops() const override
Number of operands/members.
bool is_discriminant_of_quadratic_number_field(const numeric &n)
Returns true if the integer n is either one or the discriminant of a quadratic number field...
ex & let_op(size_t i) override
Return modifiable operand/member at position i.
ex coefficient_a0(const numeric &k, const numeric &r, const numeric &s, const numeric &N) const
The constant coefficient in the Fourier expansion.
The basic integration kernel with a logarithmic singularity at the origin.
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.
virtual ex Laurent_series(const ex &x, int order) const
Returns the Laurent series, starting possibly with the pole term.
void do_print(const print_context &c, unsigned level) const
The kernel corresponding to integrating the Kronecker coefficient function in .
The kernel corresponding to the Eisenstein series .
virtual cln::cl_N series_coeff_impl(int i) const
For only the coefficient of is non-zero.
ex Bernoulli_polynomial(const numeric &k, const ex &x)
The Bernoulli polynomials.
Eisenstein_kernel(const ex &k, const ex &N, const ex &a, const ex &b, const ex &K, const ex &C_norm=numeric(1))
Base class for print_contexts.
Interface to GiNaC's ABC.
numeric primitive_dirichlet_character(const numeric &n, const numeric &a)
Defines a primitive Dirichlet character through the Kronecker symbol.
numeric kronecker_symbol(const numeric &a, const numeric &n)
Returns the Kronecker symbol a: integer n: integer.
void set_cache_step(int cache_steps) const
Sets the step size by which the cache is increased.
ex get_numerical_value(const ex &qbar, int N_trunc=0) const override
Returns the value of the g^(n)(z,K*tau), where tau is given by qbar.
ex op(size_t i) const override
Return operand/member at position i.
ex op(size_t i) const override
Return operand/member at position i.
Lightweight wrapper for GiNaC's symbolic objects.
cln::cl_N series_coeff_impl(int i) const override
For only the coefficient of is non-zero.
size_t get_cache_size(void) const
Returns the current size of the cache.
numeric generalised_Bernoulli_number(const numeric &k, const numeric &b)
The generalised Bernoulli number.
bool uses_Laurent_series() const override
Returns true, if the coefficients are computed from the Laurent series (in which case the method Laur...
size_t nops() const override
Number of operands/members.
#define GINAC_DECLARE_REGISTERED_CLASS(classname, supername)
Macro for inclusion in the declaration of each registered class.
cln::cl_N series_coeff_impl(int i) const override
For only the coefficient of is non-zero.
ex get_numerical_value(const ex &qbar, int N_trunc=0) const override
Returns the value of the modular form.
Makes the interface to the underlying bignum package available.
void do_print(const print_context &c, unsigned level) const
bool is_numeric(void) const override
This routine returns true, if the integration kernel can be evaluated numerically.
bool uses_Laurent_series() const override
Returns true, if the coefficients are computed from the Laurent series (in which case the method Laur...
GINAC_DECLARE_UNARCHIVER(add)
void do_print(const print_context &c, unsigned level) const
ex ifactor(const numeric &n)
Returns the decomposition of the positive integer n into prime numbers in the form lst( lst(p1...
virtual bool uses_Laurent_series() const
Returns true, if the coefficients are computed from the Laurent series (in which case the method Laur...
ex get_numerical_value(const ex &qbar, int N_trunc=0) const override
Returns the value of ELi_{n,m}(x,y,qbar)
ex series(const relational &r, int order, unsigned options=0) const override
The series method for this class returns the qbar-expansion of the modular form, without an additiona...
cln::cl_N series_coeff_impl(int i) const override
For only the coefficient of is non-zero.
ex Laurent_series(const ex &x, int order) const override
Returns the Laurent series, starting possibly with the pole term.
Kronecker_dtau_kernel(const ex &n, const ex &z, const ex &K=numeric(1), const ex &C_norm=numeric(1))
ex & let_op(size_t i) override
Return modifiable operand/member at position i.
A user-defined integration kernel.
ex get_numerical_value(const ex &qbar, int N_trunc=0) const override
Returns the value of the modular form.
ex q_expansion_modular_form(const ex &q, int order) const
ex op(size_t i) const override
Return operand/member at position i.
bool is_numeric(void) const override
This routine returns true, if the integration kernel can be evaluated numerically.
Ebar_kernel(const ex &n, const ex &m, const ex &x, const ex &y)
virtual bool has_trailing_zero(void) const
This routine returns true, if the integration kernel has a trailing zero.