"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "doc/tutorial/ginac.texi" between
ginac-1.7.11.tar.bz2 and ginac-1.8.0.tar.bz2

About: GiNaC (GiNaC is Not a CAS (Computer Algebra System)) is a C++ library for symbolic calculations.

ginac.texi  (ginac-1.7.11.tar.bz2):ginac.texi  (ginac-1.8.0.tar.bz2)
skipping to change at line 3803 skipping to change at line 3803
* Pattern matching and advanced substitutions:: * Pattern matching and advanced substitutions::
* Applying a function on subexpressions:: * Applying a function on subexpressions::
* Visitors and tree traversal:: * Visitors and tree traversal::
* Polynomial arithmetic:: Working with polynomials. * Polynomial arithmetic:: Working with polynomials.
* Rational expressions:: Working with rational functions. * Rational expressions:: Working with rational functions.
* Symbolic differentiation:: * Symbolic differentiation::
* Series expansion:: Taylor and Laurent expansion. * Series expansion:: Taylor and Laurent expansion.
* Symmetrization:: * Symmetrization::
* Built-in functions:: List of predefined mathematical functions. * Built-in functions:: List of predefined mathematical functions.
* Multiple polylogarithms:: * Multiple polylogarithms::
* Iterated integrals::
* Complex expressions:: * Complex expressions::
* Solving linear systems of equations:: * Solving linear systems of equations::
* Input/output:: Input and output of expressions. * Input/output:: Input and output of expressions.
@end menu @end menu
@node Information about expressions, Numerical evaluation, Methods and functions , Methods and functions @node Information about expressions, Numerical evaluation, Methods and functions , Methods and functions
@c node-name, next, previous, up @c node-name, next, previous, up
@section Getting information about expressions @section Getting information about expressions
@subsection Checking expression types @subsection Checking expression types
skipping to change at line 5832 skipping to change at line 5833
@tab harmonic polylogarithm @tab harmonic polylogarithm
@cindex @code{H()} @cindex @code{H()}
@item @code{zeta(m)} @item @code{zeta(m)}
@tab Riemann's zeta function as well as multiple zeta value @tab Riemann's zeta function as well as multiple zeta value
@cindex @code{zeta()} @cindex @code{zeta()}
@item @code{zeta(m, s)} @item @code{zeta(m, s)}
@tab alternating Euler sum @tab alternating Euler sum
@cindex @code{zeta()} @cindex @code{zeta()}
@item @code{zetaderiv(n, x)} @item @code{zetaderiv(n, x)}
@tab derivatives of Riemann's zeta function @tab derivatives of Riemann's zeta function
@item @code{iterated_integral(a, y)}
@tab iterated integral
@cindex @code{iterated_integral()}
@item @code{iterated_integral(a, y, N)}
@tab iterated integral with explicit truncation parameter
@cindex @code{iterated_integral()}
@item @code{tgamma(x)} @item @code{tgamma(x)}
@tab gamma function @tab gamma function
@cindex @code{tgamma()} @cindex @code{tgamma()}
@cindex gamma function @cindex gamma function
@item @code{lgamma(x)} @item @code{lgamma(x)}
@tab logarithm of gamma function @tab logarithm of gamma function
@cindex @code{lgamma()} @cindex @code{lgamma()}
@item @code{beta(x, y)} @item @code{beta(x, y)}
@tab beta function (@code{tgamma(x)*tgamma(y)/tgamma(x+y)}) @tab beta function (@code{tgamma(x)*tgamma(y)/tgamma(x+y)})
@cindex @code{beta()} @cindex @code{beta()}
@item @code{psi(x)} @item @code{psi(x)}
@tab psi (digamma) function @tab psi (digamma) function
@cindex @code{psi()} @cindex @code{psi()}
@item @code{psi(n, x)} @item @code{psi(n, x)}
@tab derivatives of psi function (polygamma functions) @tab derivatives of psi function (polygamma functions)
@item @code{EllipticK(x)}
@tab complete elliptic integral of the first kind
@cindex @code{EllipticK()}
@item @code{EllipticE(x)}
@tab complete elliptic integral of the second kind
@cindex @code{EllipticE()}
@item @code{factorial(n)} @item @code{factorial(n)}
@tab factorial function @math{n!} @tab factorial function @math{n!}
@cindex @code{factorial()} @cindex @code{factorial()}
@item @code{binomial(n, k)} @item @code{binomial(n, k)}
@tab binomial coefficients @tab binomial coefficients
@cindex @code{binomial()} @cindex @code{binomial()}
@item @code{Order(x)} @item @code{Order(x)}
@tab order term function in truncated power series @tab order term function in truncated power series
@cindex @code{Order()} @cindex @code{Order()}
@end multitable @end multitable
skipping to change at line 5927 skipping to change at line 5940
// -> exp(y^2)*exp(2*x*y)*exp(x^2) // -> exp(y^2)*exp(2*x*y)*exp(x^2)
@} @}
@end example @end example
If both flags are set (as in the last call), then GiNaC tries to get If both flags are set (as in the last call), then GiNaC tries to get
the maximal expansion. For example, for the exponent GiNaC firstly expands the maximal expansion. For example, for the exponent GiNaC firstly expands
the argument and then the function. For the logarithm and absolute value, the argument and then the function. For the logarithm and absolute value,
GiNaC uses the opposite order: firstly expands the function and then its GiNaC uses the opposite order: firstly expands the function and then its
argument. Of course, a user can fine-tune this behavior by sequential argument. Of course, a user can fine-tune this behavior by sequential
calls of several @code{expand()} methods with desired flags. calls of several @code{expand()} methods with desired flags.
@node Multiple polylogarithms, Complex expressions, Built-in functions, Methods and functions @node Multiple polylogarithms, Iterated integrals, Built-in functions, Methods a nd functions
@c node-name, next, previous, up @c node-name, next, previous, up
@subsection Multiple polylogarithms @subsection Multiple polylogarithms
@cindex polylogarithm @cindex polylogarithm
@cindex Nielsen's generalized polylogarithm @cindex Nielsen's generalized polylogarithm
@cindex harmonic polylogarithm @cindex harmonic polylogarithm
@cindex multiple zeta value @cindex multiple zeta value
@cindex alternating Euler sum @cindex alternating Euler sum
@cindex multiple polylogarithm @cindex multiple polylogarithm
skipping to change at line 6110 skipping to change at line 6123
@cite{Harmonic Polylogarithms}, @cite{Harmonic Polylogarithms},
E.Remiddi, J.A.M.Vermaseren, Int.J.Mod.Phys. A15 (2000), pp. 725-754 E.Remiddi, J.A.M.Vermaseren, Int.J.Mod.Phys. A15 (2000), pp. 725-754
@cite{Special Values of Multiple Polylogarithms}, @cite{Special Values of Multiple Polylogarithms},
J.Borwein, D.Bradley, D.Broadhurst, P.Lisonek, Trans.Amer.Math.Soc. 353/3 (2001) , pp. 907-941 J.Borwein, D.Bradley, D.Broadhurst, P.Lisonek, Trans.Amer.Math.Soc. 353/3 (2001) , pp. 907-941
@cite{Numerical Evaluation of Multiple Polylogarithms}, @cite{Numerical Evaluation of Multiple Polylogarithms},
J.Vollinga, S.Weinzierl, hep-ph/0410259 J.Vollinga, S.Weinzierl, hep-ph/0410259
@node Complex expressions, Solving linear systems of equations, Multiple polylog @node Iterated integrals, Complex expressions, Multiple polylogarithms, Methods
arithms, Methods and functions and functions
@c node-name, next, previous, up
@subsection Iterated integrals
Multiple polylogarithms are a particular example of iterated integrals.
An iterated integral is defined by the function @code{iterated_integral(a,y)}.
The variable @code{y} gives the upper integration limit for the outermost integr
ation, by convention the lower integration limit is always set to zero.
The variable @code{a} must be a GiNaC @code{lst} containing sub-classes of @code
{integration_kernel} as elements.
The depth of the iterated integral corresponds to the number of elements of @cod
e{a}.
The available integrands for iterated integrals are
(for a more detailed description the user is referred to the publications listed
at the end of this section)
@cartouche
@multitable @columnfractions .40 .60
@item @strong{Class} @tab @strong{Description}
@item @code{integration_kernel()}
@tab Base class, represents the one-form @math{dy}
@cindex @code{integration_kernel()}
@item @code{basic_log_kernel()}
@tab Logarithmic one-form @math{dy/y}
@cindex @code{basic_log_kernel()}
@item @code{multiple_polylog_kernel(z_j)}
@tab The one-form @math{dy/(y-z_j)}
@cindex @code{multiple_polylog_kernel()}
@item @code{ELi_kernel(n, m, x, y)}
@tab The one form @math{ELi_{n;m}(x;y;q) dq/q}
@cindex @code{ELi_kernel()}
@item @code{Ebar_kernel(n, m, x, y)}
@tab The one form @math{\overline{E}_{n;m}(x;y;q) dq/q}
@cindex @code{Ebar_kernel()}
@item @code{Kronecker_dtau_kernel(k, z_j, K, C_k)}
@tab The one form @math{C_k K (k-1)/(2 \pi i)^k g^{(k)}(z_j,K \tau) dq/q}
@cindex @code{Kronecker_dtau_kernel()}
@item @code{Kronecker_dz_kernel(k, z_j, tau, K, C_k)}
@tab The one form @math{C_k (2 \pi i)^{2-k} g^{(k-1)}(z-z_j,K \tau) dz}
@cindex @code{Kronecker_dz_kernel()}
@item @code{Eisenstein_kernel(k, N, a, b, K, C_k)}
@tab The one form @math{C_k E_{k,N,a,b,K}(\tau) dq/q}
@cindex @code{Eisenstein_kernel()}
@item @code{Eisenstein_h_kernel(k, N, r, s, C_k)}
@tab The one form @math{C_k h_{k,N,r,s}(\tau) dq/q}
@cindex @code{Eisenstein_h_kernel()}
@item @code{modular_form_kernel(k, P, C_k)}
@tab The one form @math{C_k P dq/q}
@cindex @code{modular_form_kernel()}
@item @code{user_defined_kernel(f, y)}
@tab The one form @math{f(y) dy}
@cindex @code{user_defined_kernel()}
@end multitable
@end cartouche
All parameters are assumed to be such that all integration kernels have a conver
gent Laurent expansion
around zero with at most a simple pole at zero.
The iterated integral may also be called with an optional third parameter
@code{iterated_integral(a,y,N_trunc)}, in which case the numerical evaluation wi
ll truncate the series
expansion at order @code{N_trunc}.
The classes @code{Eisenstein_kernel()}, @code{Eisenstein_h_kernel()} and @code{m
odular_form_kernel()}
provide a method @code{q_expansion_modular_form(q, order)}, which can used to ob
tain the q-expansion
of @math{E_{k,N,a,b,K}(\tau)}, @math{h_{k,N,r,s}(\tau)} or @math{P} to the speci
fied order.
Useful publications:
@cite{Numerical evaluation of iterated integrals related to elliptic Feynman int
egrals},
M.Walden, S.Weinzierl, arXiv:2010.05271
@node Complex expressions, Solving linear systems of equations, Iterated integra
ls, Methods and functions
@c node-name, next, previous, up @c node-name, next, previous, up
@section Complex expressions @section Complex expressions
@c @c
@cindex @code{conjugate()} @cindex @code{conjugate()}
For dealing with complex expressions there are the methods For dealing with complex expressions there are the methods
@example @example
ex ex::conjugate(); ex ex::conjugate();
ex ex::real_part(); ex ex::real_part();
 End of changes. 5 change blocks. 
3 lines changed or deleted 91 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)