X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fpseries.cpp;h=37f295894077d96ca7552b7f3c639ee48f2004ed;hp=d7f784760be6f2b43f2ccc1f0da325e1fcd55dde;hb=591b85b0697370f2f5f25a29a1e94ff831a02c12;hpb=aa9b384d38753c424beb00d74a7889d75bfeb2b9 diff --git a/ginac/pseries.cpp b/ginac/pseries.cpp index d7f78476..37f29589 100644 --- a/ginac/pseries.cpp +++ b/ginac/pseries.cpp @@ -263,7 +263,7 @@ int pseries::degree(const ex &s) const if (var.is_equal(s)) { // Return last exponent if (seq.size()) - return ex_to_numeric((*(seq.end() - 1)).coeff).to_int(); + return ex_to((*(seq.end() - 1)).coeff).to_int(); else return 0; } else { @@ -291,7 +291,7 @@ int pseries::ldegree(const ex &s) const if (var.is_equal(s)) { // Return first exponent if (seq.size()) - return ex_to_numeric((*(seq.begin())).coeff).to_int(); + return ex_to((*(seq.begin())).coeff).to_int(); else return 0; } else { @@ -328,7 +328,7 @@ ex pseries::coeff(const ex &s, int n) const while (lo <= hi) { int mid = (lo + hi) / 2; GINAC_ASSERT(is_ex_exactly_of_type(seq[mid].coeff, numeric)); - int cmp = ex_to_numeric(seq[mid].coeff).compare(looking_for); + int cmp = ex_to(seq[mid].coeff).compare(looking_for); switch (cmp) { case -1: lo = mid + 1; @@ -566,7 +566,7 @@ ex pseries::add_series(const pseries &other) const } break; } else - pow_a = ex_to_numeric((*a).coeff).to_int(); + pow_a = ex_to((*a).coeff).to_int(); // If b is empty, fill up with elements from a and stop if (b == b_end) { @@ -576,7 +576,7 @@ ex pseries::add_series(const pseries &other) const } break; } else - pow_b = ex_to_numeric((*b).coeff).to_int(); + pow_b = ex_to((*b).coeff).to_int(); // a and b are non-empty, compare powers if (pow_a < pow_b) { @@ -629,10 +629,10 @@ ex add::series(const relational & r, int order, unsigned options) const else op = it->rest.series(r, order, options); if (!it->coeff.is_equal(_ex1())) - op = ex_to_pseries(op).mul_const(ex_to_numeric(it->coeff)); + op = ex_to(op).mul_const(ex_to(it->coeff)); // Series addition - acc = ex_to_pseries(acc).add_series(ex_to_pseries(op)); + acc = ex_to(acc).add_series(ex_to(op)); } return acc; } @@ -731,15 +731,15 @@ ex mul::series(const relational & r, int order, unsigned options) const if (op.info(info_flags::numeric)) { // series * const (special case, faster) ex f = power(op, it->coeff); - acc = ex_to_pseries(acc).mul_const(ex_to_numeric(f)); + acc = ex_to(acc).mul_const(ex_to(f)); continue; } else if (!is_ex_exactly_of_type(op, pseries)) op = op.series(r, order, options); if (!it->coeff.is_equal(_ex1())) - op = ex_to_pseries(op).power_const(ex_to_numeric(it->coeff), order); + op = ex_to(op).power_const(ex_to(it->coeff), order); // Series multiplication - acc = ex_to_pseries(acc).mul_series(ex_to_pseries(op)); + acc = ex_to(acc).mul_series(ex_to(op)); } return acc; } @@ -862,7 +862,7 @@ ex power::series(const relational & r, int order, unsigned options) const } // Power e - return ex_to_pseries(e).power_const(ex_to_numeric(exponent), order); + return ex_to(e).power_const(ex_to(exponent), order); } @@ -880,7 +880,7 @@ ex pseries::series(const relational & r, int order, unsigned options) const epvector new_seq; epvector::const_iterator it = seq.begin(), itend = seq.end(); while (it != itend) { - int o = ex_to_numeric(it->coeff).to_int(); + int o = ex_to(it->coeff).to_int(); if (o >= order) { new_seq.push_back(expair(Order(_ex1()), o)); break; @@ -911,7 +911,7 @@ ex ex::series(const ex & r, int order, unsigned options) const relational rel_; if (is_ex_exactly_of_type(r,relational)) - rel_ = ex_to_relational(r); + rel_ = ex_to(r); else if (is_ex_exactly_of_type(r,symbol)) rel_ = relational(r,_ex0()); else