From 008e74ae1e063538c7f1c1338b110849d79b10db Mon Sep 17 00:00:00 2001 From: Jens Vollinga Date: Wed, 11 Jul 2007 18:43:22 +0000 Subject: [PATCH] Correct csrc output for fderivative [Grabner]. --- ginac/fderivative.cpp | 15 ++++++++++++++- ginac/fderivative.h | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ginac/fderivative.cpp b/ginac/fderivative.cpp index 48a8e75f..d2070272 100644 --- a/ginac/fderivative.cpp +++ b/ginac/fderivative.cpp @@ -31,6 +31,7 @@ namespace GiNaC { GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(fderivative, function, print_func(&fderivative::do_print). + print_func(&fderivative::do_print_csrc). print_func(&fderivative::do_print_tree)) ////////// @@ -106,12 +107,24 @@ void fderivative::do_print(const print_context & c, unsigned level) const c.s << "D["; paramset::const_iterator i = parameter_set.begin(), end = parameter_set.end(); --end; - while (i != end) + while (i != end) { c.s << *i++ << ","; + } c.s << *i << "](" << registered_functions()[serial].name << ")"; printseq(c, '(', ',', ')', exprseq::precedence(), function::precedence()); } +void fderivative::do_print_csrc(const print_csrc & c, unsigned level) const +{ + c.s << "D_"; + paramset::const_iterator i = parameter_set.begin(), end = parameter_set.end(); + --end; + while (i != end) + c.s << *i++ << "_"; + c.s << *i << "_" << registered_functions()[serial].name; + printseq(c, '(', ',', ')', exprseq::precedence(), function::precedence()); +} + void fderivative::do_print_tree(const print_tree & c, unsigned level) const { c.s << std::string(level, ' ') << class_name() << " " diff --git a/ginac/fderivative.h b/ginac/fderivative.h index bc2eb916..904538bb 100644 --- a/ginac/fderivative.h +++ b/ginac/fderivative.h @@ -74,6 +74,7 @@ protected: // non-virtual functions in this class protected: void do_print(const print_context & c, unsigned level) const; + void do_print_csrc(const print_csrc & c, unsigned level) const; void do_print_tree(const print_tree & c, unsigned level) const; // member variables -- 2.44.0