GiNaC 1.8.4
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
GiNaC::Eisenstein_h_kernel Class Reference

The kernel corresponding to the Eisenstein series $ h_{k,N,r,s}(\tau) $. More...

#include <integration_kernel.h>

Inheritance diagram for GiNaC::Eisenstein_h_kernel:
GiNaC::integration_kernel GiNaC::basic GiNaC::refcounted

Public Member Functions

 Eisenstein_h_kernel (const ex &k, const ex &N, const ex &r, const ex &s, const ex &C_norm=numeric(1))
 
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 additional factor of C_norm/qbar. More...
 
size_t nops () const override
 Number of operands/members. More...
 
ex op (size_t i) const override
 Return operand/member at position i. More...
 
exlet_op (size_t i) override
 Return modifiable operand/member at position i. More...
 
bool is_numeric (void) const override
 This routine returns true, if the integration kernel can be evaluated numerically. More...
 
ex Laurent_series (const ex &x, int order) const override
 Returns the Laurent series, starting possibly with the pole term. More...
 
ex get_numerical_value (const ex &qbar, int N_trunc=0) const override
 Returns the value of the modular form. More...
 
ex coefficient_a0 (const numeric &k, const numeric &r, const numeric &s, const numeric &N) const
 The constant coefficient in the Fourier expansion. More...
 
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. More...
 
ex q_expansion_modular_form (const ex &q, int order) const
 
- 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(). More...
 
virtual bool has_trailing_zero (void) const
 This routine returns true, if the integration kernel has a trailing zero. More...
 
virtual bool is_numeric (void) const
 This routine returns true, if the integration kernel can be evaluated numerically. More...
 
virtual ex Laurent_series (const ex &x, int order) const
 Returns the Laurent series, starting possibly with the pole term. More...
 
virtual ex get_numerical_value (const ex &lambda, int N_trunc=0) const
 Evaluates the integrand at lambda. More...
 
size_t get_cache_size (void) const
 Returns the current size of the cache. More...
 
void set_cache_step (int cache_steps) const
 Sets the step size by which the cache is increased. More...
 
ex get_series_coeff (int i) const
 Wrapper around series_coeff(i), converts cl_N to numeric. More...
 
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. More...
 
- Public Member Functions inherited from GiNaC::basic
virtual ~basic ()
 basic destructor, virtual because class ex will delete objects of derived classes via a basic*. More...
 
 basic (const basic &other)
 
const basicoperator= (const basic &other)
 basic assignment operator: the other object might be of a derived class. More...
 
virtual basicduplicate () const
 Create a clone of this object on the heap. More...
 
virtual ex eval () const
 Perform automatic non-interruptive term rewriting rules. More...
 
virtual ex evalf () const
 Evaluate object numerically. More...
 
virtual ex evalm () const
 Evaluate sums, products and integer powers of matrices. More...
 
virtual ex eval_integ () const
 Evaluate integrals, if result is known. More...
 
virtual ex eval_indexed (const basic &i) const
 Perform automatic symbolic evaluations on indexed expression that contains this object as the base expression. More...
 
virtual void print (const print_context &c, unsigned level=0) const
 Output to stream. More...
 
virtual void dbgprint () const
 Little wrapper around print to be called within a debugger. More...
 
virtual void dbgprinttree () const
 Little wrapper around printtree to be called within a debugger. More...
 
virtual unsigned precedence () const
 Return relative operator precedence (for parenthezing output). More...
 
virtual bool info (unsigned inf) const
 Information about the object. More...
 
virtual size_t nops () const
 Number of operands/members. More...
 
virtual ex op (size_t i) const
 Return operand/member at position i. More...
 
virtual ex operator[] (const ex &index) const
 
virtual ex operator[] (size_t i) const
 
virtual exlet_op (size_t i)
 Return modifiable operand/member at position i. More...
 
virtual exoperator[] (const ex &index)
 
virtual exoperator[] (size_t i)
 
virtual bool has (const ex &other, unsigned options=0) const
 Test for occurrence of a pattern. More...
 
virtual bool match (const ex &pattern, exmap &repls) const
 Check whether the expression matches a given pattern. More...
 
virtual ex subs (const exmap &m, unsigned options=0) const
 Substitute a set of objects by arbitrary expressions. More...
 
virtual ex map (map_function &f) const
 Construct new expression by applying the specified function to all sub-expressions (one level only, not recursively). More...
 
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. More...
 
virtual int degree (const ex &s) const
 Return degree of highest power in object s. More...
 
virtual int ldegree (const ex &s) const
 Return degree of lowest power in object s. More...
 
virtual ex coeff (const ex &s, int n=1) const
 Return coefficient of degree n in object s. More...
 
virtual ex expand (unsigned options=0) const
 Expand expression, i.e. More...
 
virtual ex collect (const ex &s, bool distributed=false) const
 Sort expanded expression in terms of powers of some object(s). More...
 
virtual ex series (const relational &r, int order, unsigned options=0) const
 Default implementation of ex::series(). More...
 
virtual ex normal (exmap &repl, exmap &rev_lookup, lst &modifier) const
 Default implementation of ex::normal(). More...
 
virtual ex to_rational (exmap &repl) const
 Default implementation of ex::to_rational(). More...
 
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. More...
 
virtual numeric max_coefficient () const
 Implementation ex::max_coefficient(). More...
 
virtual exvector get_free_indices () const
 Return a vector containing the free indices of an expression. More...
 
virtual ex add_indexed (const ex &self, const ex &other) const
 Add two indexed expressions. More...
 
virtual ex scalar_mul_indexed (const ex &self, const numeric &other) const
 Multiply an indexed expression with a scalar. More...
 
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. More...
 
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. More...
 
void print_dispatch (const registered_class_info &ri, const print_context &c, unsigned level) const
 Like print(), but dispatch to the specified class. More...
 
virtual void archive (archive_node &n) const
 Save (serialize) the object into archive node. More...
 
virtual void read_archive (const archive_node &n, lst &syms)
 Load (deserialize) the object from an archive node. More...
 
ex subs_one_level (const exmap &m, unsigned options) const
 Helper function for subs(). More...
 
ex diff (const symbol &s, unsigned nth=1) const
 Default interface of nth derivative ex::diff(s, n). More...
 
int compare (const basic &other) const
 Compare objects syntactically to establish canonical ordering. More...
 
bool is_equal (const basic &other) const
 Test for syntactic equality. More...
 
const basichold () const
 Stop further evaluation. More...
 
unsigned gethash () const
 
const basicsetflag (unsigned f) const
 Set some status_flags. More...
 
const basicclearflag (unsigned f) const
 Clear some status_flags. More...
 
- 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). More...
 
void do_print (const print_context &c, unsigned level) const
 
- Protected Member Functions inherited from GiNaC::integration_kernel
virtual bool uses_Laurent_series () const
 Returns true, if the coefficients are computed from the Laurent series (in which case the method Laurent_series needs to be implemented). More...
 
virtual cln::cl_N series_coeff_impl (int i) const
 For $ \omega = d\lambda $ only the coefficient of $ \lambda^0 $ is non-zero. More...
 
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. More...
 
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. More...
 
virtual ex derivative (const symbol &s) const
 Default implementation of ex::diff(). More...
 
virtual int compare_same_type (const basic &other) const
 Returns order relation between two objects of same type. More...
 
virtual bool is_equal_same_type (const basic &other) const
 Returns true if two objects of same type are equal. More...
 
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. More...
 
void ensure_if_modifiable () const
 Ensure the object may be modified without hurting others, throws if this is not the case. More...
 
void do_print (const print_context &c, unsigned level) const
 Default output to stream. More...
 
void do_print_tree (const print_tree &c, unsigned level) const
 Tree output to stream. More...
 
void do_print_python_repr (const print_python_repr &c, unsigned level) const
 Python parsable output to stream. More...
 

Protected Attributes

ex k
 
ex N
 
ex r
 
ex s
 
ex C_norm
 
- 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 More...
 
unsigned hashvalue
 hash value More...
 

Detailed Description

The kernel corresponding to the Eisenstein series $ h_{k,N,r,s}(\tau) $.

This class represents the differential one-form

\[
  \omega^{\mathrm{Eisenstein,h}}_{k,N,r,s} = C_k h_{k,N,r,s}(\tau) \frac{d\bar{q}_N}{\bar{q}_N}
\]

Definition at line 504 of file integration_kernel.h.

Constructor & Destructor Documentation

◆ Eisenstein_h_kernel()

GiNaC::Eisenstein_h_kernel::Eisenstein_h_kernel ( const ex k,
const ex N,
const ex r,
const ex s,
const ex C_norm = numeric(1) 
)

Definition at line 1711 of file integration_kernel.cpp.

Member Function Documentation

◆ series()

ex GiNaC::Eisenstein_h_kernel::series ( const relational r,
int  order,
unsigned  options = 0 
) const
overridevirtual

The series method for this class returns the qbar-expansion of the modular form, without an additional factor of C_norm/qbar.

This allows for easy use in the class modular_form_kernel.

Reimplemented from GiNaC::integration_kernel.

Definition at line 1751 of file integration_kernel.cpp.

References GiNaC::ex::lhs(), order, q_expansion_modular_form(), qbar, r, GiNaC::ex::rhs(), and GiNaC::ex::series().

◆ nops()

size_t GiNaC::Eisenstein_h_kernel::nops ( ) const
overridevirtual

Number of operands/members.

Reimplemented from GiNaC::basic.

Definition at line 1764 of file integration_kernel.cpp.

◆ op()

ex GiNaC::Eisenstein_h_kernel::op ( size_t  i) const
overridevirtual

Return operand/member at position i.

Reimplemented from GiNaC::basic.

Definition at line 1769 of file integration_kernel.cpp.

References C_norm, k, N, r, and s.

◆ let_op()

ex & GiNaC::Eisenstein_h_kernel::let_op ( size_t  i)
overridevirtual

Return modifiable operand/member at position i.

Reimplemented from GiNaC::basic.

Definition at line 1787 of file integration_kernel.cpp.

References C_norm, GiNaC::basic::ensure_if_modifiable(), k, N, r, and s.

◆ is_numeric()

bool GiNaC::Eisenstein_h_kernel::is_numeric ( void  ) const
overridevirtual

This routine returns true, if the integration kernel can be evaluated numerically.

Reimplemented from GiNaC::integration_kernel.

Definition at line 1807 of file integration_kernel.cpp.

References C_norm, GiNaC::ex::evalf(), GiNaC::ex::info(), GiNaC::info_flags::integer, k, N, GiNaC::info_flags::nonnegint, GiNaC::info_flags::numeric, GiNaC::info_flags::posint, r, and s.

◆ Laurent_series()

ex GiNaC::Eisenstein_h_kernel::Laurent_series ( const ex x,
int  order 
) const
overridevirtual

Returns the Laurent series, starting possibly with the pole term.

Neglected terms are of order $ O(x^order) $.

Reimplemented from GiNaC::integration_kernel.

Definition at line 1812 of file integration_kernel.cpp.

References C_norm, order, q_expansion_modular_form(), GiNaC::ex::series(), and x.

◆ get_numerical_value()

ex GiNaC::Eisenstein_h_kernel::get_numerical_value ( const ex qbar,
int  N_trunc = 0 
) const
overridevirtual

Returns the value of the modular form.

Reimplemented from GiNaC::integration_kernel.

Definition at line 1825 of file integration_kernel.cpp.

References C_norm, GiNaC::integration_kernel::get_numerical_value_impl(), and qbar.

◆ uses_Laurent_series()

bool GiNaC::Eisenstein_h_kernel::uses_Laurent_series ( ) const
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 1832 of file integration_kernel.cpp.

◆ coefficient_a0()

ex GiNaC::Eisenstein_h_kernel::coefficient_a0 ( const numeric k,
const numeric r,
const numeric s,
const numeric N 
) const

The constant coefficient in the Fourier expansion.

Definition at line 1842 of file integration_kernel.cpp.

References GiNaC::Bernoulli_polynomial(), GiNaC::cos(), GiNaC::I, GiNaC::irem(), k, GiNaC::mod(), N, GiNaC::Pi, r, s, and GiNaC::sin().

Referenced by q_expansion_modular_form().

◆ coefficient_an()

ex GiNaC::Eisenstein_h_kernel::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.

Definition at line 1865 of file integration_kernel.cpp.

References GiNaC::exp(), GiNaC::I, GiNaC::irem(), k, m, GiNaC::mod(), n, N, GiNaC::Pi, GiNaC::pow(), r, and s.

Referenced by q_expansion_modular_form().

◆ q_expansion_modular_form()

ex GiNaC::Eisenstein_h_kernel::q_expansion_modular_form ( const ex q,
int  order 
) const

Definition at line 1881 of file integration_kernel.cpp.

References coefficient_a0(), coefficient_an(), k, N, GiNaC::pow(), r, s, and GiNaC::ex::series().

Referenced by Laurent_series(), and series().

◆ do_print()

void GiNaC::Eisenstein_h_kernel::do_print ( const print_context c,
unsigned  level 
) const
protected

Definition at line 1902 of file integration_kernel.cpp.

References c, C_norm, k, N, GiNaC::ex::print(), r, and s.

Member Data Documentation

◆ k

ex GiNaC::Eisenstein_h_kernel::k
protected

◆ N

ex GiNaC::Eisenstein_h_kernel::N
protected

◆ r

ex GiNaC::Eisenstein_h_kernel::r
protected

◆ s

ex GiNaC::Eisenstein_h_kernel::s
protected

◆ C_norm

ex GiNaC::Eisenstein_h_kernel::C_norm
protected

The documentation for this class was generated from the following files:

This page is part of the GiNaC developer's reference. It was generated automatically by doxygen. For an introduction, see the tutorial.