GiNaC 1.8.8
inifcns.h
Go to the documentation of this file.
1
5/*
6 * GiNaC Copyright (C) 1999-2025 Johannes Gutenberg University Mainz, Germany
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23#ifndef GINAC_INIFCNS_H
24#define GINAC_INIFCNS_H
25
26#include "numeric.h"
27#include "function.h"
28#include "ex.h"
29
30namespace GiNaC {
31
33DECLARE_FUNCTION_1P(conjugate_function)
34
35
36DECLARE_FUNCTION_1P(real_part_function)
37
38
39DECLARE_FUNCTION_1P(imag_part_function)
40
41
43
44
46
47
49
50
52
53
55
56
58
59
61
62
64
65
67
68
70
71
73
74
76
77
79
80
82
83
85
86
88
89
91
92
94
95
97
98
100
101
103
104
105DECLARE_FUNCTION_2P(zetaderiv)
106
107// overloading at work: we cannot use the macros here
109class zeta1_SERIAL { public: static unsigned serial; };
110template<typename T1>
111inline function zeta(const T1& p1) {
112 return function(zeta1_SERIAL::serial, ex(p1));
113}
115class zeta2_SERIAL { public: static unsigned serial; };
116template<typename T1, typename T2>
117inline function zeta(const T1& p1, const T2& p2) {
118 return function(zeta2_SERIAL::serial, ex(p1), ex(p2));
119}
120class zeta_SERIAL;
121template<> inline bool is_the_function<zeta_SERIAL>(const ex& x)
122{
123 return is_the_function<zeta1_SERIAL>(x) || is_the_function<zeta2_SERIAL>(x);
124}
125
126// overloading at work: we cannot use the macros here
128class G2_SERIAL { public: static unsigned serial; };
129template<typename T1, typename T2>
130inline function G(const T1& x, const T2& y) {
131 return function(G2_SERIAL::serial, ex(x), ex(y));
132}
134class G3_SERIAL { public: static unsigned serial; };
135template<typename T1, typename T2, typename T3>
136inline function G(const T1& x, const T2& s, const T3& y) {
137 return function(G3_SERIAL::serial, ex(x), ex(s), ex(y));
138}
139class G_SERIAL;
140template<> inline bool is_the_function<G_SERIAL>(const ex& x)
141{
142 return is_the_function<G2_SERIAL>(x) || is_the_function<G3_SERIAL>(x);
143}
144
147
148
150
151
153
154
157
158
160
161// overloading at work: we cannot use the macros here
163class psi1_SERIAL { public: static unsigned serial; };
164template<typename T1>
165inline function psi(const T1 & p1) {
166 return function(psi1_SERIAL::serial, ex(p1));
167}
169class psi2_SERIAL { public: static unsigned serial; };
170template<typename T1, typename T2>
171inline function psi(const T1 & p1, const T2 & p2) {
172 return function(psi2_SERIAL::serial, ex(p1), ex(p2));
173}
174class psi_SERIAL;
175template<> inline bool is_the_function<psi_SERIAL>(const ex & x)
176{
177 return is_the_function<psi1_SERIAL>(x) || is_the_function<psi2_SERIAL>(x);
178}
179
181DECLARE_FUNCTION_1P(EllipticK)
182
183
184DECLARE_FUNCTION_1P(EllipticE)
185
186// overloading at work: we cannot use the macros here
188class iterated_integral2_SERIAL { public: static unsigned serial; };
189template<typename T1, typename T2>
190inline function iterated_integral(const T1& kernel_lst, const T2& lambda) {
191 return function(iterated_integral2_SERIAL::serial, ex(kernel_lst), ex(lambda));
192}
194class iterated_integral3_SERIAL { public: static unsigned serial; };
195template<typename T1, typename T2, typename T3>
196inline function iterated_integral(const T1& kernel_lst, const T2& lambda, const T3& N_trunc) {
197 return function(iterated_integral3_SERIAL::serial, ex(kernel_lst), ex(lambda), ex(N_trunc));
198}
199class iterated_integral_SERIAL;
200template<> inline bool is_the_function<iterated_integral_SERIAL>(const ex& x)
201{
202 return is_the_function<iterated_integral2_SERIAL>(x) || is_the_function<iterated_integral3_SERIAL>(x);
203}
204
205
208
209
211
212
214
215ex lsolve(const ex &eqns, const ex &symbols, unsigned options = solve_algo::automatic);
216
226const numeric fsolve(const ex& f, const symbol& x, const numeric& x1, const numeric& x2);
227
229inline bool is_order_function(const ex & e)
230{
231 return is_ex_the_function(e, Order);
232}
233
237ex convert_H_to_Li(const ex& parameterlst, const ex& arg);
238
239} // namespace GiNaC
240
241#endif // ndef GINAC_INIFCNS_H
Generalized multiple polylogarithm.
Definition inifcns.h:128
static unsigned serial
Definition inifcns.h:128
Generalized multiple polylogarithm with explicit imaginary parts.
Definition inifcns.h:134
static unsigned serial
Definition inifcns.h:134
Lightweight wrapper for GiNaC's symbolic objects.
Definition ex.h:73
The class function is used to implement builtin functions like sin, cos... and user defined functions...
Definition function.h:674
Complete elliptic integral of the first kind.
Definition inifcns.h:188
Iterated integral with explicit truncation.
Definition inifcns.h:194
Polylogarithm and multiple polylogarithm.
Definition inifcns.h:163
static unsigned serial
Definition inifcns.h:163
Derivatives of Psi-function (aka polygamma-functions).
Definition inifcns.h:169
static unsigned serial
Definition inifcns.h:169
@ automatic
Let the system choose.
Definition flags.h:146
Complex conjugate.
Definition inifcns.h:109
static unsigned serial
Definition inifcns.h:109
Alternating Euler sum or colored MZV.
Definition inifcns.h:115
static unsigned serial
Definition inifcns.h:115
Interface to GiNaC's light-weight expression handles.
unsigned options
Definition factor.cpp:2474
ex x
Definition factor.cpp:1610
Interface to class of symbolic functions.
#define is_ex_the_function(OBJ, FUNCNAME)
Definition function.h:765
#define DECLARE_FUNCTION_1P(NAME)
Definition function.h:34
#define DECLARE_FUNCTION_3P(NAME)
Definition function.h:46
#define DECLARE_FUNCTION_2P(NAME)
Definition function.h:40
Definition add.cpp:36
const numeric atan(const numeric &x)
Numeric arcustangent.
Definition numeric.cpp:1508
ex lsolve(const ex &eqns, const ex &symbols, unsigned options)
Factorial function.
Definition inifcns.cpp:1079
bool is_the_function< G_SERIAL >(const ex &x)
Definition inifcns.h:140
const numeric cosh(const numeric &x)
Numeric hyperbolic cosine (trigonometric function).
Definition numeric.cpp:1563
const numeric abs(const numeric &x)
Absolute value.
Definition numeric.cpp:2320
const numeric asin(const numeric &x)
Numeric inverse sine (trigonometric function).
Definition numeric.cpp:1488
function zeta(const T1 &p1)
Definition inifcns.h:111
bool is_the_function< iterated_integral_SERIAL >(const ex &x)
Definition inifcns.h:200
function iterated_integral(const T1 &kernel_lst, const T2 &lambda)
Definition inifcns.h:190
const numeric tanh(const numeric &x)
Numeric hyperbolic tangent (trigonometric function).
Definition numeric.cpp:1572
const numeric Li2(const numeric &x)
Definition numeric.cpp:1705
int csgn(const numeric &x)
Definition numeric.h:260
const numeric acos(const numeric &x)
Numeric inverse cosine (trigonometric function).
Definition numeric.cpp:1497
function psi(const T1 &p1)
Definition inifcns.h:165
const cln::cl_N tgamma(const cln::cl_N &x)
Definition numeric.cpp:2067
const numeric sinh(const numeric &x)
Numeric hyperbolic sine (trigonometric function).
Definition numeric.cpp:1554
const numeric binomial(const numeric &n, const numeric &k)
The Binomial coefficients.
Definition numeric.cpp:2145
const numeric exp(const numeric &x)
Exponential function.
Definition numeric.cpp:1439
const numeric factorial(const numeric &n)
Factorial combinatorial function.
Definition numeric.cpp:2113
const numeric acosh(const numeric &x)
Numeric inverse hyperbolic cosine (trigonometric function).
Definition numeric.cpp:1590
const numeric cos(const numeric &x)
Numeric cosine (trigonometric function).
Definition numeric.cpp:1470
const numeric fsolve(const ex &f_in, const symbol &x, const numeric &x1, const numeric &x2)
Find a real root of real-valued function f(x) numerically within a given interval.
Definition inifcns.cpp:1166
const numeric atanh(const numeric &x)
Numeric inverse hyperbolic tangent (trigonometric function).
Definition numeric.cpp:1599
bool is_the_function< psi_SERIAL >(const ex &x)
Definition inifcns.h:175
bool is_the_function< zeta_SERIAL >(const ex &x)
Definition inifcns.h:121
const numeric log(const numeric &x)
Natural logarithm.
Definition numeric.cpp:1450
const numeric sin(const numeric &x)
Numeric sine (trigonometric function).
Definition numeric.cpp:1461
ex convert_H_to_Li(const ex &parameterlst, const ex &arg)
Converts a given list containing parameters for H in Remiddi/Vermaseren notation into the correspondi...
const numeric asinh(const numeric &x)
Numeric inverse hyperbolic sine (trigonometric function).
Definition numeric.cpp:1581
const numeric tan(const numeric &x)
Numeric tangent (trigonometric function).
Definition numeric.cpp:1479
const cln::cl_N lgamma(const cln::cl_N &x)
The Gamma function.
Definition numeric.cpp:2039
bool is_order_function(const ex &e)
Check whether a function is the Order (O(n)) function.
Definition inifcns.h:229
numeric step(const numeric &x)
Definition numeric.h:257
function G(const T1 &x, const T2 &y)
Definition inifcns.h:130
Makes the interface to the underlying bignum package available.

This page is part of the GiNaC developer's reference. It was generated automatically by doxygen. For an introduction, see the tutorial.