GiNaC 1.8.7
function.h
Go to the documentation of this file.
1
5/*
6 * This file was generated automatically from function.hppy.
7 * Please do not modify it directly, edit function.hppy instead!
8 *
9 * GiNaC Copyright (C) 1999-2023 Johannes Gutenberg University Mainz, Germany
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 */
25
26#ifndef GINAC_FUNCTION_H
27#define GINAC_FUNCTION_H
28
29#include "exprseq.h"
30
31#include <string>
32#include <vector>
33
34#define DECLARE_FUNCTION_1P(NAME) \
35class NAME##_SERIAL { public: static unsigned serial; }; \
36const unsigned NAME##_NPARAMS = 1; \
37template< typename T1 > const GiNaC::function NAME( const T1 & p1 ) { \
38 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1) ); \
39}
40#define DECLARE_FUNCTION_2P(NAME) \
41class NAME##_SERIAL { public: static unsigned serial; }; \
42const unsigned NAME##_NPARAMS = 2; \
43template< typename T1, typename T2 > const GiNaC::function NAME( const T1 & p1, const T2 & p2 ) { \
44 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2) ); \
45}
46#define DECLARE_FUNCTION_3P(NAME) \
47class NAME##_SERIAL { public: static unsigned serial; }; \
48const unsigned NAME##_NPARAMS = 3; \
49template< typename T1, typename T2, typename T3 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3 ) { \
50 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3) ); \
51}
52#define DECLARE_FUNCTION_4P(NAME) \
53class NAME##_SERIAL { public: static unsigned serial; }; \
54const unsigned NAME##_NPARAMS = 4; \
55template< typename T1, typename T2, typename T3, typename T4 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4 ) { \
56 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4) ); \
57}
58#define DECLARE_FUNCTION_5P(NAME) \
59class NAME##_SERIAL { public: static unsigned serial; }; \
60const unsigned NAME##_NPARAMS = 5; \
61template< typename T1, typename T2, typename T3, typename T4, typename T5 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5 ) { \
62 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5) ); \
63}
64#define DECLARE_FUNCTION_6P(NAME) \
65class NAME##_SERIAL { public: static unsigned serial; }; \
66const unsigned NAME##_NPARAMS = 6; \
67template< typename T1, typename T2, typename T3, typename T4, typename T5, typename T6 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5, const T6 & p6 ) { \
68 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5), GiNaC::ex(p6) ); \
69}
70#define DECLARE_FUNCTION_7P(NAME) \
71class NAME##_SERIAL { public: static unsigned serial; }; \
72const unsigned NAME##_NPARAMS = 7; \
73template< typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5, const T6 & p6, const T7 & p7 ) { \
74 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5), GiNaC::ex(p6), GiNaC::ex(p7) ); \
75}
76#define DECLARE_FUNCTION_8P(NAME) \
77class NAME##_SERIAL { public: static unsigned serial; }; \
78const unsigned NAME##_NPARAMS = 8; \
79template< typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5, const T6 & p6, const T7 & p7, const T8 & p8 ) { \
80 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5), GiNaC::ex(p6), GiNaC::ex(p7), GiNaC::ex(p8) ); \
81}
82#define DECLARE_FUNCTION_9P(NAME) \
83class NAME##_SERIAL { public: static unsigned serial; }; \
84const unsigned NAME##_NPARAMS = 9; \
85template< typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5, const T6 & p6, const T7 & p7, const T8 & p8, const T9 & p9 ) { \
86 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5), GiNaC::ex(p6), GiNaC::ex(p7), GiNaC::ex(p8), GiNaC::ex(p9) ); \
87}
88#define DECLARE_FUNCTION_10P(NAME) \
89class NAME##_SERIAL { public: static unsigned serial; }; \
90const unsigned NAME##_NPARAMS = 10; \
91template< typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5, const T6 & p6, const T7 & p7, const T8 & p8, const T9 & p9, const T10 & p10 ) { \
92 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5), GiNaC::ex(p6), GiNaC::ex(p7), GiNaC::ex(p8), GiNaC::ex(p9), GiNaC::ex(p10) ); \
93}
94#define DECLARE_FUNCTION_11P(NAME) \
95class NAME##_SERIAL { public: static unsigned serial; }; \
96const unsigned NAME##_NPARAMS = 11; \
97template< typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5, const T6 & p6, const T7 & p7, const T8 & p8, const T9 & p9, const T10 & p10, const T11 & p11 ) { \
98 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5), GiNaC::ex(p6), GiNaC::ex(p7), GiNaC::ex(p8), GiNaC::ex(p9), GiNaC::ex(p10), GiNaC::ex(p11) ); \
99}
100#define DECLARE_FUNCTION_12P(NAME) \
101class NAME##_SERIAL { public: static unsigned serial; }; \
102const unsigned NAME##_NPARAMS = 12; \
103template< typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5, const T6 & p6, const T7 & p7, const T8 & p8, const T9 & p9, const T10 & p10, const T11 & p11, const T12 & p12 ) { \
104 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5), GiNaC::ex(p6), GiNaC::ex(p7), GiNaC::ex(p8), GiNaC::ex(p9), GiNaC::ex(p10), GiNaC::ex(p11), GiNaC::ex(p12) ); \
105}
106#define DECLARE_FUNCTION_13P(NAME) \
107class NAME##_SERIAL { public: static unsigned serial; }; \
108const unsigned NAME##_NPARAMS = 13; \
109template< typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5, const T6 & p6, const T7 & p7, const T8 & p8, const T9 & p9, const T10 & p10, const T11 & p11, const T12 & p12, const T13 & p13 ) { \
110 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5), GiNaC::ex(p6), GiNaC::ex(p7), GiNaC::ex(p8), GiNaC::ex(p9), GiNaC::ex(p10), GiNaC::ex(p11), GiNaC::ex(p12), GiNaC::ex(p13) ); \
111}
112#define DECLARE_FUNCTION_14P(NAME) \
113class NAME##_SERIAL { public: static unsigned serial; }; \
114const unsigned NAME##_NPARAMS = 14; \
115template< typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14 > const GiNaC::function NAME( const T1 & p1, const T2 & p2, const T3 & p3, const T4 & p4, const T5 & p5, const T6 & p6, const T7 & p7, const T8 & p8, const T9 & p9, const T10 & p10, const T11 & p11, const T12 & p12, const T13 & p13, const T14 & p14 ) { \
116 return GiNaC::function(NAME##_SERIAL::serial, GiNaC::ex(p1), GiNaC::ex(p2), GiNaC::ex(p3), GiNaC::ex(p4), GiNaC::ex(p5), GiNaC::ex(p6), GiNaC::ex(p7), GiNaC::ex(p8), GiNaC::ex(p9), GiNaC::ex(p10), GiNaC::ex(p11), GiNaC::ex(p12), GiNaC::ex(p13), GiNaC::ex(p14) ); \
117}
118// end of generated lines
119
120#define REGISTER_FUNCTION(NAME,OPT) \
121unsigned NAME##_SERIAL::serial = \
122 GiNaC::function::register_new(GiNaC::function_options(#NAME, NAME##_NPARAMS).OPT);
123
124namespace GiNaC {
125
126class function;
127class symmetry;
128
129typedef ex (* eval_funcp)();
130typedef ex (* evalf_funcp)();
131typedef ex (* conjugate_funcp)();
132typedef ex (* real_part_funcp)();
133typedef ex (* imag_part_funcp)();
134typedef ex (* expand_funcp)();
135typedef ex (* derivative_funcp)();
137typedef ex (* power_funcp)();
138typedef ex (* series_funcp)();
139typedef void (* print_funcp)();
140typedef bool (* info_funcp)();
141
142// the following lines have been generated for max. 14 parameters
143typedef ex (* eval_funcp_1)( const ex & );
144typedef ex (* evalf_funcp_1)( const ex & );
145typedef ex (* conjugate_funcp_1)( const ex & );
146typedef ex (* real_part_funcp_1)( const ex & );
147typedef ex (* imag_part_funcp_1)( const ex & );
148typedef ex (* expand_funcp_1)( const ex &, unsigned );
149typedef ex (* derivative_funcp_1)( const ex &, unsigned );
150typedef ex (* expl_derivative_funcp_1)( const ex &, const symbol & );
151typedef ex (* power_funcp_1)( const ex &, const ex & );
152typedef ex (* series_funcp_1)( const ex &, const relational &, int, unsigned );
153typedef void (* print_funcp_1)( const ex &, const print_context & );
154typedef bool (* info_funcp_1)( const ex &, unsigned );
155typedef ex (* eval_funcp_2)( const ex &, const ex & );
156typedef ex (* evalf_funcp_2)( const ex &, const ex & );
157typedef ex (* conjugate_funcp_2)( const ex &, const ex & );
158typedef ex (* real_part_funcp_2)( const ex &, const ex & );
159typedef ex (* imag_part_funcp_2)( const ex &, const ex & );
160typedef ex (* expand_funcp_2)( const ex &, const ex &, unsigned );
161typedef ex (* derivative_funcp_2)( const ex &, const ex &, unsigned );
162typedef ex (* expl_derivative_funcp_2)( const ex &, const ex &, const symbol & );
163typedef ex (* power_funcp_2)( const ex &, const ex &, const ex & );
164typedef ex (* series_funcp_2)( const ex &, const ex &, const relational &, int, unsigned );
165typedef void (* print_funcp_2)( const ex &, const ex &, const print_context & );
166typedef bool (* info_funcp_2)( const ex &, const ex &, unsigned );
167typedef ex (* eval_funcp_3)( const ex &, const ex &, const ex & );
168typedef ex (* evalf_funcp_3)( const ex &, const ex &, const ex & );
169typedef ex (* conjugate_funcp_3)( const ex &, const ex &, const ex & );
170typedef ex (* real_part_funcp_3)( const ex &, const ex &, const ex & );
171typedef ex (* imag_part_funcp_3)( const ex &, const ex &, const ex & );
172typedef ex (* expand_funcp_3)( const ex &, const ex &, const ex &, unsigned );
173typedef ex (* derivative_funcp_3)( const ex &, const ex &, const ex &, unsigned );
174typedef ex (* expl_derivative_funcp_3)( const ex &, const ex &, const ex &, const symbol & );
175typedef ex (* power_funcp_3)( const ex &, const ex &, const ex &, const ex & );
176typedef ex (* series_funcp_3)( const ex &, const ex &, const ex &, const relational &, int, unsigned );
177typedef void (* print_funcp_3)( const ex &, const ex &, const ex &, const print_context & );
178typedef bool (* info_funcp_3)( const ex &, const ex &, const ex &, unsigned );
179typedef ex (* eval_funcp_4)( const ex &, const ex &, const ex &, const ex & );
180typedef ex (* evalf_funcp_4)( const ex &, const ex &, const ex &, const ex & );
181typedef ex (* conjugate_funcp_4)( const ex &, const ex &, const ex &, const ex & );
182typedef ex (* real_part_funcp_4)( const ex &, const ex &, const ex &, const ex & );
183typedef ex (* imag_part_funcp_4)( const ex &, const ex &, const ex &, const ex & );
184typedef ex (* expand_funcp_4)( const ex &, const ex &, const ex &, const ex &, unsigned );
185typedef ex (* derivative_funcp_4)( const ex &, const ex &, const ex &, const ex &, unsigned );
186typedef ex (* expl_derivative_funcp_4)( const ex &, const ex &, const ex &, const ex &, const symbol & );
187typedef ex (* power_funcp_4)( const ex &, const ex &, const ex &, const ex &, const ex & );
188typedef ex (* series_funcp_4)( const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
189typedef void (* print_funcp_4)( const ex &, const ex &, const ex &, const ex &, const print_context & );
190typedef bool (* info_funcp_4)( const ex &, const ex &, const ex &, const ex &, unsigned );
191typedef ex (* eval_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
192typedef ex (* evalf_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
193typedef ex (* conjugate_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
194typedef ex (* real_part_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
195typedef ex (* imag_part_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
196typedef ex (* expand_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
197typedef ex (* derivative_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
198typedef ex (* expl_derivative_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
199typedef ex (* power_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
200typedef ex (* series_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
201typedef void (* print_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
202typedef bool (* info_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
203typedef ex (* eval_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
204typedef ex (* evalf_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
205typedef ex (* conjugate_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
206typedef ex (* real_part_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
207typedef ex (* imag_part_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
208typedef ex (* expand_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
209typedef ex (* derivative_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
210typedef ex (* expl_derivative_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
211typedef ex (* power_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
212typedef ex (* series_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
213typedef void (* print_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
214typedef bool (* info_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
215typedef ex (* eval_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
216typedef ex (* evalf_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
217typedef ex (* conjugate_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
218typedef ex (* real_part_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
219typedef ex (* imag_part_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
220typedef ex (* expand_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
221typedef ex (* derivative_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
222typedef ex (* expl_derivative_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
223typedef ex (* power_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
224typedef ex (* series_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
225typedef void (* print_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
226typedef bool (* info_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
227typedef ex (* eval_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
228typedef ex (* evalf_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
229typedef ex (* conjugate_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
230typedef ex (* real_part_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
231typedef ex (* imag_part_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
232typedef ex (* expand_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
233typedef ex (* derivative_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
234typedef ex (* expl_derivative_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
235typedef ex (* power_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
236typedef ex (* series_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
237typedef void (* print_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
238typedef bool (* info_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
239typedef ex (* eval_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
240typedef ex (* evalf_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
241typedef ex (* conjugate_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
242typedef ex (* real_part_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
243typedef ex (* imag_part_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
244typedef ex (* expand_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
245typedef ex (* derivative_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
246typedef ex (* expl_derivative_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
247typedef ex (* power_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
248typedef ex (* series_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
249typedef void (* print_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
250typedef bool (* info_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
251typedef ex (* eval_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
252typedef ex (* evalf_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
253typedef ex (* conjugate_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
254typedef ex (* real_part_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
255typedef ex (* imag_part_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
256typedef ex (* expand_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
257typedef ex (* derivative_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
258typedef ex (* expl_derivative_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
259typedef ex (* power_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
260typedef ex (* series_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
261typedef void (* print_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
262typedef bool (* info_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
263typedef ex (* eval_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
264typedef ex (* evalf_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
265typedef ex (* conjugate_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
266typedef ex (* real_part_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
267typedef ex (* imag_part_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
268typedef ex (* expand_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
269typedef ex (* derivative_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
270typedef ex (* expl_derivative_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
271typedef ex (* power_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
272typedef ex (* series_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
273typedef void (* print_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
274typedef bool (* info_funcp_11)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
275typedef ex (* eval_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
276typedef ex (* evalf_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
277typedef ex (* conjugate_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
278typedef ex (* real_part_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
279typedef ex (* imag_part_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
280typedef ex (* expand_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
281typedef ex (* derivative_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
282typedef ex (* expl_derivative_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
283typedef ex (* power_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
284typedef ex (* series_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
285typedef void (* print_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
286typedef bool (* info_funcp_12)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
287typedef ex (* eval_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
288typedef ex (* evalf_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
289typedef ex (* conjugate_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
290typedef ex (* real_part_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
291typedef ex (* imag_part_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
292typedef ex (* expand_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
293typedef ex (* derivative_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
294typedef ex (* expl_derivative_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
295typedef ex (* power_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
296typedef ex (* series_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
297typedef void (* print_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
298typedef bool (* info_funcp_13)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
299typedef ex (* eval_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
300typedef ex (* evalf_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
301typedef ex (* conjugate_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
302typedef ex (* real_part_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
303typedef ex (* imag_part_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
304typedef ex (* expand_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
305typedef ex (* derivative_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
306typedef ex (* expl_derivative_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
307typedef ex (* power_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
308typedef ex (* series_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
309typedef void (* print_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
310typedef bool (* info_funcp_14)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
311// end of generated lines
312
313// Alternatively, an exvector may be passed into the static function, instead
314// of individual ex objects. Then, the number of arguments is not limited.
315typedef ex (* eval_funcp_exvector)(const exvector &);
316typedef ex (* evalf_funcp_exvector)(const exvector &);
320typedef ex (* expand_funcp_exvector)(const exvector &, unsigned);
321typedef ex (* derivative_funcp_exvector)(const exvector &, unsigned);
322typedef ex (* expl_derivative_funcp_exvector)(const exvector &, const symbol &);
323typedef ex (* power_funcp_exvector)(const exvector &, const ex &);
324typedef ex (* series_funcp_exvector)(const exvector &, const relational &, int, unsigned);
325typedef void (* print_funcp_exvector)(const exvector &, const print_context &);
326typedef bool (* info_funcp_exvector)(const exvector &, unsigned);
327
328
330{
331 friend class function;
332 friend class fderivative;
333public:
335 function_options(std::string const & n, std::string const & tn=std::string());
336 function_options(std::string const & n, unsigned np);
338 void initialize();
339
340 function_options & dummy() { return *this; }
341 function_options & set_name(std::string const & n, std::string const & tn=std::string());
342 function_options & latex_name(std::string const & tn);
343 // following lines have been generated for max. 14 parameters
509 template <class Ctx> function_options & print_func(print_funcp_1 p)
510 {
512 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
513 return *this;
514 }
515 template <class Ctx> function_options & print_func(print_funcp_2 p)
516 {
518 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
519 return *this;
520 }
521 template <class Ctx> function_options & print_func(print_funcp_3 p)
522 {
524 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
525 return *this;
526 }
527 template <class Ctx> function_options & print_func(print_funcp_4 p)
528 {
530 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
531 return *this;
532 }
533 template <class Ctx> function_options & print_func(print_funcp_5 p)
534 {
536 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
537 return *this;
538 }
539 template <class Ctx> function_options & print_func(print_funcp_6 p)
540 {
542 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
543 return *this;
544 }
545 template <class Ctx> function_options & print_func(print_funcp_7 p)
546 {
548 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
549 return *this;
550 }
551 template <class Ctx> function_options & print_func(print_funcp_8 p)
552 {
554 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
555 return *this;
556 }
557 template <class Ctx> function_options & print_func(print_funcp_9 p)
558 {
560 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
561 return *this;
562 }
564 {
566 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
567 return *this;
568 }
570 {
572 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
573 return *this;
574 }
576 {
578 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
579 return *this;
580 }
582 {
584 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
585 return *this;
586 }
588 {
590 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
591 return *this;
592 }
593 // end of generated lines
594
596 {
598 set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
599 return *this;
600 }
601
602 function_options & set_return_type(unsigned rt, const return_type_t* rtt = nullptr);
604 function_options & remember(unsigned size, unsigned assoc_size=0,
605 unsigned strategy=remember_strategies::delete_never);
606 function_options & overloaded(unsigned o);
608
609 std::string get_name() const { return name; }
610 unsigned get_nparams() const { return nparams; }
611
612protected:
613 bool has_derivative() const { return derivative_f != nullptr; }
614 bool has_power() const { return power_f != nullptr; }
615 void test_and_set_nparams(unsigned n);
616 void set_print_func(unsigned id, print_funcp f);
617
618 std::string name;
619 std::string TeX_name;
620
621 unsigned nparams;
622
633 std::vector<print_funcp> print_dispatch_table;
635
637
639 unsigned return_type;
641
646
659
661
663};
664
665
668class do_taylor {};
669
670
673class function : public exprseq
674{
676
678
679// member functions
680
681 // other constructors
682public:
683 function(unsigned ser);
684 // the following lines have been generated for max. 14 parameters
685 function(unsigned ser, const ex & param1);
686 function(unsigned ser, const ex & param1, const ex & param2);
687 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3);
688 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4);
689 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5);
690 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5, const ex & param6);
691 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5, const ex & param6, const ex & param7);
692 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5, const ex & param6, const ex & param7, const ex & param8);
693 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5, const ex & param6, const ex & param7, const ex & param8, const ex & param9);
694 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5, const ex & param6, const ex & param7, const ex & param8, const ex & param9, const ex & param10);
695 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5, const ex & param6, const ex & param7, const ex & param8, const ex & param9, const ex & param10, const ex & param11);
696 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5, const ex & param6, const ex & param7, const ex & param8, const ex & param9, const ex & param10, const ex & param11, const ex & param12);
697 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5, const ex & param6, const ex & param7, const ex & param8, const ex & param9, const ex & param10, const ex & param11, const ex & param12, const ex & param13);
698 function(unsigned ser, const ex & param1, const ex & param2, const ex & param3, const ex & param4, const ex & param5, const ex & param6, const ex & param7, const ex & param8, const ex & param9, const ex & param10, const ex & param11, const ex & param12, const ex & param13, const ex & param14);
699 // end of generated lines
700 function(unsigned ser, const exprseq & es);
701 function(unsigned ser, const exvector & v);
702 function(unsigned ser, exvector && v);
703
704 // functions overriding virtual functions from base classes
705public:
706 void print(const print_context & c, unsigned level = 0) const override;
707 unsigned precedence() const override {return 70;}
708 ex expand(unsigned options=0) const override;
709 ex eval() const override;
710 ex evalf() const override;
711 ex eval_ncmul(const exvector & v) const override;
712 unsigned calchash() const override;
713 ex series(const relational & r, int order, unsigned options = 0) const override;
714 ex thiscontainer(const exvector & v) const override;
715 ex thiscontainer(exvector && v) const override;
716 ex conjugate() const override;
717 ex real_part() const override;
718 ex imag_part() const override;
719 void archive(archive_node& n) const override;
720 void read_archive(const archive_node& n, lst& syms) override;
721 bool info(unsigned inf) const override;
722protected:
723 ex derivative(const symbol & s) const override;
724 bool is_equal_same_type(const basic & other) const override;
725 bool match_same_type(const basic & other) const override;
726 unsigned return_type() const override;
727 return_type_t return_type_tinfo() const override;
728
729 // new virtual functions which can be overridden by derived classes
730 // none
731
732 // non-virtual functions in this class
733protected:
734 ex pderivative(unsigned diff_param) const; // partial differentiation
735 ex expl_derivative(const symbol & s) const; // partial differentiation
736 static std::vector<function_options> & registered_functions();
737 bool lookup_remember_table(ex & result) const;
738 void store_remember_table(ex const & result) const;
739public:
740 ex power(const ex & exp) const;
741 static unsigned register_new(function_options const & opt);
742 static unsigned current_serial;
743 static unsigned find_function(const std::string &name, unsigned nparams);
744 static std::vector<function_options> get_registered_functions() { return registered_functions(); };
745 unsigned get_serial() const {return serial;}
746 std::string get_name() const;
747
748// member variables
749
750protected:
751 unsigned serial;
752};
754
755// utility functions/macros
756
757template <typename T>
758inline bool is_the_function(const ex & x)
759{
760 return is_exactly_a<function>(x)
761 && ex_to<function>(x).get_serial() == T::serial;
762}
763
764// Check whether OBJ is the specified symbolic function.
765#define is_ex_the_function(OBJ, FUNCNAME) (GiNaC::is_the_function<FUNCNAME##_SERIAL>(OBJ))
766
767} // namespace GiNaC
768
769#endif // ndef GINAC_FUNCTION_H
770
This class stores all properties needed to record/retrieve the state of one object of class basic (or...
Definition: archive.h:49
This class is the ABC (abstract base class) of GiNaC's class hierarchy.
Definition: basic.h:105
Wrapper template for making GiNaC classes out of STL containers.
Definition: container.h:73
Exception class thrown by classes which provide their own series expansion to signal that ordinary Ta...
Definition: function.h:668
Lightweight wrapper for GiNaC's symbolic objects.
Definition: ex.h:72
This class represents the (abstract) derivative of a symbolic function.
Definition: fderivative.h:38
function_options & info_func(info_funcp_1 e)
Definition: function.cpp:960
function_options & overloaded(unsigned o)
Definition: function.cpp:1143
bool real_part_use_exvector_args
Definition: function.h:650
function_options & set_name(std::string const &n, std::string const &tn=std::string())
Definition: function.cpp:102
function_options & set_symmetry(const symmetry &s)
Definition: function.cpp:1149
function_options & print_func(print_funcp_5 p)
Definition: function.h:533
expl_derivative_funcp expl_derivative_f
Definition: function.h:630
bool conjugate_use_exvector_args
Definition: function.h:649
function_options & print_func(print_funcp_12 p)
Definition: function.h:575
std::vector< print_funcp > print_dispatch_table
Definition: function.h:633
std::string get_name() const
Definition: function.h:609
unsigned functions_with_same_name
Definition: function.h:660
conjugate_funcp conjugate_f
Definition: function.h:625
function_options & set_return_type(unsigned rt, const return_type_t *rtt=nullptr)
Definition: function.cpp:1115
function_options & remember(unsigned size, unsigned assoc_size=0, unsigned strategy=remember_strategies::delete_never)
Definition: function.cpp:1132
function_options & print_func(print_funcp_4 p)
Definition: function.h:527
function_options & print_func(print_funcp_14 p)
Definition: function.h:587
bool has_power() const
Definition: function.h:614
function_options & eval_func(eval_funcp_1 e)
Definition: function.cpp:120
function_options & power_func(power_funcp_1 e)
Definition: function.cpp:792
unsigned remember_assoc_size
Definition: function.h:644
function_options & evalf_func(evalf_funcp_1 e)
Definition: function.cpp:204
function_options & conjugate_func(conjugate_funcp_1 e)
Definition: function.cpp:288
function_options & real_part_func(real_part_funcp_1 e)
Definition: function.cpp:372
function_options & print_func(print_funcp_6 p)
Definition: function.h:539
function_options & print_func(print_funcp_1 p)
Definition: function.h:509
bool has_derivative() const
Definition: function.h:613
return_type_t return_type_tinfo
Definition: function.h:640
void test_and_set_nparams(unsigned n)
Definition: function.cpp:1155
bool derivative_use_exvector_args
Definition: function.h:653
imag_part_funcp imag_part_f
Definition: function.h:627
power_funcp power_f
Definition: function.h:631
unsigned remember_strategy
Definition: function.h:645
void set_print_func(unsigned id, print_funcp f)
Definition: function.cpp:1169
function_options & print_func(print_funcp_13 p)
Definition: function.h:581
function_options & print_func(print_funcp_3 p)
Definition: function.h:521
function_options & dummy()
Definition: function.h:340
std::string TeX_name
Definition: function.h:619
bool imag_part_use_exvector_args
Definition: function.h:651
real_part_funcp real_part_f
Definition: function.h:626
function_options & expand_func(expand_funcp_1 e)
Definition: function.cpp:540
series_funcp series_f
Definition: function.h:632
function_options & print_func(print_funcp_7 p)
Definition: function.h:545
function_options & expl_derivative_func(expl_derivative_funcp_1 e)
Definition: function.cpp:708
function_options & do_not_evalf_params()
Definition: function.cpp:1126
bool expl_derivative_use_exvector_args
Definition: function.h:654
function_options & print_func(print_funcp_8 p)
Definition: function.h:551
unsigned get_nparams() const
Definition: function.h:610
function_options & print_func(print_funcp_9 p)
Definition: function.h:557
function_options & latex_name(std::string const &tn)
Definition: function.cpp:113
derivative_funcp derivative_f
Definition: function.h:629
function_options & series_func(series_funcp_1 e)
Definition: function.cpp:876
function_options & imag_part_func(imag_part_funcp_1 e)
Definition: function.cpp:456
evalf_funcp evalf_f
Definition: function.h:624
expand_funcp expand_f
Definition: function.h:628
function_options & print_func(print_funcp_exvector p)
Definition: function.h:595
function_options & print_func(print_funcp_11 p)
Definition: function.h:569
function_options & derivative_func(derivative_funcp_1 e)
Definition: function.cpp:624
function_options & print_func(print_funcp_10 p)
Definition: function.h:563
function_options & print_func(print_funcp_2 p)
Definition: function.h:515
The class function is used to implement builtin functions like sin, cos... and user defined functions...
Definition: function.h:674
bool match_same_type(const basic &other) const override
Returns true if the attributes of two objects are similar enough for a match.
Definition: function.cpp:1978
unsigned calchash() const override
Compute the hash value of an object and if it makes sense to store it in the objects status_flags,...
Definition: function.cpp:1584
return_type_t return_type_tinfo() const override
Definition: function.cpp:2004
void store_remember_table(ex const &result) const
Definition: function.cpp:2236
ex imag_part() const override
Implementation of ex::imag_part for functions.
Definition: function.cpp:1831
ex evalf() const override
Evaluate object numerically.
Definition: function.cpp:1517
ex eval_ncmul(const exvector &v) const override
This method is defined to be in line with behavior of function::return_type()
Definition: function.cpp:1577
static std::vector< function_options > get_registered_functions()
Definition: function.h:744
ex power(const ex &exp) const
Definition: function.cpp:2128
ex derivative(const symbol &s) const override
Implementation of ex::diff() for functions.
Definition: function.cpp:1931
ex thiscontainer(const exvector &v) const override
Definition: function.cpp:1599
bool is_equal_same_type(const basic &other) const override
Returns true if two objects of same type are equal.
Definition: function.cpp:1967
bool info(unsigned inf) const override
Implementation of ex::info for functions.
Definition: function.cpp:1878
std::string get_name() const
Return the print name of the function.
Definition: function.cpp:2284
static unsigned register_new(function_options const &opt)
Definition: function.cpp:2243
unsigned serial
Definition: function.h:751
bool lookup_remember_table(ex &result) const
Definition: function.cpp:2231
unsigned get_serial() const
Definition: function.h:745
static unsigned find_function(const std::string &name, unsigned nparams)
Find serial number of function by name and number of parameters.
Definition: function.cpp:2272
ex series(const relational &r, int order, unsigned options=0) const override
Implementation of ex::series for functions.
Definition: function.cpp:1611
static std::vector< function_options > & registered_functions()
Definition: function.cpp:2225
ex eval() const override
Perform automatic non-interruptive term rewriting rules.
Definition: function.cpp:1428
ex real_part() const override
Implementation of ex::real_part for functions.
Definition: function.cpp:1784
static unsigned current_serial
This can be used as a hook for external applications.
Definition: function.h:742
ex conjugate() const override
Implementation of ex::conjugate for functions.
Definition: function.cpp:1735
ex expl_derivative(const symbol &s) const
Definition: function.cpp:2081
void print(const print_context &c, unsigned level=0) const override
Output to stream.
Definition: function.cpp:1320
void read_archive(const archive_node &n, lst &syms) override
Construct object from archive_node.
Definition: function.cpp:1283
ex expand(unsigned options=0) const override
Expand expression, i.e.
Definition: function.cpp:2175
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
Definition: function.h:707
unsigned return_type() const override
Definition: function.cpp:1986
void archive(archive_node &n) const override
Archive the object.
Definition: function.cpp:1305
ex pderivative(unsigned diff_param) const
Definition: function.cpp:2034
Base class for print_contexts.
Definition: print.h:103
This class holds a relation consisting of two expressions and a logical relation between them.
Definition: relational.h:35
@ delete_never
Let table grow undefinitely.
Definition: flags.h:291
A single entry in the remember table of a function.
Definition: remember.h:40
Basic CAS symbol.
Definition: symbol.h:39
This class describes the symmetry of a group of indices.
Definition: symmetry.h:39
Definition of GiNaC's exprseq.
unsigned options
Definition: factor.cpp:2475
size_t n
Definition: factor.cpp:1432
size_t c
Definition: factor.cpp:757
ex x
Definition: factor.cpp:1610
size_t r
Definition: factor.cpp:757
exset syms
Definition: factor.cpp:2429
int order
Definition: add.cpp:38
ex(* evalf_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:168
ex(* eval_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:215
ex(* expand_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:184
ex(* conjugate_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:169
void(* print_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:201
ex(* power_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:199
ex(* series_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:212
void(* print_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:261
ex(* series_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:248
bool(* info_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:310
bool is_the_function(const ex &x)
Definition: function.h:758
ex(* expl_derivative_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:282
ex(* power_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:211
ex(* expand_funcp_exvector)(const exvector &, unsigned)
Definition: function.h:320
ex(* derivative_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:257
ex(* imag_part_funcp_1)(const ex &)
Definition: function.h:147
ex(* real_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:182
ex(* eval_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:263
ex(* derivative_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:293
ex(* series_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:224
bool(* info_funcp_3)(const ex &, const ex &, const ex &, unsigned)
Definition: function.h:178
ex(* eval_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:227
bool(* info_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:202
ex(* eval_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:251
void(* print_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:213
ex(* expl_derivative_funcp_4)(const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:186
ex(* power_funcp_4)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:187
ex(* eval_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:191
ex(* conjugate_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:289
ex(* expand_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:232
ex(* conjugate_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:265
ex(* conjugate_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:217
ex(* power_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:307
ex(* evalf_funcp_1)(const ex &)
Definition: function.h:144
ex(* imag_part_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:291
bool(* info_funcp_2)(const ex &, const ex &, unsigned)
Definition: function.h:166
ex(* power_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:235
bool(* info_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:250
ex(* expl_derivative_funcp_1)(const ex &, const symbol &)
Definition: function.h:150
void(* print_funcp)()
Definition: function.h:139
ex(* conjugate_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:229
ex(* conjugate_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:193
ex(* eval_funcp_1)(const ex &)
Definition: function.h:143
bool(* info_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:214
bool(* info_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:298
bool(* info_funcp_exvector)(const exvector &, unsigned)
Definition: function.h:326
void(* print_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:225
ex(* evalf_funcp)()
Definition: function.h:130
ex(* expl_derivative_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:306
ex(* imag_part_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:303
ex(* power_funcp_1)(const ex &, const ex &)
Definition: function.h:151
ex(* evalf_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:192
ex(* eval_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:179
ex(* expand_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:268
ex(* power_funcp_2)(const ex &, const ex &, const ex &)
Definition: function.h:163
GINAC_DECLARE_UNARCHIVER(add)
ex(* imag_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:219
ex(* imag_part_funcp)()
Definition: function.h:133
ex(* expand_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:220
bool(* info_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:262
ex(* series_funcp_2)(const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:164
ex(* real_part_funcp_2)(const ex &, const ex &)
Definition: function.h:158
ex(* real_part_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:302
ex(* series_funcp)()
Definition: function.h:138
ex(* derivative_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:221
ex(* real_part_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:242
ex(* imag_part_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:195
ex(* eval_funcp_exvector)(const exvector &)
Definition: function.h:315
bool(* info_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:226
ex(* expl_derivative_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:222
ex(* derivative_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:233
ex(* real_part_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:290
ex(* expl_derivative_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:234
ex(* real_part_funcp_exvector)(const exvector &)
Definition: function.h:318
ex(* series_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:272
ex(* expl_derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:198
bool(* info_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:238
ex(* series_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:260
const numeric exp(const numeric &x)
Exponential function.
Definition: numeric.cpp:1439
ex(* imag_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:183
ex(* eval_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:299
ex(* derivative_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:281
ex(* imag_part_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:255
ex(* evalf_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:300
ex(* real_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:218
ex(* real_part_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:266
ex(* derivative_funcp_3)(const ex &, const ex &, const ex &, unsigned)
Definition: function.h:173
ex(* evalf_funcp_2)(const ex &, const ex &)
Definition: function.h:156
ex(* series_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:284
ex(* conjugate_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:181
ex(* expand_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:280
ex(* expand_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:304
ex(* expand_funcp_2)(const ex &, const ex &, unsigned)
Definition: function.h:160
ex(* eval_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:167
ex(* expand_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:256
ex(* real_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:206
ex(* real_part_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:278
ex(* real_part_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:254
void(* print_funcp_exvector)(const exvector &, const print_context &)
Definition: function.h:325
ex(* expl_derivative_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:270
ex(* evalf_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:276
ex(* derivative_funcp_exvector)(const exvector &, unsigned)
Definition: function.h:321
ex(* evalf_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:180
ex(* real_part_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:230
ex(* power_funcp)()
Definition: function.h:137
ex(* evalf_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:240
void(* print_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:309
ex(* conjugate_funcp_2)(const ex &, const ex &)
Definition: function.h:157
ex(* power_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:259
ex(* expl_derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:210
ex(* imag_part_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:267
ex(* expl_derivative_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:258
ex(* power_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:223
ex(* expl_derivative_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:294
void(* print_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:297
ex(* power_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:271
bool(* info_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:286
ex(* expand_funcp)()
Definition: function.h:134
ex(* series_funcp_1)(const ex &, const relational &, int, unsigned)
Definition: function.h:152
void(* print_funcp_1)(const ex &, const print_context &)
Definition: function.h:153
ex(* imag_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:207
ex(* derivative_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:305
ex(* imag_part_funcp_exvector)(const exvector &)
Definition: function.h:319
bool(* info_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:190
bool(* info_funcp_1)(const ex &, unsigned)
Definition: function.h:154
void(* print_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:237
ex(* eval_funcp_2)(const ex &, const ex &)
Definition: function.h:155
ex(* expl_derivative_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:246
ex(* derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:209
ex(* series_funcp_3)(const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:176
ex(* conjugate_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:241
ex(* imag_part_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:243
void(* print_funcp_2)(const ex &, const ex &, const print_context &)
Definition: function.h:165
ex(* expand_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:244
ex(* derivative_funcp_2)(const ex &, const ex &, unsigned)
Definition: function.h:161
ex(* expand_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:292
ex(* conjugate_funcp_exvector)(const exvector &)
Definition: function.h:317
ex(* series_funcp_4)(const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:188
ex(* real_part_funcp_1)(const ex &)
Definition: function.h:146
ex(* evalf_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:252
ex(* conjugate_funcp_1)(const ex &)
Definition: function.h:145
ex(* imag_part_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:279
ex(* expand_funcp_3)(const ex &, const ex &, const ex &, unsigned)
Definition: function.h:172
ex(* series_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:236
ex(* evalf_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:204
ex(* conjugate_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:205
bool(* info_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:274
ex(* eval_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:239
void(* print_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:273
ex(* evalf_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:288
ex(* imag_part_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:171
ex(* imag_part_funcp_2)(const ex &, const ex &)
Definition: function.h:159
ex(* evalf_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:264
bool(* info_funcp)()
Definition: function.h:140
ex(* eval_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:287
ex(* series_funcp_exvector)(const exvector &, const relational &, int, unsigned)
Definition: function.h:324
ex(* real_part_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:194
ex(* derivative_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:245
ex(* derivative_funcp)()
Definition: function.h:135
ex(* power_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:247
ex(* expl_derivative_funcp_exvector)(const exvector &, const symbol &)
Definition: function.h:322
ex(* series_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:308
ex(* conjugate_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:277
ex(* evalf_funcp_exvector)(const exvector &)
Definition: function.h:316
ex(* series_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:200
ex(* conjugate_funcp_14)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:301
ex(* conjugate_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:253
ex(* power_funcp_exvector)(const exvector &, const ex &)
Definition: function.h:323
ex(* expl_derivative_funcp)()
Definition: function.h:136
ex(* power_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:283
ex(* derivative_funcp_1)(const ex &, unsigned)
Definition: function.h:149
ex(* expl_derivative_funcp_2)(const ex &, const ex &, const symbol &)
Definition: function.h:162
ex(* eval_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:203
ex(* expand_funcp_1)(const ex &, unsigned)
Definition: function.h:148
void(* print_funcp_3)(const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:177
ex(* derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:197
void(* print_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:249
ex(* expand_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:208
void(* print_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:285
void(* print_funcp_4)(const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:189
ex(* eval_funcp)()
Definition: function.h:129
ex(* imag_part_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:231
ex(* eval_funcp_12)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:275
ex(* power_funcp_3)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:175
ex(* expand_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:196
ex(* real_part_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:170
ex(* expl_derivative_funcp_3)(const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:174
std::vector< ex > exvector
Definition: basic.h:48
ex(* derivative_funcp_11)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:269
ex(* real_part_funcp)()
Definition: function.h:132
ex(* evalf_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:228
ex(* derivative_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:185
ex(* series_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:296
ex(* evalf_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:216
ex(* conjugate_funcp)()
Definition: function.h:131
ex(* power_funcp_13)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:295
#define GINAC_DECLARE_REGISTERED_CLASS(classname, supername)
Macro for inclusion in the declaration of each registered class.
Definition: registrar.h:153
To distinguish between different kinds of non-commutative objects.
Definition: registrar.h:44

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