GiNaC  1.8.0
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-2020 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) \
35 class NAME##_SERIAL { public: static unsigned serial; }; \
36 const unsigned NAME##_NPARAMS = 1; \
37 template< 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) \
41 class NAME##_SERIAL { public: static unsigned serial; }; \
42 const unsigned NAME##_NPARAMS = 2; \
43 template< 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) \
47 class NAME##_SERIAL { public: static unsigned serial; }; \
48 const unsigned NAME##_NPARAMS = 3; \
49 template< 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) \
53 class NAME##_SERIAL { public: static unsigned serial; }; \
54 const unsigned NAME##_NPARAMS = 4; \
55 template< 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) \
59 class NAME##_SERIAL { public: static unsigned serial; }; \
60 const unsigned NAME##_NPARAMS = 5; \
61 template< 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) \
65 class NAME##_SERIAL { public: static unsigned serial; }; \
66 const unsigned NAME##_NPARAMS = 6; \
67 template< 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) \
71 class NAME##_SERIAL { public: static unsigned serial; }; \
72 const unsigned NAME##_NPARAMS = 7; \
73 template< 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) \
77 class NAME##_SERIAL { public: static unsigned serial; }; \
78 const unsigned NAME##_NPARAMS = 8; \
79 template< 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) \
83 class NAME##_SERIAL { public: static unsigned serial; }; \
84 const unsigned NAME##_NPARAMS = 9; \
85 template< 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) \
89 class NAME##_SERIAL { public: static unsigned serial; }; \
90 const unsigned NAME##_NPARAMS = 10; \
91 template< 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) \
95 class NAME##_SERIAL { public: static unsigned serial; }; \
96 const unsigned NAME##_NPARAMS = 11; \
97 template< 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) \
101 class NAME##_SERIAL { public: static unsigned serial; }; \
102 const unsigned NAME##_NPARAMS = 12; \
103 template< 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) \
107 class NAME##_SERIAL { public: static unsigned serial; }; \
108 const unsigned NAME##_NPARAMS = 13; \
109 template< 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) \
113 class NAME##_SERIAL { public: static unsigned serial; }; \
114 const unsigned NAME##_NPARAMS = 14; \
115 template< 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) \
121 unsigned NAME##_SERIAL::serial = \
122  GiNaC::function::register_new(GiNaC::function_options(#NAME, NAME##_NPARAMS).OPT);
123 
124 namespace GiNaC {
125 
126 class function;
127 class symmetry;
128 
129 typedef ex (* eval_funcp)();
130 typedef ex (* evalf_funcp)();
131 typedef ex (* conjugate_funcp)();
132 typedef ex (* real_part_funcp)();
133 typedef ex (* imag_part_funcp)();
134 typedef ex (* expand_funcp)();
135 typedef ex (* derivative_funcp)();
136 typedef ex (* expl_derivative_funcp)();
137 typedef ex (* power_funcp)();
138 typedef ex (* series_funcp)();
139 typedef void (* print_funcp)();
140 typedef bool (* info_funcp)();
141 
142 // the following lines have been generated for max. 14 parameters
143 typedef ex (* eval_funcp_1)( const ex & );
144 typedef ex (* evalf_funcp_1)( const ex & );
145 typedef ex (* conjugate_funcp_1)( const ex & );
146 typedef ex (* real_part_funcp_1)( const ex & );
147 typedef ex (* imag_part_funcp_1)( const ex & );
148 typedef ex (* expand_funcp_1)( const ex &, unsigned );
149 typedef ex (* derivative_funcp_1)( const ex &, unsigned );
150 typedef ex (* expl_derivative_funcp_1)( const ex &, const symbol & );
151 typedef ex (* power_funcp_1)( const ex &, const ex & );
152 typedef ex (* series_funcp_1)( const ex &, const relational &, int, unsigned );
153 typedef void (* print_funcp_1)( const ex &, const print_context & );
154 typedef bool (* info_funcp_1)( const ex &, unsigned );
155 typedef ex (* eval_funcp_2)( const ex &, const ex & );
156 typedef ex (* evalf_funcp_2)( const ex &, const ex & );
157 typedef ex (* conjugate_funcp_2)( const ex &, const ex & );
158 typedef ex (* real_part_funcp_2)( const ex &, const ex & );
159 typedef ex (* imag_part_funcp_2)( const ex &, const ex & );
160 typedef ex (* expand_funcp_2)( const ex &, const ex &, unsigned );
161 typedef ex (* derivative_funcp_2)( const ex &, const ex &, unsigned );
162 typedef ex (* expl_derivative_funcp_2)( const ex &, const ex &, const symbol & );
163 typedef ex (* power_funcp_2)( const ex &, const ex &, const ex & );
164 typedef ex (* series_funcp_2)( const ex &, const ex &, const relational &, int, unsigned );
165 typedef void (* print_funcp_2)( const ex &, const ex &, const print_context & );
166 typedef bool (* info_funcp_2)( const ex &, const ex &, unsigned );
167 typedef ex (* eval_funcp_3)( const ex &, const ex &, const ex & );
168 typedef ex (* evalf_funcp_3)( const ex &, const ex &, const ex & );
169 typedef ex (* conjugate_funcp_3)( const ex &, const ex &, const ex & );
170 typedef ex (* real_part_funcp_3)( const ex &, const ex &, const ex & );
171 typedef ex (* imag_part_funcp_3)( const ex &, const ex &, const ex & );
172 typedef ex (* expand_funcp_3)( const ex &, const ex &, const ex &, unsigned );
173 typedef ex (* derivative_funcp_3)( const ex &, const ex &, const ex &, unsigned );
174 typedef ex (* expl_derivative_funcp_3)( const ex &, const ex &, const ex &, const symbol & );
175 typedef ex (* power_funcp_3)( const ex &, const ex &, const ex &, const ex & );
176 typedef ex (* series_funcp_3)( const ex &, const ex &, const ex &, const relational &, int, unsigned );
177 typedef void (* print_funcp_3)( const ex &, const ex &, const ex &, const print_context & );
178 typedef bool (* info_funcp_3)( const ex &, const ex &, const ex &, unsigned );
179 typedef ex (* eval_funcp_4)( const ex &, const ex &, const ex &, const ex & );
180 typedef ex (* evalf_funcp_4)( const ex &, const ex &, const ex &, const ex & );
181 typedef ex (* conjugate_funcp_4)( const ex &, const ex &, const ex &, const ex & );
182 typedef ex (* real_part_funcp_4)( const ex &, const ex &, const ex &, const ex & );
183 typedef ex (* imag_part_funcp_4)( const ex &, const ex &, const ex &, const ex & );
184 typedef ex (* expand_funcp_4)( const ex &, const ex &, const ex &, const ex &, unsigned );
185 typedef ex (* derivative_funcp_4)( const ex &, const ex &, const ex &, const ex &, unsigned );
186 typedef ex (* expl_derivative_funcp_4)( const ex &, const ex &, const ex &, const ex &, const symbol & );
187 typedef ex (* power_funcp_4)( const ex &, const ex &, const ex &, const ex &, const ex & );
188 typedef ex (* series_funcp_4)( const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
189 typedef void (* print_funcp_4)( const ex &, const ex &, const ex &, const ex &, const print_context & );
190 typedef bool (* info_funcp_4)( const ex &, const ex &, const ex &, const ex &, unsigned );
191 typedef ex (* eval_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
192 typedef ex (* evalf_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
193 typedef ex (* conjugate_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
194 typedef ex (* real_part_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
195 typedef ex (* imag_part_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex & );
196 typedef ex (* expand_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
197 typedef ex (* derivative_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
198 typedef ex (* expl_derivative_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
199 typedef ex (* power_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
200 typedef ex (* series_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
201 typedef void (* print_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
202 typedef bool (* info_funcp_5)( const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
203 typedef ex (* eval_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
204 typedef ex (* evalf_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
205 typedef ex (* conjugate_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
206 typedef ex (* real_part_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
207 typedef ex (* imag_part_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
208 typedef ex (* expand_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
209 typedef ex (* derivative_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
210 typedef ex (* expl_derivative_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
211 typedef ex (* power_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
212 typedef ex (* series_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
213 typedef void (* print_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
214 typedef bool (* info_funcp_6)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
215 typedef ex (* eval_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
216 typedef ex (* evalf_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
217 typedef ex (* conjugate_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
218 typedef ex (* real_part_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
219 typedef ex (* imag_part_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
220 typedef ex (* expand_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
221 typedef ex (* derivative_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
222 typedef ex (* expl_derivative_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
223 typedef ex (* power_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
224 typedef ex (* series_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
225 typedef void (* print_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
226 typedef bool (* info_funcp_7)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
227 typedef ex (* eval_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
228 typedef ex (* evalf_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
229 typedef ex (* conjugate_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
230 typedef ex (* real_part_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
231 typedef ex (* imag_part_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
232 typedef ex (* expand_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
233 typedef ex (* derivative_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
234 typedef ex (* expl_derivative_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol & );
235 typedef ex (* power_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
236 typedef ex (* series_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned );
237 typedef void (* print_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context & );
238 typedef bool (* info_funcp_8)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
239 typedef ex (* eval_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
240 typedef ex (* evalf_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
241 typedef ex (* conjugate_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
242 typedef ex (* real_part_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
243 typedef ex (* imag_part_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
244 typedef ex (* expand_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
245 typedef ex (* derivative_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
246 typedef 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 & );
247 typedef ex (* power_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
248 typedef 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 );
249 typedef 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 & );
250 typedef bool (* info_funcp_9)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned );
251 typedef ex (* eval_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
252 typedef ex (* evalf_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
253 typedef ex (* conjugate_funcp_10)( const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex & );
254 typedef 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 & );
255 typedef 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 & );
256 typedef 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 );
257 typedef 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 );
258 typedef 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 & );
259 typedef 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 & );
260 typedef 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 );
261 typedef 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 & );
262 typedef 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 );
263 typedef 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 & );
264 typedef 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 & );
265 typedef 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 & );
266 typedef 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 & );
267 typedef 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 & );
268 typedef 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 );
269 typedef 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 );
270 typedef 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 & );
271 typedef 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 & );
272 typedef 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 );
273 typedef 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 & );
274 typedef 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 );
275 typedef 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 & );
276 typedef 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 & );
277 typedef 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 & );
278 typedef 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 & );
279 typedef 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 & );
280 typedef 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 );
281 typedef 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 );
282 typedef 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 & );
283 typedef 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 & );
284 typedef 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 );
285 typedef 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 & );
286 typedef 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 );
287 typedef 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 & );
288 typedef 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 & );
289 typedef 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 & );
290 typedef 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 & );
291 typedef 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 & );
292 typedef 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 );
293 typedef 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 );
294 typedef 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 & );
295 typedef 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 & );
296 typedef 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 );
297 typedef 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 & );
298 typedef 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 );
299 typedef 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 & );
300 typedef 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 & );
301 typedef 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 & );
302 typedef 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 & );
303 typedef 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 & );
304 typedef 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 );
305 typedef 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 );
306 typedef 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 & );
307 typedef 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 & );
308 typedef 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 );
309 typedef 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 & );
310 typedef 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.
315 typedef ex (* eval_funcp_exvector)(const exvector &);
316 typedef ex (* evalf_funcp_exvector)(const exvector &);
317 typedef ex (* conjugate_funcp_exvector)(const exvector &);
318 typedef ex (* real_part_funcp_exvector)(const exvector &);
319 typedef ex (* imag_part_funcp_exvector)(const exvector &);
320 typedef ex (* expand_funcp_exvector)(const exvector &, unsigned);
321 typedef ex (* derivative_funcp_exvector)(const exvector &, unsigned);
322 typedef ex (* expl_derivative_funcp_exvector)(const exvector &, const symbol &);
323 typedef ex (* power_funcp_exvector)(const exvector &, const ex &);
324 typedef ex (* series_funcp_exvector)(const exvector &, const relational &, int, unsigned);
325 typedef void (* print_funcp_exvector)(const exvector &, const print_context &);
326 typedef bool (* info_funcp_exvector)(const exvector &, unsigned);
327 
328 
330 {
331  friend class function;
332  friend class fderivative;
333 public:
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  }
563  template <class Ctx> function_options & print_func(print_funcp_10 p)
564  {
566  set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
567  return *this;
568  }
569  template <class Ctx> function_options & print_func(print_funcp_11 p)
570  {
572  set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
573  return *this;
574  }
575  template <class Ctx> function_options & print_func(print_funcp_12 p)
576  {
578  set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
579  return *this;
580  }
581  template <class Ctx> function_options & print_func(print_funcp_13 p)
582  {
584  set_print_func(Ctx::get_class_info_static().options.get_id(), print_funcp(p));
585  return *this;
586  }
587  template <class Ctx> function_options & print_func(print_funcp_14 p)
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 
612 protected:
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 
643  unsigned remember_size;
646 
659 
661 
663 };
664 
665 
668 class do_taylor {};
669 
670 
673 class function : public exprseq
674 {
676 
677  friend class remember_table_entry;
678 
679 // member functions
680 
681  // other constructors
682 public:
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
705 public:
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;
722 protected:
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
733 protected:
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;
739 public:
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 
750 protected:
751  unsigned serial;
752 };
753 GINAC_DECLARE_UNARCHIVER(function);
754 
755 // utility functions/macros
756 
757 template <typename T>
758 inline 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 
ex imag_part() const override
Implementation of ex::imag_part for functions.
Definition: function.cpp:1831
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(* 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
series_funcp series_f
Definition: function.h:632
function_options & print_func(print_funcp_3 p)
Definition: function.h:521
const numeric exp(const numeric &x)
Exponential function.
Definition: numeric.cpp:1439
ex(* evalf_funcp_2)(const ex &, const ex &)
Definition: function.h:156
ex(* conjugate_funcp)()
Definition: function.h:131
Exception class thrown by classes which provide their own series expansion to signal that ordinary Ta...
Definition: function.h:668
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(* series_funcp_2)(const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:164
ex(* derivative_funcp_exvector)(const exvector &, unsigned)
Definition: function.h:321
ex(* expl_derivative_funcp_2)(const ex &, const ex &, const symbol &)
Definition: function.h:162
ex(* eval_funcp)()
Definition: function.h:129
ex(* eval_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:167
ex(* series_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:212
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
function_options & print_func(print_funcp_11 p)
Definition: function.h:569
ex(* derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:209
This class represents the (abstract) derivative of a symbolic function.
Definition: fderivative.h:37
ex(* conjugate_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:181
ex(* eval_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:179
ex(* expl_derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:210
This class describes the symmetry of a group of indices.
Definition: symmetry.h:38
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
function_options & set_symmetry(const symmetry &s)
Definition: function.cpp:1149
std::string get_name() const
Return the print name of the function.
Definition: function.cpp:2284
exset syms
Definition: factor.cpp:2434
function_options & expl_derivative_func(expl_derivative_funcp_1 e)
Definition: function.cpp:708
ex(* expl_derivative_funcp_exvector)(const exvector &, const symbol &)
Definition: function.h:322
ex derivative(const symbol &s) const override
Implementation of ex::diff() for functions.
Definition: function.cpp:1931
ex(* imag_part_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:195
ex(* conjugate_funcp_exvector)(const exvector &)
Definition: function.h:317
ex(* expl_derivative_funcp)()
Definition: function.h:136
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_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
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(* 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(* 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_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
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
imag_part_funcp imag_part_f
Definition: function.h:627
ex(* expl_derivative_funcp_3)(const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:174
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(* power_funcp_3)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:175
function_options & print_func(print_funcp_7 p)
Definition: function.h:545
ex(* eval_funcp_2)(const ex &, const ex &)
Definition: function.h:155
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(* evalf_funcp)()
Definition: function.h:130
ex(* conjugate_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:169
ex(* expl_derivative_funcp_4)(const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:186
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 is_equal_same_type(const basic &other) const override
Returns true if two objects of same type are equal.
Definition: function.cpp:1967
ex(* conjugate_funcp_2)(const ex &, const ex &)
Definition: function.h:157
ex(* expand_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:184
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
Definition: add.cpp:38
ex(* eval_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:191
ex(* eval_funcp_1)(const ex &)
Definition: function.h:143
return_type_t return_type_tinfo
Definition: function.h:640
void(* print_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:213
ex real_part() const override
Implementation of ex::real_part for functions.
Definition: function.cpp:1784
ex(* evalf_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:168
ex(* power_funcp)()
Definition: function.h:137
Let table grow undefinitely.
Definition: flags.h:291
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 thiscontainer(const exvector &v) const override
Definition: function.cpp:1599
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
This class holds a relation consisting of two expressions and a logical relation between them...
Definition: relational.h:34
std::string get_name() const
Definition: function.h:609
ex(* series_funcp_4)(const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:188
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
void print(const print_context &c, unsigned level=0) const override
Output to stream.
Definition: function.cpp:1320
ex(* derivative_funcp)()
Definition: function.h:135
ex(* expl_derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
Definition: function.h:198
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(* imag_part_funcp_exvector)(const exvector &)
Definition: function.h:319
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
function_options & real_part_func(real_part_funcp_1 e)
Definition: function.cpp:372
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(* power_funcp_2)(const ex &, const ex &, const ex &)
Definition: function.h:163
ex(* imag_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:207
ex(* power_funcp_1)(const ex &, const ex &)
Definition: function.h:151
ex(* expand_funcp_1)(const ex &, unsigned)
Definition: function.h:148
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
This class is the ABC (abstract base class) of GiNaC&#39;s class hierarchy.
Definition: basic.h:104
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
void set_print_func(unsigned id, print_funcp f)
Definition: function.cpp:1169
function_options & print_func(print_funcp_12 p)
Definition: function.h:575
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(* 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(* imag_part_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:171
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
function_options & conjugate_func(conjugate_funcp_1 e)
Definition: function.cpp:288
ex x
Definition: factor.cpp:1641
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(* conjugate_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:217
void(* print_funcp_2)(const ex &, const ex &, const print_context &)
Definition: function.h:165
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_exvector)(const exvector &, const ex &)
Definition: function.h:323
ex(* power_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:211
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(* 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(* 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(* 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
function_options & print_func(print_funcp_8 p)
Definition: function.h:551
void archive(archive_node &n) const override
Archive the object.
Definition: function.cpp:1305
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(* 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
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
ex(* series_funcp)()
Definition: function.h:138
size_t r
Definition: factor.cpp:770
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 eval() const override
Perform automatic non-interruptive term rewriting rules.
Definition: function.cpp:1428
bool(* info_funcp_3)(const ex &, const ex &, const ex &, unsigned)
Definition: function.h:178
ex(* expl_derivative_funcp_1)(const ex &, const symbol &)
Definition: function.h:150
static std::vector< function_options > get_registered_functions()
Definition: function.h:744
ex(* evalf_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:192
ex(* series_funcp_exvector)(const exvector &, const relational &, int, unsigned)
Definition: function.h:324
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(* real_part_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:194
ex(* real_part_funcp_exvector)(const exvector &)
Definition: function.h:318
function_options & evalf_func(evalf_funcp_1 e)
Definition: function.cpp:204
function_options & latex_name(std::string const &tn)
Definition: function.cpp:113
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(* 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
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(* real_part_funcp_2)(const ex &, const ex &)
Definition: function.h:158
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(* eval_funcp_exvector)(const exvector &)
Definition: function.h:315
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
ex(* expand_funcp_2)(const ex &, const ex &, unsigned)
Definition: function.h:160
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(* eval_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:215
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_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:190
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
function_options & series_func(series_funcp_1 e)
Definition: function.cpp:876
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
derivative_funcp derivative_f
Definition: function.h:629
function_options & print_func(print_funcp_5 p)
Definition: function.h:533
ex(* real_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:218
bool expl_derivative_use_exvector_args
Definition: function.h:654
ex(* series_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:200
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(* 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
void store_remember_table(ex const &result) const
Definition: function.cpp:2236
ex(* expand_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:208
unsigned options
Definition: factor.cpp:2480
void(* print_funcp_exvector)(const exvector &, const print_context &)
Definition: function.h:325
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
ex evalf() const override
Evaluate object numerically.
Definition: function.cpp:1517
bool is_the_function(const ex &x)
Definition: function.h:758
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(* 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
void(* print_funcp)()
Definition: function.h:139
bool info(unsigned inf) const override
Implementation of ex::info for functions.
Definition: function.cpp:1878
ex(* imag_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:219
function_options & expand_func(expand_funcp_1 e)
Definition: function.cpp:540
ex power(const ex &exp) const
Definition: function.cpp:2128
ex(* series_funcp_3)(const ex &, const ex &, const ex &, const relational &, int, unsigned)
Definition: function.h:176
bool(* info_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:226
unsigned get_serial() const
Definition: function.h:745
function_options & print_func(print_funcp_4 p)
Definition: function.h:527
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
ex series(const relational &r, int order, unsigned options=0) const override
Implementation of ex::series for functions.
Definition: function.cpp:1611
unsigned functions_with_same_name
Definition: function.h:660
unsigned return_type() const override
Definition: function.cpp:1986
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(* 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
static std::vector< function_options > & registered_functions()
Definition: function.cpp:2225
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(* expand_funcp_3)(const ex &, const ex &, const ex &, unsigned)
Definition: function.h:172
function_options & print_func(print_funcp_10 p)
Definition: function.h:563
bool imag_part_use_exvector_args
Definition: function.h:651
To distinguish between different kinds of non-commutative objects.
Definition: registrar.h:43
ex(* derivative_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:185
function_options & print_func(print_funcp_14 p)
Definition: function.h:587
function_options & dummy()
Definition: function.h:340
ex(* evalf_funcp_exvector)(const exvector &)
Definition: function.h:316
ex(* real_part_funcp)()
Definition: function.h:132
ex(* imag_part_funcp_1)(const ex &)
Definition: function.h:147
Definition of GiNaC&#39;s exprseq.
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(* expand_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:196
std::vector< ex > exvector
Definition: basic.h:46
ex(* conjugate_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:193
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
function_options & derivative_func(derivative_funcp_1 e)
Definition: function.cpp:624
ex(* real_part_funcp_3)(const ex &, const ex &, const ex &)
Definition: function.h:170
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(* 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_exvector)(const exvector &, unsigned)
Definition: function.h:326
bool lookup_remember_table(ex &result) const
Definition: function.cpp:2231
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
expand_funcp expand_f
Definition: function.h:628
ex(* power_funcp_4)(const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:187
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
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
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(* 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
unsigned serial
Definition: function.h:751
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
bool derivative_use_exvector_args
Definition: function.h:653
real_part_funcp real_part_f
Definition: function.h:626
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
function_options & print_func(print_funcp_6 p)
Definition: function.h:539
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
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
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 pderivative(unsigned diff_param) const
Definition: function.cpp:2034
evalf_funcp evalf_f
Definition: function.h:624
function_options & print_func(print_funcp_exvector p)
Definition: function.h:595
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
bool has_power() const
Definition: function.h:614
size_t n
Definition: factor.cpp:1463
Base class for print_contexts.
Definition: print.h:102
static unsigned current_serial
This can be used as a hook for external applications.
Definition: function.h:742
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(* derivative_funcp_1)(const ex &, unsigned)
Definition: function.h:149
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
void(* print_funcp_3)(const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:177
ex(* real_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:182
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
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(* real_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:206
bool(* info_funcp_2)(const ex &, const ex &, unsigned)
Definition: function.h:166
ex(* conjugate_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:205
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
void read_archive(const archive_node &n, lst &syms) override
Construct object from archive_node.
Definition: function.cpp:1283
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
bool(* info_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:214
A single entry in the remember table of a function.
Definition: remember.h:40
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_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:241
function_options & info_func(info_funcp_1 e)
Definition: function.cpp:960
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
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
Definition: function.h:707
ex(* evalf_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:180
ex(* derivative_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:221
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
function_options & eval_func(eval_funcp_1 e)
Definition: function.cpp:120
This class stores all properties needed to record/retrieve the state of one object of class basic (or...
Definition: archive.h:48
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
Lightweight wrapper for GiNaC&#39;s symbolic objects.
Definition: ex.h:72
std::string TeX_name
Definition: function.h:619
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(* 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(* 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(* 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(* 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
power_funcp power_f
Definition: function.h:631
function_options & print_func(print_funcp_9 p)
Definition: function.h:557
ex(* expand_funcp_exvector)(const exvector &, unsigned)
Definition: function.h:320
void(* print_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:201
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
int order
function_options & power_func(power_funcp_1 e)
Definition: function.cpp:792
Basic CAS symbol.
Definition: symbol.h:38
ex(* series_funcp_1)(const ex &, const relational &, int, unsigned)
Definition: function.h:152
std::vector< print_funcp > print_dispatch_table
Definition: function.h:633
ex(* evalf_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:216
Wrapper template for making GiNaC classes out of STL containers.
Definition: container.h:73
ex(* eval_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:203
#define GINAC_DECLARE_REGISTERED_CLASS(classname, supername)
Macro for inclusion in the declaration of each registered class.
Definition: registrar.h:153
bool conjugate_use_exvector_args
Definition: function.h:649
ex(* power_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:199
ex(* derivative_funcp_3)(const ex &, const ex &, const ex &, unsigned)
Definition: function.h:173
function_options & print_func(print_funcp_2 p)
Definition: function.h:515
function_options & overloaded(unsigned o)
Definition: function.cpp:1143
ex(* conjugate_funcp_1)(const ex &)
Definition: function.h:145
ex(* evalf_funcp_1)(const ex &)
Definition: function.h:144
function_options & imag_part_func(imag_part_funcp_1 e)
Definition: function.cpp:456
unsigned get_nparams() const
Definition: function.h:610
conjugate_funcp conjugate_f
Definition: function.h:625
ex(* derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:197
ex(* imag_part_funcp)()
Definition: function.h:133
function_options & remember(unsigned size, unsigned assoc_size=0, unsigned strategy=remember_strategies::delete_never)
Definition: function.cpp:1132
bool(* info_funcp_1)(const ex &, unsigned)
Definition: function.h:154
ex(* derivative_funcp_2)(const ex &, const ex &, unsigned)
Definition: function.h:161
GINAC_DECLARE_UNARCHIVER(add)
unsigned remember_strategy
Definition: function.h:645
bool has_derivative() const
Definition: function.h:613
void(* print_funcp_4)(const ex &, const ex &, const ex &, const ex &, const print_context &)
Definition: function.h:189
return_type_t return_type_tinfo() const override
Definition: function.cpp:2004
bool(* info_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:202
ex(* expand_funcp)()
Definition: function.h:134
ex(* expand_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
Definition: function.h:220
expl_derivative_funcp expl_derivative_f
Definition: function.h:630
size_t c
Definition: factor.cpp:770
The class function is used to implement builtin functions like sin, cos...
Definition: function.h:673
function_options & print_func(print_funcp_1 p)
Definition: function.h:509
ex expand(unsigned options=0) const override
Expand expression, i.e.
Definition: function.cpp:2175
ex conjugate() const override
Implementation of ex::conjugate for functions.
Definition: function.cpp:1735
function_options & set_return_type(unsigned rt, const return_type_t *rtt=nullptr)
Definition: function.cpp:1115
function_options & do_not_evalf_params()
Definition: function.cpp:1126
ex(* imag_part_funcp_2)(const ex &, const ex &)
Definition: function.h:159
bool real_part_use_exvector_args
Definition: function.h:650
unsigned remember_assoc_size
Definition: function.h:644
ex(* real_part_funcp_1)(const ex &)
Definition: function.h:146
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
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
void(* print_funcp_1)(const ex &, const print_context &)
Definition: function.h:153
static unsigned register_new(function_options const &opt)
Definition: function.cpp:2243
ex(* imag_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
Definition: function.h:183
ex(* evalf_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Definition: function.h:204
function_options & set_name(std::string const &n, std::string const &tn=std::string())
Definition: function.cpp:102
void test_and_set_nparams(unsigned n)
Definition: function.cpp:1155
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
ex expl_derivative(const symbol &s) const
Definition: function.cpp:2081
bool(* info_funcp)()
Definition: function.h:140
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
function_options & print_func(print_funcp_13 p)
Definition: function.h:581

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