* Implementation of relations between expressions */
/*
- * GiNaC Copyright (C) 1999-2001 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2003 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
return (new relational(lh.eval(level-1),rh.eval(level-1),o))->setflag(status_flags::dynallocated | status_flags::evaluated);
}
+ex relational::subs(const lst & ls, const lst & lr, bool no_pattern) const
+{
+ const ex & subsed_lh = lh.subs(ls, lr, no_pattern);
+ const ex & subsed_rh = rh.subs(ls, lr, no_pattern);
+
+ if (!are_ex_trivially_equal(lh, subsed_lh) || !are_ex_trivially_equal(rh, subsed_rh))
+ return relational(subsed_lh, subsed_rh, o).basic::subs(ls, lr, no_pattern);
+ else
+ return basic::subs(ls, lr, no_pattern);
+}
+
ex relational::simplify_ncmul(const exvector & v) const
{
return lh.simplify_ncmul(v);