GiNaC 1.8.10
inifcns.h
Go to the documentation of this file.
1
5/*
6 * GiNaC Copyright (C) 1999-2026 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, see <https://www.gnu.org/licenses/>.
20 */
21
22#ifndef GINAC_INIFCNS_H
23#define GINAC_INIFCNS_H
24
25#include "numeric.h"
26#include "function.h"
27#include "ex.h"
28
29namespace GiNaC {
30
32DECLARE_FUNCTION_1P(conjugate_function)
33
34
35DECLARE_FUNCTION_1P(real_part_function)
36
37
38DECLARE_FUNCTION_1P(imag_part_function)
39
40
42
43
45
46
48
49
51
52
54
55
57
58
60
61
63
64
66
67
69
70
72
73
75
76
78
79
81
82
84
85
87
88
90
91
93
94
96
97
99
100
102
103
104DECLARE_FUNCTION_2P(zetaderiv)
105
106// overloading at work: we cannot use the macros here
108class zeta1_SERIAL { public: static unsigned serial; };
109template<typename T1>
110inline function zeta(const T1& p1) {
111 return function(zeta1_SERIAL::serial, ex(p1));
112}
114class zeta2_SERIAL { public: static unsigned serial; };
115template<typename T1, typename T2>
116inline function zeta(const T1& p1, const T2& p2) {
117 return function(zeta2_SERIAL::serial, ex(p1), ex(p2));
118}
119class zeta_SERIAL;
120template<> inline bool is_the_function<zeta_SERIAL>(const ex& x)
121{
122 return is_the_function<zeta1_SERIAL>(x) || is_the_function<zeta2_SERIAL>(x);
123}
124
125// overloading at work: we cannot use the macros here
127class G2_SERIAL { public: static unsigned serial; };
128template<typename T1, typename T2>
129inline function G(const T1& x, const T2& y) {
130 return function(G2_SERIAL::serial, ex(x), ex(y));
131}
133class G3_SERIAL { public: static unsigned serial; };
134template<typename T1, typename T2, typename T3>
135inline function G(const T1& x, const T2& s, const T3& y) {
136 return function(G3_SERIAL::serial, ex(x), ex(s), ex(y));
137}
138class G_SERIAL;
139template<> inline bool is_the_function<G_SERIAL>(const ex& x)
140{
141 return is_the_function<G2_SERIAL>(x) || is_the_function<G3_SERIAL>(x);
142}
143
146
147
149
150
152
153
156
157
159
160// overloading at work: we cannot use the macros here
162class psi1_SERIAL { public: static unsigned serial; };
163template<typename T1>
164inline function psi(const T1 & p1) {
165 return function(psi1_SERIAL::serial, ex(p1));
166}
168class psi2_SERIAL { public: static unsigned serial; };
169template<typename T1, typename T2>
170inline function psi(const T1 & p1, const T2 & p2) {
171 return function(psi2_SERIAL::serial, ex(p1), ex(p2));
172}
173class psi_SERIAL;
174template<> inline bool is_the_function<psi_SERIAL>(const ex & x)
175{
176 return is_the_function<psi1_SERIAL>(x) || is_the_function<psi2_SERIAL>(x);
177}
178
180DECLARE_FUNCTION_1P(EllipticK)
181
182
183DECLARE_FUNCTION_1P(EllipticE)
184
185// overloading at work: we cannot use the macros here
187class iterated_integral2_SERIAL { public: static unsigned serial; };
188template<typename T1, typename T2>
189inline function iterated_integral(const T1& kernel_lst, const T2& lambda) {
190 return function(iterated_integral2_SERIAL::serial, ex(kernel_lst), ex(lambda));
191}
193class iterated_integral3_SERIAL { public: static unsigned serial; };
194template<typename T1, typename T2, typename T3>
195inline function iterated_integral(const T1& kernel_lst, const T2& lambda, const T3& N_trunc) {
196 return function(iterated_integral3_SERIAL::serial, ex(kernel_lst), ex(lambda), ex(N_trunc));
197}
198class iterated_integral_SERIAL;
199template<> inline bool is_the_function<iterated_integral_SERIAL>(const ex& x)
200{
201 return is_the_function<iterated_integral2_SERIAL>(x) || is_the_function<iterated_integral3_SERIAL>(x);
202}
203
204
207
208
210
211
213
214ex lsolve(const ex &eqns, const ex &symbols, unsigned options = solve_algo::automatic);
215
225const numeric fsolve(const ex& f, const symbol& x, const numeric& x1, const numeric& x2);
226
228inline bool is_order_function(const ex & e)
229{
230 return is_ex_the_function(e, Order);
231}
232
236ex convert_H_to_Li(const ex& parameterlst, const ex& arg);
237
238} // namespace GiNaC
239
240#endif // ndef GINAC_INIFCNS_H
Generalized multiple polylogarithm.
Definition inifcns.h:127
static unsigned serial
Definition inifcns.h:127
Generalized multiple polylogarithm with explicit imaginary parts.
Definition inifcns.h:133
static unsigned serial
Definition inifcns.h:133
Lightweight wrapper for GiNaC's symbolic objects.
Definition ex.h:72
The class function is used to implement builtin functions like sin, cos... and user defined functions...
Definition function.h:673
Complete elliptic integral of the first kind.
Definition inifcns.h:187
Iterated integral with explicit truncation.
Definition inifcns.h:193
Polylogarithm and multiple polylogarithm.
Definition inifcns.h:162
static unsigned serial
Definition inifcns.h:162
Derivatives of Psi-function (aka polygamma-functions).
Definition inifcns.h:168
static unsigned serial
Definition inifcns.h:168
@ automatic
Let the system choose.
Definition flags.h:145
Complex conjugate.
Definition inifcns.h:108
static unsigned serial
Definition inifcns.h:108
Alternating Euler sum or colored MZV.
Definition inifcns.h:114
static unsigned serial
Definition inifcns.h:114
Interface to GiNaC's light-weight expression handles.
unsigned options
Definition factor.cpp:2473
ex x
Definition factor.cpp:1609
Interface to class of symbolic functions.
#define is_ex_the_function(OBJ, FUNCNAME)
Definition function.h:764
#define DECLARE_FUNCTION_1P(NAME)
Definition function.h:33
#define DECLARE_FUNCTION_3P(NAME)
Definition function.h:45
#define DECLARE_FUNCTION_2P(NAME)
Definition function.h:39
Definition add.cpp:35
const numeric atan(const numeric &x)
Numeric arcustangent.
Definition numeric.cpp:1507
ex lsolve(const ex &eqns, const ex &symbols, unsigned options)
Factorial function.
Definition inifcns.cpp:1078
bool is_the_function< G_SERIAL >(const ex &x)
Definition inifcns.h:139
const numeric cosh(const numeric &x)
Numeric hyperbolic cosine (trigonometric function).
Definition numeric.cpp:1562
const numeric abs(const numeric &x)
Absolute value.
Definition numeric.cpp:2319
const numeric asin(const numeric &x)
Numeric inverse sine (trigonometric function).
Definition numeric.cpp:1487
function zeta(const T1 &p1)
Definition inifcns.h:110
bool is_the_function< iterated_integral_SERIAL >(const ex &x)
Definition inifcns.h:199
function iterated_integral(const T1 &kernel_lst, const T2 &lambda)
Definition inifcns.h:189
const numeric tanh(const numeric &x)
Numeric hyperbolic tangent (trigonometric function).
Definition numeric.cpp:1571
const numeric Li2(const numeric &x)
Definition numeric.cpp:1704
int csgn(const numeric &x)
Definition numeric.h:259
const numeric acos(const numeric &x)
Numeric inverse cosine (trigonometric function).
Definition numeric.cpp:1496
function psi(const T1 &p1)
Definition inifcns.h:164
const cln::cl_N tgamma(const cln::cl_N &x)
Definition numeric.cpp:2066
const numeric sinh(const numeric &x)
Numeric hyperbolic sine (trigonometric function).
Definition numeric.cpp:1553
const numeric binomial(const numeric &n, const numeric &k)
The Binomial coefficients.
Definition numeric.cpp:2144
const numeric exp(const numeric &x)
Exponential function.
Definition numeric.cpp:1438
const numeric factorial(const numeric &n)
Factorial combinatorial function.
Definition numeric.cpp:2112
const numeric acosh(const numeric &x)
Numeric inverse hyperbolic cosine (trigonometric function).
Definition numeric.cpp:1589
const numeric cos(const numeric &x)
Numeric cosine (trigonometric function).
Definition numeric.cpp:1469
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:1165
const numeric atanh(const numeric &x)
Numeric inverse hyperbolic tangent (trigonometric function).
Definition numeric.cpp:1598
bool is_the_function< psi_SERIAL >(const ex &x)
Definition inifcns.h:174
bool is_the_function< zeta_SERIAL >(const ex &x)
Definition inifcns.h:120
const numeric log(const numeric &x)
Natural logarithm.
Definition numeric.cpp:1449
const numeric sin(const numeric &x)
Numeric sine (trigonometric function).
Definition numeric.cpp:1460
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:1580
const numeric tan(const numeric &x)
Numeric tangent (trigonometric function).
Definition numeric.cpp:1478
const cln::cl_N lgamma(const cln::cl_N &x)
The Gamma function.
Definition numeric.cpp:2038
bool is_order_function(const ex &e)
Check whether a function is the Order (O(n)) function.
Definition inifcns.h:228
numeric step(const numeric &x)
Definition numeric.h:256
function G(const T1 &x, const T2 &y)
Definition inifcns.h:129
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.