* 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
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
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));
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));