Unary Functions in an E-graph

Functions of one variable are special in numerics: thanks to equioscillation , unary functions can be approximated efficiently by polynomials. For this reason, it can be useful to rewrite functions of multiple variables so that you get large unary fragments. For example, log(exp(a) + exp(b)) can be rewritten to: a + log(1 + exp(b - a)) The fragment log(1 + exp(x)) is a unary function; if we call…