Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

Euler_Zagier_sum Class Reference

A Euler-Zagier sum is a special case of a Zsum. More...

#include <Euler_Zagier_sum.h>

Inheritance diagram for Euler_Zagier_sum:

Zsum multiple_zeta_value List of all members.

Public Member Functions

 Euler_Zagier_sum (const GiNaC::ex &nc)
 Euler_Zagier_sum (const GiNaC::ex &nc, const GiNaC::ex &llc)
void archive (GiNaC::archive_node &node) const
void read_archive (const GiNaC::archive_node &node, GiNaC::lst &sym_lst)
GiNaC::return_type_t return_type_tinfo () const
void print (const GiNaC::print_context &c, unsigned level=0) const
GiNaC::ex eval (int level=0) const
GiNaC::ex convert_to_Ssum_exvector (const GiNaC::exvector &Z0, const GiNaC::exvector &Z1) const
GiNaC::ex shuffle_exvector (const GiNaC::exvector &Z0, const GiNaC::exvector &Z1, const GiNaC::exvector &Z2) const
GiNaC::ex set_index (const GiNaC::ex &i) const
GiNaC::ex shift_plus_one (void) const
GiNaC::ex shift_minus_one (void) const
GiNaC::ex adjust_upper_limit_downwards (const GiNaC::ex &i) const
GiNaC::ex adjust_upper_limit_upwards (const GiNaC::ex &i) const
GiNaC::ex adjust_upper_limit_plus_one (void) const
GiNaC::ex remove_first_letter (void) const
GiNaC::ex remove_first_letter (const GiNaC::ex &nc) const

Detailed Description

A Euler-Zagier sum is a special case of a Zsum.

Euler-Zagier sums are recursively defined by

\[ Z_{m_1,...,m_k}(n) = \sum\limits_{i=1}^n \frac{1}{i^{m_1}} Z_{m_2,...,m_k}(i-1) \]

with

\[ Z(n) = 1 \]

for $ n \ge 0 $.


Member Function Documentation

ex adjust_upper_limit_downwards const GiNaC::ex &  i  )  const [virtual]
 

Adjusts the upper summation limit $n$ down to $i$, e.g.

\[ Z(n;m_1,...;1,...) = Z(i;m_1,...;1,...) + \sum\limits_{j=1}^{n-i} \frac{1}{(i+j)^{m_1}} Z(i-1+j;m_2,...;1,...) \]

with $n > i $.

For the empty sum we have

\[ Z(n) = Z(i) \]

This routine assumes $ i \ge 0 $.

Reimplemented from Zsum.

ex adjust_upper_limit_plus_one void   )  const [virtual]
 

Adjusts the upper summation limit $n$ to $n+1$, e.g.

\[ Z(n;m_1,...;1,...) = Z(n+1;m_1,...;1,...) \mbox{} - \frac{1}{(n+1)^{m_1}} Z(n;m_2,...;1,...). \]

Reimplemented from Zsum.

ex adjust_upper_limit_upwards const GiNaC::ex &  i  )  const [virtual]
 

Adjusts the upper summation limit $n$ up to $i$, e.g.

\[ Z(n;m_1,...;1,...) = Z(i;m_1,...;1,...) \mbox{} - \sum\limits_{j=0}^{i-n-1} \frac{1}{(i-j)^{m_1}} Z(i-j-1;m_2,...;1,...) \]

with $n < i $.

For the empty sum we have

\[ Z(n) = Z(i) \]

This routine assumes $ n \ge 0 $.

This routine might give rise to poles for some values of $i$ and should be used with care.

Reimplemented from Zsum.

ex convert_to_Ssum_exvector const GiNaC::exvector &  Z0,
const GiNaC::exvector &  Z1
const [virtual]
 

A more efficient version for the conversion to harmonic sums, based on exvector (e.g. std::vector<GiNaC::ex> ). Z0 contains the result. Z1 is reversed order, so that we can use pop_back.

Reimplemented from Zsum.

ex eval int  level = 0  )  const
 

The simplifications are done in the following order:

  • If the upper summation limit is equal to infinity, we have a multiple zeta value.

  • If the upper summation index is an integer, perform the sum explicitly.

Reimplemented from Zsum.

Reimplemented in multiple_zeta_value.

ex remove_first_letter const GiNaC::ex &  nc  )  const [virtual]
 

Returns a Euler_Zagier_sum with the first letter removed from the letter_list and the upper summation index set to nc.

Reimplemented from Zsum.

ex remove_first_letter void   )  const [virtual]
 

Returns a Euler_Zagier_sum with the first letter removed from the letter_list.

Reimplemented from Zsum.

ex set_index const GiNaC::ex &  i  )  const [virtual]
 

Sets the upper summation index to $i$

Reimplemented from Zsum.

ex shift_minus_one void   )  const [virtual]
 

Returns $Z(n-1,m_1,...,1,...)$

Reimplemented from Zsum.

ex shift_plus_one void   )  const [virtual]
 

Returns $Z(n+1,m_1,...,1,...)$

Reimplemented from Zsum.

ex shuffle_exvector const GiNaC::exvector &  Z0,
const GiNaC::exvector &  Z1,
const GiNaC::exvector &  Z2
const [virtual]
 

A more efficient version for the multiplication of Euler_Zagier_sums, based on exvector (e.g. std::vector<GiNaC::ex> ). Z0 contains the result. Z1 and Z2 are in reversed order, so that we can use pop_back.

Reimplemented from Zsum.


The documentation for this class was generated from the following files:
Generated on Wed Jun 10 22:59:10 2009 for Nestedsums library by doxygen 1.3.7