]> www.ginac.de Git - ginac.git/blobdiff - ginac/relational.cpp
subs() and normal() use maps instead of lists, resulting in a huge performance
[ginac.git] / ginac / relational.cpp
index c45dd1efc7b23683b00a5c493bf93a2da8ae7fa0..453b4c00a9b18b278db2f830eac5d2e8f758d1bd 100644 (file)
@@ -178,15 +178,15 @@ ex relational::eval(int level) const
        return (new relational(lh.eval(level-1),rh.eval(level-1),o))->setflag(status_flags::dynallocated | status_flags::evaluated);
 }
 
        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, unsigned options) const
+ex relational::subs(const exmap & m, unsigned options) const
 {
 {
-       const ex & subsed_lh = lh.subs(ls, lr, options);
-       const ex & subsed_rh = rh.subs(ls, lr, options);
+       const ex & subsed_lh = lh.subs(m, options);
+       const ex & subsed_rh = rh.subs(m, options);
 
        if (!are_ex_trivially_equal(lh, subsed_lh) || !are_ex_trivially_equal(rh, subsed_rh))
 
        if (!are_ex_trivially_equal(lh, subsed_lh) || !are_ex_trivially_equal(rh, subsed_rh))
-               return relational(subsed_lh, subsed_rh, o).subs_one_level(ls, lr, options);
+               return relational(subsed_lh, subsed_rh, o).subs_one_level(m, options);
        else
        else
-               return subs_one_level(ls, lr, options);
+               return subs_one_level(m, options);
 }
 
 ex relational::eval_ncmul(const exvector & v) const
 }
 
 ex relational::eval_ncmul(const exvector & v) const