26 #ifndef GINAC_FUNCTION_H 27 #define GINAC_FUNCTION_H 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 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) ); \ 120 #define REGISTER_FUNCTION(NAME,OPT) \ 121 unsigned NAME##_SERIAL::serial = \ 122 GiNaC::function::register_new(GiNaC::function_options(#NAME, NAME##_NPARAMS).OPT); 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 );
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 );
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 );
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);
721 bool info(
unsigned inf)
const override;
743 static unsigned find_function(
const std::string &name,
unsigned nparams);
757 template <
typename T>
760 return is_exactly_a<function>(
x)
761 && ex_to<function>(
x).get_serial() == T::serial;
765 #define is_ex_the_function(OBJ, FUNCNAME) (GiNaC::is_the_function<FUNCNAME##_SERIAL>(OBJ)) 769 #endif // ndef GINAC_FUNCTION_H ex imag_part() const override
Implementation of ex::imag_part for functions.
ex(* imag_part_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
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 &)
function_options & print_func(print_funcp_3 p)
const numeric exp(const numeric &x)
Exponential function.
ex(* evalf_funcp_2)(const ex &, const ex &)
Exception class thrown by classes which provide their own series expansion to signal that ordinary Ta...
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)
ex(* series_funcp_2)(const ex &, const ex &, const relational &, int, unsigned)
ex(* derivative_funcp_exvector)(const exvector &, unsigned)
ex(* expl_derivative_funcp_2)(const ex &, const ex &, const symbol &)
ex(* eval_funcp_3)(const ex &, const ex &, const ex &)
ex(* series_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
bool(* info_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
function_options & print_func(print_funcp_11 p)
ex(* derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
This class represents the (abstract) derivative of a symbolic function.
ex(* conjugate_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* expl_derivative_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
This class describes the symmetry of a group of indices.
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 &)
function_options & set_symmetry(const symmetry &s)
std::string get_name() const
Return the print name of the function.
function_options & expl_derivative_func(expl_derivative_funcp_1 e)
ex(* expl_derivative_funcp_exvector)(const exvector &, const symbol &)
ex derivative(const symbol &s) const override
Implementation of ex::diff() for functions.
ex(* imag_part_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* conjugate_funcp_exvector)(const exvector &)
ex(* expl_derivative_funcp)()
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 &)
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)
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)
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)
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)
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 &)
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 &)
imag_part_funcp imag_part_f
ex(* expl_derivative_funcp_3)(const ex &, const ex &, const ex &, const symbol &)
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 &)
ex(* power_funcp_3)(const ex &, const ex &, const ex &, const ex &)
function_options & print_func(print_funcp_7 p)
ex(* eval_funcp_2)(const ex &, const ex &)
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 &)
ex(* conjugate_funcp_3)(const ex &, const ex &, const ex &)
ex(* expl_derivative_funcp_4)(const ex &, const ex &, const ex &, const ex &, const symbol &)
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)
bool is_equal_same_type(const basic &other) const override
Returns true if two objects of same type are equal.
ex(* conjugate_funcp_2)(const ex &, const ex &)
ex(* expand_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
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 &)
ex(* eval_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_1)(const ex &)
return_type_t return_type_tinfo
void(* print_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex real_part() const override
Implementation of ex::real_part for functions.
ex(* evalf_funcp_3)(const ex &, const ex &, const ex &)
Let table grow undefinitely.
ex(* conjugate_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex thiscontainer(const exvector &v) const override
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)
This class holds a relation consisting of two expressions and a logical relation between them...
std::string get_name() const
ex(* series_funcp_4)(const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
ex(* expl_derivative_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
void print(const print_context &c, unsigned level=0) const override
Output to stream.
ex(* expl_derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
ex(* evalf_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* imag_part_funcp_exvector)(const exvector &)
ex(* derivative_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
function_options & real_part_func(real_part_funcp_1 e)
ex(* evalf_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* power_funcp_2)(const ex &, const ex &, const ex &)
ex(* imag_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* power_funcp_1)(const ex &, const ex &)
ex(* expand_funcp_1)(const ex &, unsigned)
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 &)
This class is the ABC (abstract base class) of GiNaC's class hierarchy.
static unsigned find_function(const std::string &name, unsigned nparams)
Find serial number of function by name and number of parameters.
void set_print_func(unsigned id, print_funcp f)
function_options & print_func(print_funcp_12 p)
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)
ex(* derivative_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* imag_part_funcp_3)(const ex &, const ex &, const ex &)
ex(* series_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
function_options & conjugate_func(conjugate_funcp_1 e)
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 &)
bool print_use_exvector_args
ex(* conjugate_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
void(* print_funcp_2)(const ex &, const ex &, const print_context &)
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 &)
ex(* power_funcp_exvector)(const exvector &, const ex &)
ex(* power_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
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 &)
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)
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)
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)
bool eval_use_exvector_args
function_options & print_func(print_funcp_8 p)
void archive(archive_node &n) const override
Archive the object.
ex(* power_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
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)
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 &)
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 &)
ex eval() const override
Perform automatic non-interruptive term rewriting rules.
bool(* info_funcp_3)(const ex &, const ex &, const ex &, unsigned)
ex(* expl_derivative_funcp_1)(const ex &, const symbol &)
static std::vector< function_options > get_registered_functions()
ex(* evalf_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* series_funcp_exvector)(const exvector &, const relational &, int, unsigned)
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 &)
ex(* real_part_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* real_part_funcp_exvector)(const exvector &)
function_options & evalf_func(evalf_funcp_1 e)
function_options & latex_name(std::string const &tn)
ex(* series_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
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)
bool(* info_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* real_part_funcp_2)(const ex &, const ex &)
ex(* real_part_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_exvector)(const exvector &)
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 &)
ex(* expand_funcp_2)(const ex &, const ex &, unsigned)
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 &)
ex(* eval_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool(* info_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
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 &)
function_options & series_func(series_funcp_1 e)
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 &)
derivative_funcp derivative_f
function_options & print_func(print_funcp_5 p)
ex(* real_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool expl_derivative_use_exvector_args
ex(* series_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const relational &, int, unsigned)
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 &)
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 &)
void store_remember_table(ex const &result) const
ex(* expand_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
void(* print_funcp_exvector)(const exvector &, const print_context &)
ex(* eval_funcp_10)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex evalf() const override
Evaluate object numerically.
bool is_the_function(const ex &x)
ex(* power_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
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 &)
bool info(unsigned inf) const override
Implementation of ex::info for functions.
ex(* imag_part_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
function_options & expand_func(expand_funcp_1 e)
ex power(const ex &exp) const
ex(* series_funcp_3)(const ex &, const ex &, const ex &, const relational &, int, unsigned)
bool(* info_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
unsigned get_serial() const
function_options & print_func(print_funcp_4 p)
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)
ex series(const relational &r, int order, unsigned options=0) const override
Implementation of ex::series for functions.
unsigned functions_with_same_name
unsigned return_type() const override
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 &)
ex(* evalf_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
static std::vector< function_options > & registered_functions()
ex(* expand_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* expand_funcp_3)(const ex &, const ex &, const ex &, unsigned)
function_options & print_func(print_funcp_10 p)
bool imag_part_use_exvector_args
To distinguish between different kinds of non-commutative objects.
ex(* derivative_funcp_4)(const ex &, const ex &, const ex &, const ex &, unsigned)
function_options & print_func(print_funcp_14 p)
function_options & dummy()
ex(* evalf_funcp_exvector)(const exvector &)
ex(* imag_part_funcp_1)(const ex &)
Definition of GiNaC'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 &)
ex(* expand_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
std::vector< ex > exvector
ex(* conjugate_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* real_part_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
function_options & derivative_func(derivative_funcp_1 e)
ex(* real_part_funcp_3)(const ex &, const ex &, const ex &)
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 &)
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 &)
bool(* info_funcp_exvector)(const exvector &, unsigned)
bool lookup_remember_table(ex &result) const
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 &)
ex(* power_funcp_4)(const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* eval_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
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)
void(* print_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
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 &)
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)
bool derivative_use_exvector_args
real_part_funcp real_part_f
void(* print_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
function_options & print_func(print_funcp_6 p)
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 &)
unsigned calchash() const override
Compute the hash value of an object and if it makes sense to store it in the objects status_flags...
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)
ex pderivative(unsigned diff_param) const
function_options & print_func(print_funcp_exvector p)
bool info_use_exvector_args
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 &)
Base class for print_contexts.
static unsigned current_serial
This can be used as a hook for external applications.
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)
ex(* derivative_funcp_1)(const ex &, unsigned)
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 &)
void(* print_funcp_3)(const ex &, const ex &, const ex &, const print_context &)
ex(* real_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
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 &)
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)
ex(* real_part_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
bool(* info_funcp_2)(const ex &, const ex &, unsigned)
ex(* conjugate_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
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 &)
void read_archive(const archive_node &n, lst &syms) override
Construct object from archive_node.
ex eval_ncmul(const exvector &v) const override
This method is defined to be in line with behavior of function::return_type()
bool(* info_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
A single entry in the remember table of a function.
ex(* conjugate_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* conjugate_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
function_options & info_func(info_funcp_1 e)
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 &)
unsigned precedence() const override
Return relative operator precedence (for parenthezing output).
ex(* evalf_funcp_4)(const ex &, const ex &, const ex &, const ex &)
bool expand_use_exvector_args
ex(* derivative_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
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 &)
function_options & eval_func(eval_funcp_1 e)
This class stores all properties needed to record/retrieve the state of one object of class basic (or...
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)
Lightweight wrapper for GiNaC's symbolic objects.
ex(* expl_derivative_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const symbol &)
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 &)
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 &)
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 &)
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 &)
function_options & print_func(print_funcp_9 p)
ex(* expand_funcp_exvector)(const exvector &, unsigned)
void(* print_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const print_context &)
ex(* imag_part_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
function_options & power_func(power_funcp_1 e)
bool evalf_use_exvector_args
ex(* series_funcp_1)(const ex &, const relational &, int, unsigned)
std::vector< print_funcp > print_dispatch_table
ex(* evalf_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
Wrapper template for making GiNaC classes out of STL containers.
ex(* eval_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
#define GINAC_DECLARE_REGISTERED_CLASS(classname, supername)
Macro for inclusion in the declaration of each registered class.
bool conjugate_use_exvector_args
ex(* power_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
ex(* derivative_funcp_3)(const ex &, const ex &, const ex &, unsigned)
function_options & print_func(print_funcp_2 p)
function_options & overloaded(unsigned o)
ex(* conjugate_funcp_1)(const ex &)
ex(* evalf_funcp_1)(const ex &)
bool series_use_exvector_args
function_options & imag_part_func(imag_part_funcp_1 e)
unsigned get_nparams() const
conjugate_funcp conjugate_f
ex(* derivative_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
function_options & remember(unsigned size, unsigned assoc_size=0, unsigned strategy=remember_strategies::delete_never)
bool(* info_funcp_1)(const ex &, unsigned)
ex(* derivative_funcp_2)(const ex &, const ex &, unsigned)
GINAC_DECLARE_UNARCHIVER(add)
unsigned remember_strategy
bool has_derivative() const
void(* print_funcp_4)(const ex &, const ex &, const ex &, const ex &, const print_context &)
return_type_t return_type_tinfo() const override
bool(* info_funcp_5)(const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
ex(* expand_funcp_7)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
expl_derivative_funcp expl_derivative_f
The class function is used to implement builtin functions like sin, cos...
function_options & print_func(print_funcp_1 p)
ex expand(unsigned options=0) const override
Expand expression, i.e.
ex conjugate() const override
Implementation of ex::conjugate for functions.
function_options & set_return_type(unsigned rt, const return_type_t *rtt=nullptr)
function_options & do_not_evalf_params()
ex(* imag_part_funcp_2)(const ex &, const ex &)
bool real_part_use_exvector_args
unsigned remember_assoc_size
ex(* real_part_funcp_1)(const ex &)
bool power_use_exvector_args
ex(* power_funcp_8)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
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)
void(* print_funcp_1)(const ex &, const print_context &)
static unsigned register_new(function_options const &opt)
ex(* imag_part_funcp_4)(const ex &, const ex &, const ex &, const ex &)
ex(* evalf_funcp_6)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &)
function_options & set_name(std::string const &n, std::string const &tn=std::string())
void test_and_set_nparams(unsigned n)
bool match_same_type(const basic &other) const override
Returns true if the attributes of two objects are similar enough for a match.
ex expl_derivative(const symbol &s) const
ex(* expand_funcp_9)(const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, const ex &, unsigned)
function_options & print_func(print_funcp_13 p)