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

Csum Class Reference

Csums involve a conjugation. More...

#include <Csum.h>

List of all members.

Public Member Functions

 Csum (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)
unsigned return_type (void) const
void print (const GiNaC::print_context &c, unsigned level=0) const
unsigned precedence (void) const
GiNaC::ex eval (int level=0) const
GiNaC::ex subs (const GiNaC::exmap &m, unsigned options=0) const
virtual GiNaC::ex convert_to_Ssum_exvector (const GiNaC::exvector &Z1) const
virtual GiNaC::ex expand_members (int level=0) const
GiNaC::ex get_index (void) const
GiNaC::ex get_letter_list (void) const
unsigned get_depth (void) const

Protected Member Functions

GiNaC::ex eval_ncmul (const GiNaC::exvector &v) const
GiNaC::ex derivative (const GiNaC::symbol &s) const
unsigned calchash (void) const
virtual GiNaC::ex decrease_letter_degree (int m) const
virtual GiNaC::ex move_x0_into_x1 (void) const
virtual GiNaC::ex move_x1_into_x2 (void) const
virtual GiNaC::ex remove_x0 (void) const
virtual GiNaC::ex remove_x0_and_x1 (void) const
virtual GiNaC::ex cast_to_Bsum (void) const

Protected Attributes

GiNaC::ex n
GiNaC::ex letter_list

Friends

GiNaC::ex convert_Csum_to_Ssum (const GiNaC::ex &C)
GiNaC::ex convert_Csum_to_Zsum (const GiNaC::ex &C)


Detailed Description

Csums involve a conjugation.

A Csum is defined by

\[ \mbox{} - \sum\limits_{i=1}^n \left( \begin{array}{c} n \\ i \\ \end{array} \right) \left( -1 \right)^i \frac{x_0^i}{i^{m_0}} \sum\limits_{i_1=i+1}^N \sum\limits_{i_2=i_1+1}^N ... \sum\limits_{i_k=i_{k-1}+1}^N \frac{x_1^{i_1}}{i_1^{m_1}} \frac{x_2^{i_2}}{i_2^{m_2}} ... \frac{x_k^{i_k}}{i_k^{m_k}} \]

This is equivalent to

\[ \left( x_k^+ \right)^{m_k} \left( x_{k-1}^+ \right)^{m_{k-1}} ... \left( x_1^+ \right)^{m_1} \left( x_0^+ \right)^{m_0} \frac{x_k}{1-x_k} \frac{x_{k-1}x_k}{1-x_{k-1}x_k} ... \frac{x_1 ... x_k}{1-x_1 ... x_k} \left[ 1 - \left( 1 - x_0 x_1 ... x_k \right)^n \right] \]

up to terms of the form

\[ \left( x^+ \right)^m \frac{x}{1-x} x^N = \sum\limits_{i=N+1}^\infty \frac{x^i}{i^m} \]

Csums can be expressed in terms of Zsums or Ssums.

Basic formulae used here are:

\[ x_1^+ \left[ 1 - \left( 1 - x_1 x_2 \right)^n \right] = \sum\limits_{i=1}^n \frac{1}{i} \left[ 1 - \left( 1 - x_1 x_2 \right)^i \right] \]

\[ x_1^+ \frac{x_1 x_2}{1-x_1 x_2} \left[ 1 - \left( 1 - x_0 x_1 x_2 \right)^n \mbox{} - \left( x_1 x_2 \right)^N \left( 1 - \left( 1 - x_0 \right)^n \right) \right] = \]

\[ = \mbox{} - \left( 1 - x_0 \right)^n \sum\limits_{i=1}^n \frac{1}{i} \left( \frac{1}{1-x_0} \right)^i \left[ 1 - \left( 1 - x_0 x_1 x_2 \right)^i \right] + \left( 1 - \left( 1 - x_0 \right)^n \right) \sum\limits_{i=1}^N \frac{\left(x_1 x_2 \right)^i}{i} \]

\[ x_1^+ \frac{x_1 x_2}{1-x_1 x_2} \left[ 1 - \left( 1 - x_1 x_2 \right)^n \mbox{} - \left( x_1 x_2 \right)^N \right] = \mbox{} - \frac{1}{n} \left[ 1 - \left( 1 - x_1 x_2 \right)^n \right] + \sum\limits_{i=1}^N \frac{\left(x_1 x_2 \right)^i}{i} \]


Member Function Documentation

ex cast_to_Bsum void   )  const [protected, virtual]
 

Returns a Bsum with the same letter list and the same upper summation limit.

ex convert_to_Ssum_exvector const GiNaC::exvector &  Z1  )  const [virtual]
 

Converts a Csum into Ssums.

The basic object is

\[ \left( \sum\limits_{j_1=1}^{n'} \sum\limits_{j_2=1}^{j_1} ... \sum\limits_{n=1}^{j_{l-1}} \frac{y_1^{j_1}}{j_1^{g_1}} ... \frac{y_l^{n}}{n^{g_l}} \right) \left( x_k^+ \right)^{m_k} ... \left( x_1^+ \right)^{m_1} \left( x_0^+ \right)^{m_0} \frac{x_k}{1-x_k} \frac{x_{k-1}x_k}{1-x_{k-1}x_k} ... \frac{x_1 ... x_k}{1-x_1 ... x_k} \left[ 1 - \left( 1 - x_0 x_1 ... x_k \right)^n \right] \]

If $m_0>0$ we have

\[ \left( \sum\limits_{j_1=1}^{n'} \sum\limits_{j_2=1}^{j_1} ... \sum\limits_{n=1}^{j_{l-1}} ... \sum\limits_{i=1}^{n} \frac{1}{i} \right) \left( x_k^+ \right)^{m_k} ... \left( x_1^+ \right)^{m_1} \left( x_0^+ \right)^{m_0-1} \frac{x_k}{1-x_k} \frac{x_{k-1}x_k}{1-x_{k-1}x_k} ... \frac{x_1 ... x_k}{1-x_1 ... x_k} \left[ 1 - \left( 1 - x_0 x_1 ... x_k \right)^i \right] \]

If the depth of the Csum is $1$ and $m_0=0$, we have

\[ \left( \sum\limits_{j_1=1}^{n'} ... \sum\limits_{n=1}^{j_{l-1}} ... \right) \mbox{} - \left( \sum\limits_{j_1=1}^{n'} ... \sum\limits_{n=1}^{j_{l-1}} ... (1-x_0)^n \right) \]

If $m_0=0$, $m_1>0$ and $x_0 \neq 1 $ we have

\[ \mbox{} - \left( \sum\limits_{j_1=1}^{n'} ... (1-x_0)^n \sum\limits_{i=1}^n \frac{1}{i} \left( \frac{1}{1-x_0} \right)^i \left( x_k^+ \right)^{m_k} ... \left( \left(x_0 x_1\right)^+ \right)^{m_1-1} \frac{x_k}{1-x_k} \frac{x_{k-1}x_k}{1-x_{k-1}x_k} ... \frac{x_2 ... x_k}{1-x_2 ... x_k} \left[ 1 - \left( 1 - (x_0 x_1) ... x_k \right)^i \right] \right) \]

\[ \mbox{} + \left( \sum\limits_{j_1=1}^{n'} ... \right) \sum\limits_{i_1=1}^N \frac{x_1}{i_1^{m_1}} \sum\limits_{i_2=i_1+1}^N ... \sum\limits_{i_k=i_{k-1}+1}^N \frac{x_2^{i_2}}{i_2^{m_2}} ... \frac{x_k^{i_k}}{i_k^{m_k}} \]

\[ \mbox{} - \left( \sum\limits_{j_1=1}^{n'} ... (1-x_0)^n \right) \sum\limits_{i_1=1}^N \frac{x_1}{i_1^{m_1}} \sum\limits_{i_2=i_1+1}^N ... \sum\limits_{i_k=i_{k-1}+1}^N \frac{x_2^{i_2}}{i_2^{m_2}} ... \frac{x_k^{i_k}}{i_k^{m_k}} \]

In the case $m_0=0$, $m_1>0$ and $x_0 = 1 $ we have

\[ \mbox{} - \left( \sum\limits_{j_1=1}^{n'} ... \frac{1}{n} \right) \left( x_k^+ \right)^{m_k} ... \left( x_1^+ \right)^{m_1-1} \frac{x_k}{1-x_k} \frac{x_{k-1}x_k}{1-x_{k-1}x_k} ... \frac{x_2 ... x_k}{1-x_2 ... x_k} \left[ 1 - \left( 1 - x_1 ... x_k \right)^n \right] \]

\[ \mbox{} + \left( \sum\limits_{j_1=1}^{n'} ... \right) \sum\limits_{i=1}^N \frac{x_1^{i}}{i^{m_1}} \sum\limits_{i_2=i+1}^{N} ... \sum\limits_{i_k = i_{k-1}+1}^{N} \frac{x_2^{i_2}}{i_2^{m_2}} ... \frac{x_k^{i_k}}{i_k^{m_k}} \]

ex decrease_letter_degree int  m  )  const [protected, virtual]
 

Returns a Csum where the degree of the m'th letter is decreased by one.

ex eval int  level = 0  )  const
 

No automatic simplifications

ex eval_ncmul const GiNaC::exvector &  v  )  const [protected]
 

No automatic simplifications

unsigned get_depth void   )  const [inline]
 

Returns the depth.

GiNaC::ex get_index void   )  const [inline]
 

Returns the upper summation limit.

GiNaC::ex get_letter_list void   )  const [inline]
 

Returns the letter_list.

ex move_x0_into_x1 void   )  const [protected, virtual]
 

Returns

\[ \left( x_k^+ \right)^{m_k} ... \left( \left(x_0 x_1\right)^+ \right)^{m_1} \frac{x_k}{1-x_k} \frac{x_{k-1}x_k}{1-x_{k-1}x_k} ... \frac{x_2 ... x_k}{1-x_2 ... x_k} \left[ 1 - \left( 1 - (x_0 x_1) ... x_k \right)^i \right] \]

ex move_x1_into_x2 void   )  const [protected, virtual]
 

Returns

\[ \left( x_k^+ \right)^{m_k} ... \left( \left(x_2 x_1\right)^+ \right)^{m_2} \left( x_0^+ \right)^{m_0} ... \frac{x_k}{1-x_k} \frac{x_{k-1}x_k}{1-x_{k-1}x_k} ... \frac{(x_1 x_2) ... x_k}{1-(x_1 x_2) ... x_k} \left[ 1 - \left( 1 - x_0 (x_1 x_2) ... x_k \right)^i \right] \]

ex remove_x0 void   )  const [protected, virtual]
 

Removes x0.

ex remove_x0_and_x1 void   )  const [protected, virtual]
 

Removes x0 and x1.


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