From fe93a23731fc0296fdada1bb9024cc077d5073c5 Mon Sep 17 00:00:00 2001 From: Christian Bauer Date: Wed, 3 Sep 2003 18:18:34 +0000 Subject: [PATCH] minor optimizations to ex::subs() --- ginac/ex.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ginac/ex.cpp b/ginac/ex.cpp index 40a7de2f..dcfea388 100644 --- a/ginac/ex.cpp +++ b/ginac/ex.cpp @@ -147,10 +147,12 @@ ex ex::subs(const ex & e, unsigned options) const { if (e.info(info_flags::relation_equal)) { exmap m; - const ex & s = e.lhs(); - m.insert(std::make_pair(s, e.rhs())); + const ex & s = e.op(0); + m.insert(std::make_pair(s, e.op(1))); if (is_exactly_a(s) || is_exactly_a(s)) options |= subs_options::pattern_is_product; + else + options |= subs_options::pattern_is_not_product; return bp->subs(m, options); } else if (!e.info(info_flags::list)) throw(std::invalid_argument("basic::subs(ex): argument must be a list")); @@ -162,8 +164,8 @@ ex ex::subs(const ex & e, unsigned options) const ex r = *it; if (!r.info(info_flags::relation_equal)) throw(std::invalid_argument("basic::subs(ex): argument must be a list of equations")); - const ex & s = r.lhs(); - m.insert(std::make_pair(s, r.rhs())); + const ex & s = r.op(0); + m.insert(std::make_pair(s, r.op(1))); // Search for products and powers in the expressions to be substituted // (for an optimization in expairseq::subs()) -- 2.44.0