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

list_of_tgamma Class Reference

The class list_of_tgamma is a container for the class ratio_of_tgamma. More...

#include <list_polygamma.h>

List of all members.

Public Member Functions

 list_of_tgamma (const GiNaC::ex &l)
 list_of_tgamma (const GiNaC::ex &l, const GiNaC::ex &i, const GiNaC::ex &eps, int o)
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 eval_explicit (int level=0) const
virtual unsigned get_key (void) const
virtual GiNaC::ex hash_data (void) const
virtual GiNaC::ex subst_data (void) const
GiNaC::ex set_expansion (void) const
GiNaC::ex set_index (const GiNaC::ex &new_index) const
GiNaC::ex set_expansion_parameter (const GiNaC::ex &new_eps) const
GiNaC::ex set_order (int new_order) const
GiNaC::ex get_index (void) const
unsigned get_depth (void) const
GiNaC::ex shift_plus_one (void) const
GiNaC::ex shift_minus_one (void) const
GiNaC::ex index_eq_one (void) const
GiNaC::ex shift_index (const GiNaC::ex &new_index) const
GiNaC::ex concat (const GiNaC::ex &l) const
int pole_alert (void) const
int expansion_alert (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

Protected Attributes

GiNaC::ex gamma_sequence
GiNaC::ex index
GiNaC::ex expansion_parameter
int order

Friends

GiNaC::ex create_transcendental_sum_type_A_and_set_gammas (const GiNaC::ex &nn, const GiNaC::ex &i, const GiNaC::ex &l, const GiNaC::ex &v, const GiNaC::ex &ss, const GiNaC::ex &eps, int o, int f)
GiNaC::ex create_transcendental_sum_type_B_and_set_gammas (const GiNaC::ex &nn, const GiNaC::ex &i, const GiNaC::ex &l, const GiNaC::ex &lr, const GiNaC::ex &v, const GiNaC::ex &vr, const GiNaC::ex &ss, const GiNaC::ex &ssr, const GiNaC::ex &eps, int o, int f)
GiNaC::ex create_transcendental_sum_type_C_and_set_gammas (const GiNaC::ex &nn, const GiNaC::ex &i, const GiNaC::ex &l, const GiNaC::ex &v, const GiNaC::ex &ss, const GiNaC::ex &eps, int o, int f)
GiNaC::ex create_transcendental_sum_type_D_and_set_gammas (const GiNaC::ex &nn, const GiNaC::ex &i, const GiNaC::ex &l, const GiNaC::ex &lr, const GiNaC::ex &v, const GiNaC::ex &vr, const GiNaC::ex &ss, const GiNaC::ex &ssr, const GiNaC::ex &eps, int o, int f)


Detailed Description

The class list_of_tgamma is a container for the class ratio_of_tgamma.

The definition is

\[ \frac{\Gamma(1+d_1\varepsilon)}{\Gamma(1+b_1\varepsilon)} \frac{\Gamma(1+d_2\varepsilon)}{\Gamma(1+b_2\varepsilon)} ... \frac{\Gamma(1+d_k\varepsilon)}{\Gamma(1+b_k\varepsilon)} \]

\[ \frac{\Gamma(i+a_1+b_1\varepsilon)}{\Gamma(i+c_1+d_1\varepsilon)} \frac{\Gamma(i+a_2+b_2\varepsilon)}{\Gamma(i+c_2+d_2\varepsilon)} ... \frac{\Gamma(i+a_k+b_k\varepsilon)}{\Gamma(i+c_k+d_k\varepsilon)} \]


Constructor & Destructor Documentation

list_of_tgamma const GiNaC::ex &  l  )  [explicit]
 

Constructor via initialization list. If the list l is non-empty, the members index, expansion_parameter and order are set according to the first entry in the list l.

list_of_tgamma const GiNaC::ex &  l,
const GiNaC::ex &  i,
const GiNaC::ex &  eps,
int  o
 

Constructor via initialization list.


Member Function Documentation

ex concat const GiNaC::ex &  l  )  const
 

Concats two list_of_tgammas.

ex eval int  level = 0  )  const
 

If the index is an integer, the object is evaluated explicitly.

ex eval_explicit int  level = 0  )  const [virtual]
 

Explicit evaluation. The job is delegated to the function nestedsums_helper_expand_lst_tgamma_fct.

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

If two list_of_tgammas have the same index, they can be merged together.

If the difference between the two indices is an integer, we can merge them according to

\[ \frac{\Gamma(1+d_1\varepsilon)}{\Gamma(1+b_1\varepsilon)} \frac{\Gamma(1+d_2\varepsilon)}{\Gamma(1+b_2\varepsilon)} \frac{\Gamma((i+l)+a_1+b_1 \varepsilon)}{\Gamma((i+l)+c_1+d_1 \varepsilon)} \frac{\Gamma(i+a_2+b_2 \varepsilon)}{\Gamma(i+c_2+d_2 \varepsilon)} \]

\[ = \frac{\Gamma(1+d_1\varepsilon)}{\Gamma(1+b_1\varepsilon)} \frac{\Gamma(1+d_2\varepsilon)}{\Gamma(1+b_2\varepsilon)} \frac{\Gamma(i+(a_1+l)+b_1 \varepsilon)}{\Gamma(i+(c_1+l)+d_1 \varepsilon)} \frac{\Gamma(i+a_2+b_2 \varepsilon)}{\Gamma(i+c_2+d_2 \varepsilon)} \]

where $ l > 0 $. Note that the algorithm returns a product, where both factors have the "smaller" index.

int expansion_alert void   )  const
 

Returns $> 0$ if $a_j$ or $c_j$ are not integers, and 0 otherwise.

unsigned get_depth void   )  const [inline]
 

Returns the depth.

GiNaC::ex get_index void   )  const [inline]
 

Returns the upper summation limit.

unsigned get_key void   )  const [virtual]
 

Returns the hash key to be used in connection with the class hash_entry.

ex hash_data void   )  const [virtual]
 

Returns an expression which allows a comparison up to equivalence with an entry in a hash map.

In this case the comparison is exact and the method returns *this.

ex index_eq_one void   )  const
 

Returns

\[ \frac{\Gamma(1+d_1\varepsilon)}{\Gamma(1+b_1\varepsilon)} ... \frac{\Gamma(1+d_k\varepsilon)}{\Gamma(1+b_k\varepsilon)} \frac{\Gamma(a_1+1+b_1 \varepsilon)}{\Gamma(c_1+1+d_1 \varepsilon)} ... \frac{\Gamma(a_k+1+b_k \varepsilon)}{\Gamma(c_k+1+d_k \varepsilon)} \]

int pole_alert void   )  const
 

Returns $> 0$ if $a_j \le 0 $, and 0 otherwise.

ex set_expansion void   )  const
 

Sets the flag expansion_required for ratio_of_tgamma. The object is then automatically expanded up to the order specified in the member variable order.

This function should be called after all possible poles have been taken care of, e.g. all $a_1$ in the numerator are non-negative.

The result is in expanded form.

ex set_expansion_parameter const GiNaC::ex &  new_eps  )  const
 

Sets the member variable expansion_parameter to new_eps.

ex set_index const GiNaC::ex &  new_index  )  const
 

Sets the member variable index to new_index.

ex set_order int  new_order  )  const
 

Sets the member variable order to new_order.

ex shift_index const GiNaC::ex &  new_index  )  const
 

Returns a list_of_tgamma with

\[ \Gamma(i + a + o + b \varepsilon ) \]

with $ o = j-i$, where $i$ is the new index and $j$ is the old index.

ex shift_minus_one void   )  const
 

Returns

\[ \frac{\Gamma(1+d_1\varepsilon)}{\Gamma(1+b_1\varepsilon)} ... \frac{\Gamma(1+d_k\varepsilon)}{\Gamma(1+b_k\varepsilon)} \frac{\Gamma(i+a_1-1+b_1 \varepsilon)}{\Gamma(i+c_1-1+d_1 \varepsilon)} ... \frac{\Gamma(i+a_k-1+b_k \varepsilon)}{\Gamma(i+c_k-1+d_k \varepsilon)} \]

The order parameter is not changed.

ex shift_plus_one void   )  const
 

Returns

\[ \frac{\Gamma(1+d_1\varepsilon)}{\Gamma(1+b_1\varepsilon)} ... \frac{\Gamma(1+d_k\varepsilon)}{\Gamma(1+b_k\varepsilon)} \frac{\Gamma(i+a_1+1+b_1 \varepsilon)}{\Gamma(i+c_1+1+d_1 \varepsilon)} ... \frac{\Gamma(i+a_k+1+b_k \varepsilon)}{\Gamma(i+c_k+1+d_k \varepsilon)} \]

The order parameter is not changed.

ex subst_data void   )  const [virtual]
 

Returns the data which has to be substitued if the comparison with a hash entry is only up to equivalence.

In this case, the comparison is exact, and no data needs to be substituted.


Friends And Related Function Documentation

GiNaC::ex create_transcendental_sum_type_A_and_set_gammas const GiNaC::ex &  nn,
const GiNaC::ex &  i,
const GiNaC::ex &  l,
const GiNaC::ex &  v,
const GiNaC::ex &  ss,
const GiNaC::ex &  eps,
int  o,
int  f
[friend]
 

Named ctor on the heap.

GiNaC::ex create_transcendental_sum_type_B_and_set_gammas const GiNaC::ex &  nn,
const GiNaC::ex &  i,
const GiNaC::ex &  l,
const GiNaC::ex &  lr,
const GiNaC::ex &  v,
const GiNaC::ex &  vr,
const GiNaC::ex &  ss,
const GiNaC::ex &  ssr,
const GiNaC::ex &  eps,
int  o,
int  f
[friend]
 

Named ctor on the heap.

GiNaC::ex create_transcendental_sum_type_C_and_set_gammas const GiNaC::ex &  nn,
const GiNaC::ex &  i,
const GiNaC::ex &  l,
const GiNaC::ex &  v,
const GiNaC::ex &  ss,
const GiNaC::ex &  eps,
int  o,
int  f
[friend]
 

Named ctor on the heap.

GiNaC::ex create_transcendental_sum_type_D_and_set_gammas const GiNaC::ex &  nn,
const GiNaC::ex &  i,
const GiNaC::ex &  l,
const GiNaC::ex &  lr,
const GiNaC::ex &  v,
const GiNaC::ex &  vr,
const GiNaC::ex &  ss,
const GiNaC::ex &  ssr,
const GiNaC::ex &  eps,
int  o,
int  f
[friend]
 

Named ctor on the heap.


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