* Interface to GiNaC's initially known functions. */
/*
- * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2005 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
namespace GiNaC {
+/** Complex conjugate. */
+DECLARE_FUNCTION_1P(conjugate_function)
+
/** Absolute value. */
DECLARE_FUNCTION_1P(abs)
return function(zeta2_SERIAL::serial, ex(p1), ex(p2));
}
class zeta_SERIAL;
-template<> inline bool is_the_function<class zeta_SERIAL>(const ex& x)
+template<> inline bool is_the_function<zeta_SERIAL>(const ex& x)
{
return is_the_function<zeta1_SERIAL>(x) || is_the_function<zeta2_SERIAL>(x);
}
-/** Polylogarithm and multiple polylogarithm. */
-DECLARE_FUNCTION_2P(Li)
-
-/** Nielsen's generalized polylogarithm. */
-DECLARE_FUNCTION_3P(S)
-
// overloading at work: we cannot use the macros here
-/** Harmonic polylogarithm with only positive parameters. */
-class H2_SERIAL { public: static unsigned serial; };
+/** Generalized multiple polylogarithm. */
+class G2_SERIAL { public: static unsigned serial; };
template<typename T1, typename T2>
-inline function H(const T1& p1, const T2& p2) {
- return function(H2_SERIAL::serial, ex(p1), ex(p2));
+inline function G(const T1& x, const T2& y) {
+ return function(G2_SERIAL::serial, ex(x), ex(y));
}
-/** Harmonic polylogarithm with signed parameters. */
-class H3_SERIAL { public: static unsigned serial; };
+/** Generalized multiple polylogarithm with explicit imaginary parts. */
+class G3_SERIAL { public: static unsigned serial; };
template<typename T1, typename T2, typename T3>
-inline function H(const T1& p1, const T2& p2, const T3& p3) {
- return function(H3_SERIAL::serial, ex(p1), ex(p2), ex(p3));
+inline function G(const T1& x, const T2& s, const T3& y) {
+ return function(G3_SERIAL::serial, ex(x), ex(s), ex(y));
}
-class H_SERIAL;
-template<> inline bool is_the_function<class H_SERIAL>(const ex& x)
+class G_SERIAL;
+template<> inline bool is_the_function<G_SERIAL>(const ex& x)
{
- return is_the_function<H2_SERIAL>(x) || is_the_function<H3_SERIAL>(x);
+ return is_the_function<G2_SERIAL>(x) || is_the_function<G3_SERIAL>(x);
}
+/** Polylogarithm and multiple polylogarithm. */
+DECLARE_FUNCTION_2P(Li)
+
+/** Nielsen's generalized polylogarithm. */
+DECLARE_FUNCTION_3P(S)
+
+/** Harmonic polylogarithm. */
+DECLARE_FUNCTION_2P(H)
+
/** Gamma-function. */
DECLARE_FUNCTION_1P(lgamma)
DECLARE_FUNCTION_1P(tgamma)
return function(psi2_SERIAL::serial, ex(p1), ex(p2));
}
class psi_SERIAL;
-template<> inline bool is_the_function<class psi_SERIAL>(const ex & x)
+template<> inline bool is_the_function<psi_SERIAL>(const ex & x)
{
return is_the_function<psi1_SERIAL>(x) || is_the_function<psi2_SERIAL>(x);
}
/** Converts a given list containing parameters for H in Remiddi/Vermaseren notation into
* the corresponding GiNaC functions.
*/
-ex convert_H_notation(const ex& parameterlst, const ex& arg);
+ex convert_H_to_Li(const ex& parameterlst, const ex& arg);
} // namespace GiNaC