From: Richard Kreckel Date: Sat, 23 Sep 2000 21:36:50 +0000 (+0000) Subject: - pseries::print(): did not insert parenthesis when needed for precedence. X-Git-Tag: release_0-7-0~28 X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=commitdiff_plain;h=81efb5392132944d3649351b1efc5dac1a2625b1 - pseries::print(): did not insert parenthesis when needed for precedence. - pseries::precedence: was missing (thus being inherited from basic). - add::print(): was not honoring upper_precedence for rest. --- diff --git a/ginac/add.cpp b/ginac/add.cpp index 7cb4876d..d999a100 100644 --- a/ginac/add.cpp +++ b/ginac/add.cpp @@ -220,7 +220,7 @@ void add::print(std::ostream & os, unsigned upper_precedence) const } os << '*'; } - os << cit->rest; + cit->rest.print(os, precedence); } if (precedence<=upper_precedence) os << ")"; } diff --git a/ginac/pseries.cpp b/ginac/pseries.cpp index 9dc0921e..bed134ed 100644 --- a/ginac/pseries.cpp +++ b/ginac/pseries.cpp @@ -163,6 +163,7 @@ basic *pseries::duplicate() const void pseries::print(std::ostream &os, unsigned upper_precedence) const { debugmsg("pseries print", LOGLEVEL_PRINT); + if (precedence<=upper_precedence) os << "("; for (epvector::const_iterator i=seq.begin(); i!=seq.end(); ++i) { // omit zero terms if (i->rest.is_zero()) @@ -196,6 +197,7 @@ void pseries::print(std::ostream &os, unsigned upper_precedence) const os << Order(power(var-point,i->coeff)); } } + if (precedence<=upper_precedence) os << ")"; } @@ -891,8 +893,18 @@ ex ex::series(const ex & r, int order, unsigned options) const return e; } +////////// +// static member variables +////////// + +// protected + +unsigned pseries::precedence = 38; // for clarity just below add::precedence + +////////// +// global constants +////////// -// Global constants const pseries some_pseries; const std::type_info & typeid_pseries = typeid(some_pseries); diff --git a/ginac/pseries.h b/ginac/pseries.h index cdae3caa..0ddb590f 100644 --- a/ginac/pseries.h +++ b/ginac/pseries.h @@ -95,6 +95,7 @@ protected: /** Expansion point */ ex point; + static unsigned precedence; }; // global constants