int_rules_5_3_3 = @theory begin

    #= ::Subsection::Closed:: =#
    #= 5.3.3*(d+e*x)^m*(a+b*arctan(c*x^n))^p =#
    @apply_utils Antiderivative((~(a') + ~(b') * atan(~(c') * ~x)) ^ ~(p') / (~d + ~(e') * ~x), ~x) => (-((~a + ~b * atan(~c * ~x)) ^ ~p) * log(2 / (1 + (~e * ~x) / ~d))) / ~e + ((~b * ~c * ~p) / ~e) * Antiderivative(((~a + ~b * atan(~c * ~x)) ^ (~p - 1) * log(2 / (1 + (~e * ~x) / ~d))) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && (IGtQ(~p, 0) && EqQ((~c) ^ 2 * (~d) ^ 2 + (~e) ^ 2, 0))
    @apply_utils Antiderivative((~(a') + ~(b') * acot(~(c') * ~x)) ^ ~(p') / (~d + ~(e') * ~x), ~x) => (-((~a + ~b * acot(~c * ~x)) ^ ~p) * log(2 / (1 + (~e * ~x) / ~d))) / ~e - ((~b * ~c * ~p) / ~e) * Antiderivative(((~a + ~b * acot(~c * ~x)) ^ (~p - 1) * log(2 / (1 + (~e * ~x) / ~d))) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && (IGtQ(~p, 0) && EqQ((~c) ^ 2 * (~d) ^ 2 + (~e) ^ 2, 0))
    @apply_utils Antiderivative((~(a') + ~(b') * atan(~(c') * ~x)) / (~d + ~(e') * ~x), ~x) => ((-((~a + ~b * atan(~c * ~x))) * log(2 / (1 - im * ~c * ~x))) / ~e + ((~b * ~c) / ~e) * Antiderivative(log(2 / (1 - im * ~c * ~x)) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x) + ((~a + ~b * atan(~c * ~x)) * log((2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / ~e) - ((~b * ~c) / ~e) * Antiderivative(log((2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x))) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && NeQ((~c) ^ 2 * (~d) ^ 2 + (~e) ^ 2, 0)
    @apply_utils Antiderivative((~(a') + ~(b') * acot(~(c') * ~x)) / (~d + ~(e') * ~x), ~x) => ((-((~a + ~b * acot(~c * ~x))) * log(2 / (1 - im * ~c * ~x))) / ~e - ((~b * ~c) / ~e) * Antiderivative(log(2 / (1 - im * ~c * ~x)) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x)) + ((~a + ~b * acot(~c * ~x)) * log((2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / ~e + ((~b * ~c) / ~e) * Antiderivative(log((2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x))) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && NeQ((~c) ^ 2 * (~d) ^ 2 + (~e) ^ 2, 0)
    @apply_utils Antiderivative((~(a') + ~(b') * atan(~(c') * ~x)) ^ 2 / (~d + ~(e') * ~x), ~x) => (((((-((~a + ~b * atan(~c * ~x)) ^ 2) * log(2 / (1 - im * ~c * ~x))) / ~e + (im * ~b * (~a + ~b * atan(~c * ~x)) * PolyLog(2, 1 - 2 / (1 - im * ~c * ~x))) / ~e) - ((~b) ^ 2 * PolyLog(3, 1 - 2 / (1 - im * ~c * ~x))) / (2 * ~e)) + ((~a + ~b * atan(~c * ~x)) ^ 2 * log((2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / ~e) - (im * ~b * (~a + ~b * atan(~c * ~x)) * PolyLog(2, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / ~e) + ((~b) ^ 2 * PolyLog(3, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / (2 * ~e) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && NeQ((~c) ^ 2 * (~d) ^ 2 + (~e) ^ 2, 0)
    @apply_utils Antiderivative((~(a') + ~(b') * acot(~(c') * ~x)) ^ 2 / (~d + ~(e') * ~x), ~x) => (((-((~a + ~b * acot(~c * ~x)) ^ 2) * log(2 / (1 - im * ~c * ~x))) / ~e - (im * ~b * (~a + ~b * acot(~c * ~x)) * PolyLog(2, 1 - 2 / (1 - im * ~c * ~x))) / ~e) - ((~b) ^ 2 * PolyLog(3, 1 - 2 / (1 - im * ~c * ~x))) / (2 * ~e)) + ((~a + ~b * acot(~c * ~x)) ^ 2 * log((2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / ~e + (im * ~b * (~a + ~b * acot(~c * ~x)) * PolyLog(2, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / ~e + ((~b) ^ 2 * PolyLog(3, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / (2 * ~e) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && NeQ((~c) ^ 2 * (~d) ^ 2 + (~e) ^ 2, 0)
    @apply_utils Antiderivative((~(a') + ~(b') * atan(~(c') * ~x)) ^ 3 / (~d + ~(e') * ~x), ~x) => ((((((-((~a + ~b * atan(~c * ~x)) ^ 3) * log(2 / (1 - im * ~c * ~x))) / ~e + (3 * im * ~b * (~a + ~b * atan(~c * ~x)) ^ 2 * PolyLog(2, 1 - 2 / (1 - im * ~c * ~x))) / (2 * ~e)) - (3 * (~b) ^ 2 * (~a + ~b * atan(~c * ~x)) * PolyLog(3, 1 - 2 / (1 - im * ~c * ~x))) / (2 * ~e)) - (3 * im * (~b) ^ 3 * PolyLog(4, 1 - 2 / (1 - im * ~c * ~x))) / (4 * ~e)) + ((~a + ~b * atan(~c * ~x)) ^ 3 * log((2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / ~e) - (3 * im * ~b * (~a + ~b * atan(~c * ~x)) ^ 2 * PolyLog(2, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / (2 * ~e)) + (3 * (~b) ^ 2 * (~a + ~b * atan(~c * ~x)) * PolyLog(3, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / (2 * ~e) + (3 * im * (~b) ^ 3 * PolyLog(4, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / (4 * ~e) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && NeQ((~c) ^ 2 * (~d) ^ 2 + (~e) ^ 2, 0)
    @apply_utils Antiderivative((~(a') + ~(b') * acot(~(c') * ~x)) ^ 3 / (~d + ~(e') * ~x), ~x) => ((((-((~a + ~b * acot(~c * ~x)) ^ 3) * log(2 / (1 - im * ~c * ~x))) / ~e - (3 * im * ~b * (~a + ~b * acot(~c * ~x)) ^ 2 * PolyLog(2, 1 - 2 / (1 - im * ~c * ~x))) / (2 * ~e)) - (3 * (~b) ^ 2 * (~a + ~b * acot(~c * ~x)) * PolyLog(3, 1 - 2 / (1 - im * ~c * ~x))) / (2 * ~e)) + (3 * im * (~b) ^ 3 * PolyLog(4, 1 - 2 / (1 - im * ~c * ~x))) / (4 * ~e) + ((~a + ~b * acot(~c * ~x)) ^ 3 * log((2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / ~e + (3 * im * ~b * (~a + ~b * acot(~c * ~x)) ^ 2 * PolyLog(2, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / (2 * ~e) + (3 * (~b) ^ 2 * (~a + ~b * acot(~c * ~x)) * PolyLog(3, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / (2 * ~e)) - (3 * im * (~b) ^ 3 * PolyLog(4, 1 - (2 * ~c * (~d + ~e * ~x)) / ((~c * ~d + im * ~e) * (1 - im * ~c * ~x)))) / (4 * ~e) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && NeQ((~c) ^ 2 * (~d) ^ 2 + (~e) ^ 2, 0)
    @apply_utils Antiderivative((~d + ~(e') * ~x) ^ ~(q') * (~(a') + ~(b') * atan(~(c') * ~x)), ~x) => ((~d + ~e * ~x) ^ (~q + 1) * (~a + ~b * atan(~c * ~x))) / (~e * (~q + 1)) - ((~b * ~c) / (~e * (~q + 1))) * Antiderivative((~d + ~e * ~x) ^ (~q + 1) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~q], ~x) && NeQ(~q, -1)
    @apply_utils Antiderivative((~d + ~(e') * ~x) ^ ~(q') * (~(a') + ~(b') * acot(~(c') * ~x)), ~x) => ((~d + ~e * ~x) ^ (~q + 1) * (~a + ~b * acot(~c * ~x))) / (~e * (~q + 1)) + ((~b * ~c) / (~e * (~q + 1))) * Antiderivative((~d + ~e * ~x) ^ (~q + 1) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~q], ~x) && NeQ(~q, -1)
    @apply_utils Antiderivative((~d + ~(e') * ~x) ^ ~(q') * (~(a') + ~(b') * atan(~(c') * ~x)) ^ ~p, ~x) => ((~d + ~e * ~x) ^ (~q + 1) * (~a + ~b * atan(~c * ~x)) ^ ~p) / (~e * (~q + 1)) - ((~b * ~c * ~p) / (~e * (~q + 1))) * Antiderivative(ExpandIntegrand((~a + ~b * atan(~c * ~x)) ^ (~p - 1), (~d + ~e * ~x) ^ (~q + 1) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && (IGtQ(~p, 1) && (IntegerQ(~q) && NeQ(~q, -1)))
    @apply_utils Antiderivative((~d + ~(e') * ~x) ^ ~(q') * (~(a') + ~(b') * acot(~(c') * ~x)) ^ ~p, ~x) => ((~d + ~e * ~x) ^ (~q + 1) * (~a + ~b * acot(~c * ~x)) ^ ~p) / (~e * (~q + 1)) + ((~b * ~c * ~p) / (~e * (~q + 1))) * Antiderivative(ExpandIntegrand((~a + ~b * acot(~c * ~x)) ^ (~p - 1), (~d + ~e * ~x) ^ (~q + 1) / (1 + (~c) ^ 2 * (~x) ^ 2), ~x), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && (IGtQ(~p, 1) && (IntegerQ(~q) && NeQ(~q, -1)))
    @apply_utils Antiderivative((~(a') + ~(b') * atan(~(c') * (~x) ^ ~n)) / (~d + ~(e') * ~x), ~x) => (log(~d + ~e * ~x) * (~a + ~b * atan(~c * (~x) ^ ~n))) / ~e - ((~b * ~c * ~n) / ~e) * Antiderivative(((~x) ^ (~n - 1) * log(~d + ~e * ~x)) / (1 + (~c) ^ 2 * (~x) ^ (2 * ~n)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~n], ~x) && IntegerQ(~n)
    @apply_utils Antiderivative((~(a') + ~(b') * acot(~(c') * (~x) ^ ~n)) / (~d + ~(e') * ~x), ~x) => (log(~d + ~e * ~x) * (~a + ~b * acot(~c * (~x) ^ ~n))) / ~e + ((~b * ~c * ~n) / ~e) * Antiderivative(((~x) ^ (~n - 1) * log(~d + ~e * ~x)) / (1 + (~c) ^ 2 * (~x) ^ (2 * ~n)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~n], ~x) && IntegerQ(~n)
    @apply_utils Antiderivative((~(a') + ~(b') * atan(~(c') * (~x) ^ ~n)) / (~d + ~(e') * ~x), ~x) => With([k = Denominator(~n)], k * Subst(Antiderivative(((~x) ^ (k - 1) * (~a + ~b * atan(~c * (~x) ^ (k * ~n)))) / (~d + ~e * (~x) ^ k), ~x), ~x, (~x) ^ (1 / k))) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && FractionQ(~n)
    @apply_utils Antiderivative((~(a') + ~(b') * acot(~(c') * (~x) ^ ~n)) / (~d + ~(e') * ~x), ~x) => With([k = Denominator(~n)], k * Subst(Antiderivative(((~x) ^ (k - 1) * (~a + ~b * acot(~c * (~x) ^ (k * ~n)))) / (~d + ~e * (~x) ^ k), ~x), ~x, (~x) ^ (1 / k))) <-- FreeQ([~a, ~b, ~c, ~d, ~e], ~x) && FractionQ(~n)
    @apply_utils Antiderivative((~d + ~(e') * ~x) ^ ~(m') * (~(a') + ~(b') * atan(~(c') * (~x) ^ ~n)), ~x) => ((~d + ~e * ~x) ^ (~m + 1) * (~a + ~b * atan(~c * (~x) ^ ~n))) / (~e * (~m + 1)) - ((~b * ~c * ~n) / (~e * (~m + 1))) * Antiderivative(((~x) ^ (~n - 1) * (~d + ~e * ~x) ^ (~m + 1)) / (1 + (~c) ^ 2 * (~x) ^ (2 * ~n)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n], ~x) && NeQ(~m, -1)
    @apply_utils Antiderivative((~d + ~(e') * ~x) ^ ~(m') * (~(a') + ~(b') * acot(~(c') * (~x) ^ ~n)), ~x) => ((~d + ~e * ~x) ^ (~m + 1) * (~a + ~b * acot(~c * (~x) ^ ~n))) / (~e * (~m + 1)) + ((~b * ~c * ~n) / (~e * (~m + 1))) * Antiderivative(((~x) ^ (~n - 1) * (~d + ~e * ~x) ^ (~m + 1)) / (1 + (~c) ^ 2 * (~x) ^ (2 * ~n)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n], ~x) && NeQ(~m, -1)
    @apply_utils Antiderivative((~d + ~(e') * ~x) ^ ~(m') * (~(a') + ~(b') * atan(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => Antiderivative(ExpandIntegrand((~a + ~b * atan(~c * (~x) ^ ~n)) ^ ~p, (~d + ~e * ~x) ^ ~m, ~x), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~n], ~x) && (IGtQ(~p, 1) && IGtQ(~m, 0))
    @apply_utils Antiderivative((~d + ~(e') * ~x) ^ ~(m') * (~(a') + ~(b') * acot(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => Antiderivative(ExpandIntegrand((~a + ~b * acot(~c * (~x) ^ ~n)) ^ ~p, (~d + ~e * ~x) ^ ~m, ~x), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~n], ~x) && (IGtQ(~p, 1) && IGtQ(~m, 0))
    @apply_utils Antiderivative((~(d') + ~(e') * ~x) ^ ~(m') * (~(a') + ~(b') * atan(~(c') * (~x) ^ ~n)) ^ ~(p'), ~x) => Unintegrable((~d + ~e * ~x) ^ ~m * (~a + ~b * atan(~c * (~x) ^ ~n)) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n, ~p], ~x)
    @apply_utils Antiderivative((~(d') + ~(e') * ~x) ^ ~(m') * (~(a') + ~(b') * acot(~(c') * (~x) ^ ~n)) ^ ~(p'), ~x) => Unintegrable((~d + ~e * ~x) ^ ~m * (~a + ~b * acot(~c * (~x) ^ ~n)) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n, ~p], ~x)
end
