def test_gruntz_eval_special_slow(): assert gruntz(gamma(x + 1)/sqrt(2*pi) - exp(-x)*(x**(x + Rational(1, 2)) + x**(x - Rational(1, 2))/12), x) == oo assert gruntz(exp(exp(exp(digamma(digamma(digamma(x))))))/x, x) == 0 assert gruntz(exp(gamma(x - exp(-x))*exp(1/x)) - exp(gamma(x)), x) == oo assert gruntz( (Ei(x - exp(-exp(x))) - Ei(x))*exp(-x)*exp(exp(x))*x, x) == -1 assert gruntz( exp((log(2) + 1)*x) * (zeta(x + exp(-x)) - zeta(x)), x) == -log(2)
def test_gruntz_eval_special(): # Gruntz, p. 126 assert gruntz( exp(x) * (sin(1 / x + exp(-x)) - sin(1 / x + exp(-x**2))), x) == 1 assert gruntz((erf(x - exp(-exp(x))) - erf(x)) * exp(exp(x)) * exp(x**2), x) == -2 / sqrt(pi) assert gruntz( exp(exp(x)) * (exp(sin(1 / x + exp(-exp(x)))) - exp(sin(1 / x))), x) == 1 assert gruntz(exp(x) * (gamma(x + exp(-x)) - gamma(x)), x) == oo assert gruntz(exp(exp(digamma(digamma(x)))) / x, x) == exp(-Rational(1, 2)) assert gruntz(exp(exp(digamma(log(x)))) / x, x) == exp(-Rational(1, 2)) assert gruntz(digamma(digamma(digamma(x))), x) == oo assert gruntz(loggamma(loggamma(x)), x) == oo assert gruntz( ((gamma(x + 1 / gamma(x)) - gamma(x)) / log(x) - cos(1 / x)) * x * log(x), x) == -Rational(1, 2) assert gruntz(x * (gamma(x - 1/gamma(x)) - gamma(x) + log(x)), x) \ == Rational(1, 2) assert gruntz((gamma(x + 1 / gamma(x)) - gamma(x)) / log(x), x) == 1 assert gruntz( gamma(x + 1) / sqrt(2 * pi) - exp(-x) * (x**(x + Rational(1, 2)) + x**(x - Rational(1, 2)) / 12), x) == oo assert gruntz(exp(exp(exp(digamma(digamma(digamma(x)))))) / x, x) == 0 assert gruntz(exp(gamma(x - exp(-x)) * exp(1 / x)) - exp(gamma(x)), x) == oo assert gruntz((Ei(x - exp(-exp(x))) - Ei(x)) * exp(-x) * exp(exp(x)) * x, x) == -1 assert gruntz(exp((log(2) + 1) * x) * (zeta(x + exp(-x)) - zeta(x)), x) == -log(2)
def test_gruntz_eval_special_slow(): assert limit(gamma(x + 1)/sqrt(2*pi) - exp(-x)*(x**(x + Rational(1, 2)) + x**(x - Rational(1, 2))/12), x, oo) == oo assert limit(exp(exp(exp(digamma(digamma(digamma(x))))))/x, x, oo) == 0 assert limit(exp(gamma(x - exp(-x))*exp(1/x)) - exp(gamma(x)), x, oo) == oo assert limit((Ei(x - exp(-exp(x))) - Ei(x)) * exp(-x)*exp(exp(x))*x, x, oo) == -1 assert limit(exp((log(2) + 1)*x)*(zeta(x + exp(-x)) - zeta(x)), x, oo) == -log(2) # TODO 8.36 (bessel) assert limit(Max(x, exp(x))/log(Min(exp(-x), exp(-exp(x)))), x, oo) == -1
def test_beta(): x, y = Symbol('x'), Symbol('y') assert isinstance(beta(x, y), beta) assert expand_func(beta(x, y)) == gamma(x)*gamma(y)/gamma(x + y) assert expand_func(beta(x, y) - beta(y, x)) == 0 # Symmetric assert expand_func(beta(x, y)) == expand_func(beta(x, y + 1) + beta(x + 1, y)).simplify() assert diff(beta(x, y), x) == beta(x, y)*(digamma(x) - digamma(x + y)) assert diff(beta(x, y), y) == beta(x, y)*(digamma(y) - digamma(x + y))
def test_beta(): assert isinstance(beta(x, y), beta) assert expand_func(beta(x, y)) == gamma(x) * gamma(y) / gamma(x + y) assert expand_func(beta(x, y) - beta(y, x)) == 0 # Symmetric assert expand_func(beta( x, y)) == expand_func(beta(x, y + 1) + beta(x + 1, y)).simplify() assert diff(beta(x, y), x) == beta(x, y) * (digamma(x) - digamma(x + y)) assert diff(beta(x, y), y) == beta(x, y) * (digamma(y) - digamma(x + y)) pytest.raises(ArgumentIndexError, lambda: beta(x, y).fdiff(3)) assert conjugate(beta(x, y)) == beta(conjugate(x), conjugate(y))
def test_beta(): assert isinstance(beta(x, y), beta) assert expand_func(beta(x, y)) == gamma(x)*gamma(y)/gamma(x + y) assert expand_func(beta(x, y) - beta(y, x)) == 0 # Symmetric assert expand_func(beta(x, y)) == expand_func(beta(x, y + 1) + beta(x + 1, y)).simplify() assert diff(beta(x, y), x) == beta(x, y)*(digamma(x) - digamma(x + y)) assert diff(beta(x, y), y) == beta(x, y)*(digamma(y) - digamma(x + y)) pytest.raises(ArgumentIndexError, lambda: beta(x, y).fdiff(3)) assert conjugate(beta(x, y)) == beta(conjugate(x), conjugate(y))
def test_gruntz_eval_special(): # Gruntz, p. 126 assert gruntz(exp(x)*(sin(1/x + exp(-x)) - sin(1/x + exp(-x**2))), x) == 1 assert gruntz((erf(x - exp(-exp(x))) - erf(x)) * exp(exp(x)) * exp(x**2), x) == -2/sqrt(pi) assert gruntz(exp(exp(x)) * (exp(sin(1/x + exp(-exp(x)))) - exp(sin(1/x))), x) == 1 assert gruntz(exp(x)*(gamma(x + exp(-x)) - gamma(x)), x) == oo assert gruntz(exp(exp(digamma(digamma(x))))/x, x) == exp(-Rational(1, 2)) assert gruntz(exp(exp(digamma(log(x))))/x, x) == exp(-Rational(1, 2)) assert gruntz(digamma(digamma(digamma(x))), x) == oo assert gruntz(loggamma(loggamma(x)), x) == oo assert gruntz(((gamma(x + 1/gamma(x)) - gamma(x))/log(x) - cos(1/x)) * x*log(x), x) == -Rational(1, 2) assert gruntz(x * (gamma(x - 1/gamma(x)) - gamma(x) + log(x)), x) \ == Rational(1, 2) assert gruntz((gamma(x + 1/gamma(x)) - gamma(x)) / log(x), x) == 1
def test_leading_term(): assert O(1 / digamma(1 / x)) == O(1 / log(x))
def test_sympyissue_15146(): assert limit((n/2)*(-2*n**3 - 2*(n**3 - 1)*n**2*digamma(n**3 + 1) + 2*(n**3 - 1)*n**2*digamma(n**3 + n + 1) + n + 3), n, oo) == Rational(1, 3)