GiNaC 1.8.7
|
The kernel corresponding to the Eisenstein series . More...
#include <integration_kernel.h>
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... | |
ex & | let_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 basic & | operator= (const basic &other) |
basic assignment operator: the other object might be of a derived class. More... | |
virtual basic * | duplicate () 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 ex & | let_op (size_t i) |
Return modifiable operand/member at position i. More... | |
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. 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 basic & | hold () const |
Stop further evaluation. More... | |
unsigned | gethash () const |
const basic & | setflag (unsigned f) const |
Set some status_flags. More... | |
const basic & | clearflag (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 only the coefficient of 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... | |
The kernel corresponding to the Eisenstein series .
This class represents the differential one-form
Definition at line 504 of file integration_kernel.h.
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.
|
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().
|
overridevirtual |
Number of operands/members.
Reimplemented from GiNaC::basic.
Definition at line 1764 of file integration_kernel.cpp.
|
overridevirtual |
Return operand/member at position i.
Reimplemented from GiNaC::basic.
Definition at line 1769 of file integration_kernel.cpp.
|
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.
|
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.
Returns the Laurent series, starting possibly with the pole term.
Neglected terms are of 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.
|
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.
|
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.
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().
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().
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().
|
protected |
Definition at line 1902 of file integration_kernel.cpp.
|
protected |
Definition at line 546 of file integration_kernel.h.
Referenced by coefficient_a0(), coefficient_an(), do_print(), is_numeric(), let_op(), op(), and q_expansion_modular_form().
|
protected |
Definition at line 547 of file integration_kernel.h.
Referenced by coefficient_a0(), coefficient_an(), do_print(), is_numeric(), let_op(), op(), and q_expansion_modular_form().
|
protected |
Definition at line 548 of file integration_kernel.h.
Referenced by coefficient_a0(), coefficient_an(), do_print(), is_numeric(), let_op(), op(), q_expansion_modular_form(), and series().
|
protected |
Definition at line 549 of file integration_kernel.h.
Referenced by coefficient_a0(), coefficient_an(), do_print(), is_numeric(), let_op(), op(), and q_expansion_modular_form().
|
protected |
Definition at line 550 of file integration_kernel.h.
Referenced by do_print(), get_numerical_value(), is_numeric(), Laurent_series(), let_op(), and op().