def test_leadterm(): assert leadterm(Integer(1), x) == (1, 0) assert leadterm(-exp(1/x), x) == (-1, 0) assert leadterm(1/exp(-x + exp(-x)) - exp(x), x) == (-1, 0) assert leadterm((exp(1/x - exp(-x)) - exp(1/x))*exp(x), x) == (-exp(1/x), 0) # Gruntz: p51, 3.25 assert leadterm((log(exp(x) + x) - x)/log(exp(x) + log(x))*exp(x), x) == (1, 0) # Gruntz: p56, 3.27 assert mrv(exp(-x + exp(-x)*exp(-x*log(x))), x) == {exp(-x*log(x))} assert leadterm(exp(-x + exp(-x)*exp(-x*log(x))), x) == (exp(-x), 0)
def test_mrv_leadterm(): assert mrv_leadterm(Integer(1), x) == (1, 0) assert mrv_leadterm(-exp(1/x), x) == (-1, 0) assert mrv_leadterm(1/exp(-x + exp(-x)) - exp(x), x) == (-1, 0) assert mrv_leadterm( (exp(1/x - exp(-x)) - exp(1/x))*exp(x), x) == (-exp(1/x), 0) # Gruntz: p51, 3.25 assert mrv_leadterm((log(exp(x) + x) - x)/log(exp(x) + log(x))*exp(x), x) == \ (1, 0) # Gruntz: p56, 3.27 assert mrv(exp(-x + exp(-x)*exp(-x*log(x))), x) == {exp(-x*log(x))} assert mrv_leadterm(exp(-x + exp(-x)*exp(-x*log(x))), x) == (exp(-x), 0)
def test_rewrite(): assert rewrite(Integer(1), x, m) == (1, None) e = exp(x) assert rewrite(e, x, m) == (1/m, -x) e = exp(x**2) assert rewrite(e, x, m) == (1/m, -x**2) e = exp(x + 1/x) assert rewrite(e, x, m) == (1/m, -x - 1/x) e = 1/exp(-x + exp(-x)) - exp(x) assert rewrite(e, x, m) == (Add(-1/m, 1/(m*exp(m)), evaluate=False), -x) e = exp(x)*log(log(exp(x))) assert mrv(e, x) == {exp(x)} assert rewrite(e, x, m) == (1/m*log(x), -x) e = exp(-x + 1/x**2) - exp(x + 1/x) assert rewrite(e, x, m) == (Add(m, Mul(-1, exp(1/x + x**(-2))/m, evaluate=False), evaluate=False), -x + 1/x**2)
def test_mrv(): assert mrv(x, x) == {x} assert mrv(x + 1/x, x) == {x} assert mrv(x**2, x) == {x} assert mrv(log(x), x) == {x} assert mrv(exp(x), x) == {exp(x)} assert mrv(exp(-x), x) == {exp(-x)} assert mrv(exp(x**2), x) == {exp(x**2)} assert mrv(-exp(1/x), x) == {x} assert mrv(exp(x + 1/x), x) == {exp(x + 1/x)} assert mrv(exp(x + exp(-exp(x))), x) == {exp(-exp(x))} assert mrv(exp(x + exp(-x)), x) == {exp(x + exp(-x)), exp(-x)} assert mrv(exp(1/x + exp(-x)), x) == {exp(-x)} assert mrv(exp(x + exp(-x**2)), x) == {exp(-x**2)} assert mrv( exp(-x + 1/x**2) - exp(x + 1/x), x) == {exp(x + 1/x), exp(1/x**2 - x)} assert mrv(exp(x**2) + x*exp(x) + exp(x*log(log(x)))/x, x) == {exp(x**2)} assert mrv( exp(x)*(exp(1/x + exp(-x)) - exp(1/x)), x) == {exp(x), exp(-x)} assert mrv(log( x**2 + 2*exp(exp(3*x**3*log(x)))), x) == {exp(exp(3*x**3*log(x)))} assert mrv(log(x - log(x))/log(x), x) == {x} assert mrv( (exp(1/x - exp(-x)) - exp(1/x))*exp(x), x) == {exp(x), exp(-x)} assert mrv( 1/exp(-x + exp(-x)) - exp(x), x) == {exp(x), exp(-x), exp(x - exp(-x))} assert mrv(log(log(x*exp(x*exp(x)) + 1)), x) == {exp(x*exp(x))} assert mrv(exp(exp(log(log(x) + 1/x))), x) == {x} assert mrv((log(log(x) + log(log(x))) - log(log(x))) / log(log(x) + log(log(log(x))))*log(x), x) == {x} assert mrv(log(log(x*exp(x*exp(x)) + 1)) - exp(exp(log(log(x) + 1/x))), x) == \ {exp(x*exp(x))} # Gruntz: p47, 3.21 h = exp(-x/(1 + exp(-x))) e = Mul(exp(h), exp(-x/(1 + h)), exp(exp(-x + h)), Pow(h, -2, evaluate=False), evaluate=False) - exp(x) + x assert mrv(e, x) == {exp(-x + h), exp(-x/(1 + h)), h, exp(x), exp(-x)}
def test_mrv(): assert mrv(x, x) == {x} assert mrv(x + 1 / x, x) == {x} assert mrv(x**2, x) == {x} assert mrv(log(x), x) == {x} assert mrv(exp(x), x) == {exp(x)} assert mrv(exp(-x), x) == {exp(-x)} assert mrv(exp(x**2), x) == {exp(x**2)} assert mrv(-exp(1 / x), x) == {x} assert mrv(exp(x + 1 / x), x) == {exp(x + 1 / x)} assert mrv(exp(x + exp(-exp(x))), x) == {exp(-exp(x))} assert mrv(exp(x + exp(-x)), x) == {exp(x + exp(-x)), exp(-x)} assert mrv(exp(1 / x + exp(-x)), x) == {exp(-x)} assert mrv(exp(x + exp(-x**2)), x) == {exp(-x**2)} assert mrv(exp(-x + 1 / x**2) - exp(x + 1 / x), x) == {exp(x + 1 / x), exp(1 / x**2 - x)} assert mrv(exp(x**2) + x * exp(x) + exp(x * log(log(x))) / x, x) == {exp(x**2)} assert mrv(exp(x) * (exp(1 / x + exp(-x)) - exp(1 / x)), x) == {exp(x), exp(-x)} assert mrv(log(x**2 + 2 * exp(exp(3 * x**3 * log(x)))), x) == {exp(exp(3 * x**3 * log(x)))} assert mrv(log(x - log(x)) / log(x), x) == {x} assert mrv((exp(1 / x - exp(-x)) - exp(1 / x)) * exp(x), x) == {exp(x), exp(-x)} assert mrv(1 / exp(-x + exp(-x)) - exp(x), x) == {exp(x), exp(-x), exp(x - exp(-x))} assert mrv(log(log(x * exp(x * exp(x)) + 1)), x) == {exp(x * exp(x))} assert mrv(exp(exp(log(log(x) + 1 / x))), x) == {x} assert mrv((log(log(x) + log(log(x))) - log(log(x))) / log(log(x) + log(log(log(x)))) * log(x), x) == {x} assert mrv(log(log(x*exp(x*exp(x)) + 1)) - exp(exp(log(log(x) + 1/x))), x) == \ {exp(x*exp(x))} # Gruntz: p47, 3.21 h = exp(-x / (1 + exp(-x))) e = Mul(exp(h), exp(-x / (1 + h)), exp(exp(-x + h)), Pow(h, -2, evaluate=False), evaluate=False) - exp(x) + x assert mrv(e, x) == {exp(-x + h), exp(-x / (1 + h)), h, exp(x), exp(-x)}