]> www.ginac.de Git - ginac.git/blobdiff - ginac/pseries.cpp
- expairseq.cpp: moved expairseq::to_rational to...
[ginac.git] / ginac / pseries.cpp
index 035551d8889ab0f2bef95853d18bd8117c53dd70..268041325aebd1ce11cdff7e40bcfe5871e8df0a 100644 (file)
@@ -165,6 +165,9 @@ basic *pseries::duplicate() const
 void pseries::print(ostream &os, unsigned upper_precedence) const
 {
     debugmsg("pseries print", LOGLEVEL_PRINT);
+    // This could be made better, since series expansion at x==1 might print
+    // -1+2*x+Order((-1+x)^2) instead of 1+2*(-1+x)+Order((-1+x)^2), which is
+    // correct but can be rather confusing.
     convert_to_poly().print(os, upper_precedence);
 }
 
@@ -178,6 +181,23 @@ void pseries::printraw(ostream &os) const
        os << ")";
 }
 
+void pseries::printtree(ostream & os, unsigned indent) const
+{
+    debugmsg("pseries printtree",LOGLEVEL_PRINT);
+    os << string(indent,' ') << "pseries " 
+       << ", hash=" << hashvalue << " (0x" << hex << hashvalue << dec << ")"
+       << ", flags=" << flags << endl;
+    for (unsigned i=0; i<seq.size(); ++i) {
+        seq[i].rest.printtree(os,indent+delta_indent);
+        seq[i].coeff.printtree(os,indent+delta_indent);
+        if (i!=seq.size()-1) {
+            os << string(indent+delta_indent,' ') << "-----" << endl;
+        }
+    }
+    var.printtree(os, indent+delta_indent);
+    point.printtree(os, indent+delta_indent);
+}
+
 unsigned pseries::nops(void) const
 {
     return seq.size();