From 90cec97dc7de15159ce50bbcc95fdff5179bad48 Mon Sep 17 00:00:00 2001 From: Richard Kreckel Date: Thu, 14 Apr 2016 21:29:37 +0200 Subject: [PATCH] Add fderivative::derivatives() method. --- NEWS | 1 + ginac/fderivative.cpp | 16 ++++++++++++++++ ginac/fderivative.h | 2 ++ 3 files changed, 19 insertions(+) diff --git a/NEWS b/NEWS index aa6d33c7..fba9480f 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,7 @@ This file records noteworthy changes. modeled after the .eval() methods. * Make relational::rhs() and lhs() nonvirtual. * Add support for power::info(info_flags::real). +* Add fderivative::derivatives() method. * Remove broken info_flags::algebraic. * Remove unmaintained support for Cint. * Remove unfinished andcode for hash table-based expairseq. diff --git a/ginac/fderivative.cpp b/ginac/fderivative.cpp index 9e3c981a..2ce60fb3 100644 --- a/ginac/fderivative.cpp +++ b/ginac/fderivative.cpp @@ -215,4 +215,20 @@ bool fderivative::match_same_type(const basic & other) const return parameter_set == o.parameter_set && inherited::match_same_type(other); } +/** Expose this object's derivative structure. + * + * Parameter numbers occurring more than once stand for repeated + * differentiation with respect to that parameter. If a symbolic function + * f(x,y) is differentiated with respect to x, this method will return {0}. + * If f(x,y) is differentiated twice with respect to y, it will return {1,1}. + * (This corresponds to the way this object is printed.) + * + * @return multiset of function's parameter numbers that are abstractly + * differentiated. */ +const paramset& fderivative::derivatives() const +{ + return parameter_set; +} + + } // namespace GiNaC diff --git a/ginac/fderivative.h b/ginac/fderivative.h index 70f65ec4..fe7abe81 100644 --- a/ginac/fderivative.h +++ b/ginac/fderivative.h @@ -72,6 +72,8 @@ protected: bool match_same_type(const basic & other) const override; // non-virtual functions in this class +public: + const paramset& derivatives() const; protected: void do_print(const print_context & c, unsigned level) const; void do_print_csrc(const print_csrc & c, unsigned level) const; -- 2.44.0