]> www.ginac.de Git - ginac.git/blobdiff - ginac/pseries.cpp
Fixed compile bug caused by "missing" config.h.
[ginac.git] / ginac / pseries.cpp
index bc04b1868a73663ff0dd3983df25a521133c9798..d416b3500ca11dbe9bb60fb121043e042df62669 100644 (file)
@@ -4,7 +4,7 @@
  *  methods for series expansion. */
 
 /*
- *  GiNaC Copyright (C) 1999-2004 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2005 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
@@ -18,7 +18,7 @@
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <numeric>
@@ -1100,12 +1100,12 @@ ex integral::series(const relational & r, int order, unsigned options) const
        fexpansion.reserve(fseries.nops());
        for (size_t i=0; i<fseries.nops(); ++i) {
                ex currcoeff = ex_to<pseries>(fseries).coeffop(i);
-               fexpansion.push_back(expair(
-                       currcoeff == Order(_ex1)
-                               ? currcoeff
-                               : integral(x, a.subs(r), b.subs(r), currcoeff),
-                       ex_to<pseries>(fseries).exponop(i)
-               ));
+               currcoeff = (currcoeff == Order(_ex1))
+                       ? currcoeff
+                       : integral(x, a.subs(r), b.subs(r), currcoeff);
+               if (currcoeff != 0)
+                       fexpansion.push_back(
+                               expair(currcoeff, ex_to<pseries>(fseries).exponop(i)));
        }
 
        // Expanding lower boundary
@@ -1118,7 +1118,7 @@ ex integral::series(const relational & r, int order, unsigned options) const
                        break;
                ex currexpon = ex_to<pseries>(fseries).exponop(i);
                int orderforf = order-ex_to<numeric>(currexpon).to_int()-1;
-               currcoeff=currcoeff.series(r, orderforf);
+               currcoeff = currcoeff.series(r, orderforf);
                ex term = ex_to<pseries>(aseries).power_const(ex_to<numeric>(currexpon+1),order);
                term = ex_to<pseries>(term).mul_const(ex_to<numeric>(-1/(currexpon+1)));
                term = ex_to<pseries>(term).mul_series(ex_to<pseries>(currcoeff));
@@ -1134,7 +1134,7 @@ ex integral::series(const relational & r, int order, unsigned options) const
                        break;
                ex currexpon = ex_to<pseries>(fseries).exponop(i);
                int orderforf = order-ex_to<numeric>(currexpon).to_int()-1;
-               currcoeff=currcoeff.series(r, orderforf);
+               currcoeff = currcoeff.series(r, orderforf);
                ex term = ex_to<pseries>(bseries).power_const(ex_to<numeric>(currexpon+1),order);
                term = ex_to<pseries>(term).mul_const(ex_to<numeric>(1/(currexpon+1)));
                term = ex_to<pseries>(term).mul_series(ex_to<pseries>(currcoeff));