diff --git a/eo/contrib/mathsym/eo_interface/eoSymLambdaMutate.cpp b/eo/contrib/mathsym/eo_interface/eoSymLambdaMutate.cpp new file mode 100644 index 00000000..e7eeecf5 --- /dev/null +++ b/eo/contrib/mathsym/eo_interface/eoSymLambdaMutate.cpp @@ -0,0 +1,29 @@ +#include +#include "FunDef.h" +#include "NodeSelector.h" + +Sym compress(Sym sym, NodeSelector& sel) { + + return ::compress(sym); + + NodeSelector::NodeSelection s = sel.select_node(sym); + + Sym f = SymLambda( s.subtree()); + + if (f == s.subtree()) { return sym; } + + return insert_subtree(sym, s.idx(), f); +} + +extern Sym expand(Sym sym, NodeSelector& sel) { + + return ::expand_all(sym); + + NodeSelector::NodeSelection s = sel.select_node(sym); + + Sym f = SymUnlambda( s.subtree()); + + if (f == s.subtree()) { return sym; } + + return insert_subtree(sym, s.idx(), f); +}