X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fnormal.cpp;h=f57e4f0dbb60b31c3fc7bb053b905881ffee24f2;hp=0ee26ad5d0f86365742230fed8a9aa51d6b3b7cf;hb=14405559f3674c95cae22c5238730c375bc965e4;hpb=15d4b353c85f8815a95d97ab977c9ca48e155574 diff --git a/ginac/normal.cpp b/ginac/normal.cpp index 0ee26ad5..f57e4f0d 100644 --- a/ginac/normal.cpp +++ b/ginac/normal.cpp @@ -43,7 +43,7 @@ #include "numeric.h" #include "power.h" #include "relational.h" -#include "series.h" +#include "pseries.h" #include "symbol.h" #include "utils.h" @@ -190,27 +190,56 @@ static numeric lcmcoeff(const ex &e, const numeric &l) { if (e.info(info_flags::rational)) return lcm(ex_to_numeric(e).denom(), l); - else if (is_ex_exactly_of_type(e, add) || is_ex_exactly_of_type(e, mul)) { + else if (is_ex_exactly_of_type(e, add)) { numeric c = _num1(); for (unsigned i=0; i a.nops()) + goto factored_b; +factored_a: + ex g = _ex1(); + ex acc_ca = _ex1(); + ex part_b = b; + for (int i=0; i b.nops()) + goto factored_a; +factored_b: + ex g = _ex1(); + ex acc_cb = _ex1(); + ex part_a = a; + for (int i=0; i