* This file was generated automatically from function.hppy.
* Please do not modify it directly, edit function.hppy instead!
*
- * GiNaC Copyright (C) 1999-2015 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2019 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include "exprseq.h"
-// CINT needs <algorithm> to work properly with <vector>
-#include <algorithm>
#include <string>
#include <vector>
typedef ex (* imag_part_funcp)();
typedef ex (* expand_funcp)();
typedef ex (* derivative_funcp)();
+typedef ex (* expl_derivative_funcp)();
typedef ex (* power_funcp)();
typedef ex (* series_funcp)();
typedef void (* print_funcp)();
typedef ex (* imag_part_funcp_@N@)( @args@ );
typedef ex (* expand_funcp_@N@)( @args@, unsigned );
typedef ex (* derivative_funcp_@N@)( @args@, unsigned );
+typedef ex (* expl_derivative_funcp_@N@)( @args@, const symbol & );
typedef ex (* power_funcp_@N@)( @args@, const ex & );
typedef ex (* series_funcp_@N@)( @args@, const relational &, int, unsigned );
typedef void (* print_funcp_@N@)( @args@, const print_context & );
---
typedef ex (* expand_funcp_exvector)(const exvector &, unsigned);
typedef ex (* derivative_funcp_exvector)(const exvector &, unsigned);
+typedef ex (* expl_derivative_funcp_exvector)(const exvector &, const symbol &);
typedef ex (* power_funcp_exvector)(const exvector &, const ex &);
typedef ex (* series_funcp_exvector)(const exvector &, const relational &, int, unsigned);
typedef void (* print_funcp_exvector)(const exvector &, const print_context &);
return *this;
}
- function_options & set_return_type(unsigned rt, const return_type_t* rtt = 0);
+ function_options & set_return_type(unsigned rt, const return_type_t* rtt = nullptr);
function_options & do_not_evalf_params();
function_options & remember(unsigned size, unsigned assoc_size=0,
unsigned strategy=remember_strategies::delete_never);
unsigned get_nparams() const { return nparams; }
protected:
- bool has_derivative() const { return derivative_f != NULL; }
- bool has_power() const { return power_f != NULL; }
+ bool has_derivative() const { return derivative_f != nullptr; }
+ bool has_power() const { return power_f != nullptr; }
void test_and_set_nparams(unsigned n);
void set_print_func(unsigned id, print_funcp f);
imag_part_funcp imag_part_f;
expand_funcp expand_f;
derivative_funcp derivative_f;
+ expl_derivative_funcp expl_derivative_f;
power_funcp power_f;
series_funcp series_f;
std::vector<print_funcp> print_dispatch_table;
bool imag_part_use_exvector_args;
bool expand_use_exvector_args;
bool derivative_use_exvector_args;
+ bool expl_derivative_use_exvector_args;
bool power_use_exvector_args;
bool series_use_exvector_args;
bool print_use_exvector_args;
---
// end of generated lines
function(unsigned ser, const exprseq & es);
- function(unsigned ser, const exvector & v, bool discardable = false);
- function(unsigned ser, std::auto_ptr<exvector> vp);
+ function(unsigned ser, const exvector & v);
+ function(unsigned ser, exvector && v);
// functions overriding virtual functions from base classes
public:
- void print(const print_context & c, unsigned level = 0) const;
- unsigned precedence() const {return 70;}
- ex expand(unsigned options=0) const;
- ex eval(int level=0) const;
- ex evalf(int level=0) const;
- ex eval_ncmul(const exvector & v) const;
- unsigned calchash() const;
- ex series(const relational & r, int order, unsigned options = 0) const;
- ex thiscontainer(const exvector & v) const;
- ex thiscontainer(std::auto_ptr<exvector> vp) const;
- ex conjugate() const;
- ex real_part() const;
- ex imag_part() const;
- void archive(archive_node& n) const;
- void read_archive(const archive_node& n, lst& syms);
- bool info(unsigned inf) const;
+ void print(const print_context & c, unsigned level = 0) const override;
+ unsigned precedence() const override {return 70;}
+ ex expand(unsigned options=0) const override;
+ ex eval() const override;
+ ex evalf() const override;
+ ex eval_ncmul(const exvector & v) const override;
+ unsigned calchash() const override;
+ ex series(const relational & r, int order, unsigned options = 0) const override;
+ ex thiscontainer(const exvector & v) const override;
+ ex thiscontainer(exvector && v) const override;
+ ex conjugate() const override;
+ ex real_part() const override;
+ ex imag_part() const override;
+ void archive(archive_node& n) const override;
+ void read_archive(const archive_node& n, lst& syms) override;
+ bool info(unsigned inf) const override;
protected:
- ex derivative(const symbol & s) const;
- bool is_equal_same_type(const basic & other) const;
- bool match_same_type(const basic & other) const;
- unsigned return_type() const;
- return_type_t return_type_tinfo() const;
+ ex derivative(const symbol & s) const override;
+ bool is_equal_same_type(const basic & other) const override;
+ bool match_same_type(const basic & other) const override;
+ unsigned return_type() const override;
+ return_type_t return_type_tinfo() const override;
// new virtual functions which can be overridden by derived classes
// none
// non-virtual functions in this class
protected:
ex pderivative(unsigned diff_param) const; // partial differentiation
+ ex expl_derivative(const symbol & s) const; // partial differentiation
static std::vector<function_options> & registered_functions();
bool lookup_remember_table(ex & result) const;
void store_remember_table(ex const & result) const;