int_rules_7_3_2 = @theory begin

    #= ::Subsection::Closed:: =#
    #= 7.3.2*(d*x)^m*(a+b*arctanh(c*x^n))^p =#
    @apply_utils Antiderivative((~(a') + ~(b') * atanh(~(c') * ~x)) / ~x, ~x) => (~a * log(~x) - (~b / 2) * PolyLog(2, -(~c) * ~x)) + (~b / 2) * PolyLog(2, ~c * ~x) <-- FreeQ([~a, ~b, ~c], ~x)
    @apply_utils Antiderivative((~(a') + ~(b') * acoth(~(c') * ~x)) / ~x, ~x) => (~a * log(~x) + (~b / 2) * PolyLog(2, -1 / (~c * ~x))) - (~b / 2) * PolyLog(2, 1 / (~c * ~x)) <-- FreeQ([~a, ~b, ~c], ~x)
    @apply_utils Antiderivative((~(a') + ~(b') * atanh(~(c') * ~x)) ^ ~p / ~x, ~x) => 2 * (~a + ~b * atanh(~c * ~x)) ^ ~p * atanh(1 - 2 / (1 - ~c * ~x)) - 2 * ~b * ~c * ~p * Antiderivative(((~a + ~b * atanh(~c * ~x)) ^ (~p - 1) * atanh(1 - 2 / (1 - ~c * ~x))) / (1 - (~c) ^ 2 * (~x) ^ 2), ~x) <-- FreeQ([~a, ~b, ~c], ~x) && IGtQ(~p, 1)
    @apply_utils Antiderivative((~(a') + ~(b') * acoth(~(c') * ~x)) ^ ~p / ~x, ~x) => 2 * (~a + ~b * acoth(~c * ~x)) ^ ~p * acoth(1 - 2 / (1 - ~c * ~x)) - 2 * ~b * ~c * ~p * Antiderivative(((~a + ~b * acoth(~c * ~x)) ^ (~p - 1) * acoth(1 - 2 / (1 - ~c * ~x))) / (1 - (~c) ^ 2 * (~x) ^ 2), ~x) <-- FreeQ([~a, ~b, ~c], ~x) && IGtQ(~p, 1)
    @apply_utils Antiderivative((~(a') + ~(b') * atanh(~(c') * (~x) ^ ~n)) ^ ~(p') / ~x, ~x) => (1 / ~n) * Subst(Antiderivative((~a + ~b * atanh(~c * ~x)) ^ ~p / ~x, ~x), ~x, (~x) ^ ~n) <-- FreeQ([~a, ~b, ~c, ~n], ~x) && IGtQ(~p, 0)
    @apply_utils Antiderivative((~(a') + ~(b') * acoth(~(c') * (~x) ^ ~n)) ^ ~(p') / ~x, ~x) => (1 / ~n) * Subst(Antiderivative((~a + ~b * acoth(~c * ~x)) ^ ~p / ~x, ~x), ~x, (~x) ^ ~n) <-- FreeQ([~a, ~b, ~c, ~n], ~x) && IGtQ(~p, 0)
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * atanh(~(c') * (~x) ^ ~(n'))) ^ ~(p'), ~x) => ((~x) ^ (~m + 1) * (~a + ~b * atanh(~c * (~x) ^ ~n)) ^ ~p) / (~m + 1) - ((~b * ~c * ~n * ~p) / (~m + 1)) * Antiderivative(((~x) ^ (~m + ~n) * (~a + ~b * atanh(~c * (~x) ^ ~n)) ^ (~p - 1)) / (1 - (~c) ^ 2 * (~x) ^ (2 * ~n)), ~x) <-- FreeQ([~a, ~b, ~c, ~m, ~n], ~x) && (IGtQ(~p, 0) && ((EqQ(~p, 1) || EqQ(~n, 1) && IntegerQ(~m)) && NeQ(~m, -1)))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * acoth(~(c') * (~x) ^ ~(n'))) ^ ~(p'), ~x) => ((~x) ^ (~m + 1) * (~a + ~b * acoth(~c * (~x) ^ ~n)) ^ ~p) / (~m + 1) - ((~b * ~c * ~n * ~p) / (~m + 1)) * Antiderivative(((~x) ^ (~m + ~n) * (~a + ~b * acoth(~c * (~x) ^ ~n)) ^ (~p - 1)) / (1 - (~c) ^ 2 * (~x) ^ (2 * ~n)), ~x) <-- FreeQ([~a, ~b, ~c, ~m, ~n], ~x) && (IGtQ(~p, 0) && ((EqQ(~p, 1) || EqQ(~n, 1) && IntegerQ(~m)) && NeQ(~m, -1)))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * atanh(~(c') * (~x) ^ ~n)) ^ ~(p'), ~x) => (1 / ~n) * Subst(Antiderivative((~x) ^ (Simplify((~m + 1) / ~n) - 1) * (~a + ~b * atanh(~c * ~x)) ^ ~p, ~x), ~x, (~x) ^ ~n) <-- FreeQ([~a, ~b, ~c, ~m, ~n], ~x) && (IGtQ(~p, 1) && IntegerQ(Simplify((~m + 1) / ~n)))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * acoth(~(c') * (~x) ^ ~n)) ^ ~(p'), ~x) => (1 / ~n) * Subst(Antiderivative((~x) ^ (Simplify((~m + 1) / ~n) - 1) * (~a + ~b * acoth(~c * ~x)) ^ ~p, ~x), ~x, (~x) ^ ~n) <-- FreeQ([~a, ~b, ~c, ~m, ~n], ~x) && (IGtQ(~p, 1) && IntegerQ(Simplify((~m + 1) / ~n)))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * atanh(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => Antiderivative(ExpandIntegrand((~x) ^ ~m * ((~a + (~b * log(1 + ~c * (~x) ^ ~n)) / 2) - (~b * log(1 - ~c * (~x) ^ ~n)) / 2) ^ ~p, ~x), ~x) <-- FreeQ([~a, ~b, ~c], ~x) && (IGtQ(~p, 1) && (IGtQ(~n, 0) && IntegerQ(~m)))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * acoth(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => Antiderivative(ExpandIntegrand((~x) ^ ~m * ((~a + (~b * log(1 + (~x) ^ -(~n) / ~c)) / 2) - (~b * log(1 - (~x) ^ -(~n) / ~c)) / 2) ^ ~p, ~x), ~x) <-- FreeQ([~a, ~b, ~c], ~x) && (IGtQ(~p, 1) && (IGtQ(~n, 0) && IntegerQ(~m)))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * atanh(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => With([k = Denominator(~m)], k * Subst(Antiderivative((~x) ^ (k * (~m + 1) - 1) * (~a + ~b * atanh(~c * (~x) ^ (k * ~n))) ^ ~p, ~x), ~x, (~x) ^ (1 / k))) <-- FreeQ([~a, ~b, ~c], ~x) && (IGtQ(~p, 1) && (IGtQ(~n, 0) && FractionQ(~m)))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * acoth(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => With([k = Denominator(~m)], k * Subst(Antiderivative((~x) ^ (k * (~m + 1) - 1) * (~a + ~b * acoth(~c * (~x) ^ (k * ~n))) ^ ~p, ~x), ~x, (~x) ^ (1 / k))) <-- FreeQ([~a, ~b, ~c], ~x) && (IGtQ(~p, 1) && (IGtQ(~n, 0) && FractionQ(~m)))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * atanh(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => Antiderivative((~x) ^ ~m * (~a + ~b * acoth((~x) ^ -(~n) / ~c)) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~m], ~x) && (IGtQ(~p, 1) && ILtQ(~n, 0))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * acoth(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => Antiderivative((~x) ^ ~m * (~a + ~b * atanh((~x) ^ -(~n) / ~c)) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~m], ~x) && (IGtQ(~p, 1) && ILtQ(~n, 0))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * atanh(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => With([k = Denominator(~n)], k * Subst(Antiderivative((~x) ^ (k * (~m + 1) - 1) * (~a + ~b * atanh(~c * (~x) ^ (k * ~n))) ^ ~p, ~x), ~x, (~x) ^ (1 / k))) <-- FreeQ([~a, ~b, ~c, ~m], ~x) && (IGtQ(~p, 1) && FractionQ(~n))
    @apply_utils Antiderivative((~x) ^ ~(m') * (~(a') + ~(b') * acoth(~(c') * (~x) ^ ~n)) ^ ~p, ~x) => With([k = Denominator(~n)], k * Subst(Antiderivative((~x) ^ (k * (~m + 1) - 1) * (~a + ~b * acoth(~c * (~x) ^ (k * ~n))) ^ ~p, ~x), ~x, (~x) ^ (1 / k))) <-- FreeQ([~a, ~b, ~c, ~m], ~x) && (IGtQ(~p, 1) && FractionQ(~n))
    @apply_utils Antiderivative((~d * ~x) ^ ~m * (~(a') + ~(b') * atanh(~(c') * (~x) ^ ~(n'))), ~x) => ((~d * ~x) ^ (~m + 1) * (~a + ~b * atanh(~c * (~x) ^ ~n))) / (~d * (~m + 1)) - ((~b * ~c * ~n) / ((~d) ^ ~n * (~m + 1))) * Antiderivative((~d * ~x) ^ (~m + ~n) / (1 - (~c) ^ 2 * (~x) ^ (2 * ~n)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~m, ~n], ~x) && (IntegerQ(~n) && NeQ(~m, -1))
    @apply_utils Antiderivative((~d * ~x) ^ ~m * (~(a') + ~(b') * acoth(~(c') * (~x) ^ ~(n'))), ~x) => ((~d * ~x) ^ (~m + 1) * (~a + ~b * acoth(~c * (~x) ^ ~n))) / (~d * (~m + 1)) - ((~b * ~c * ~n) / ((~d) ^ ~n * (~m + 1))) * Antiderivative((~d * ~x) ^ (~m + ~n) / (1 - (~c) ^ 2 * (~x) ^ (2 * ~n)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~m, ~n], ~x) && (IntegerQ(~n) && NeQ(~m, -1))
    @apply_utils Antiderivative((~d * ~x) ^ ~m * (~(a') + ~(b') * atanh(~(c') * (~x) ^ ~(n'))) ^ ~(p'), ~x) => (((~d) ^ IntPart(~m) * (~d * ~x) ^ FracPart(~m)) / (~x) ^ FracPart(~m)) * Antiderivative((~x) ^ ~m * (~a + ~b * atanh(~c * (~x) ^ ~n)) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~m, ~n], ~x) && (IGtQ(~p, 0) && (EqQ(~p, 1) || RationalQ(~m, ~n)))
    @apply_utils Antiderivative((~d * ~x) ^ ~m * (~(a') + ~(b') * acoth(~(c') * (~x) ^ ~(n'))) ^ ~(p'), ~x) => (((~d) ^ IntPart(~m) * (~d * ~x) ^ FracPart(~m)) / (~x) ^ FracPart(~m)) * Antiderivative((~x) ^ ~m * (~a + ~b * acoth(~c * (~x) ^ ~n)) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~m, ~n], ~x) && (IGtQ(~p, 0) && (EqQ(~p, 1) || RationalQ(~m, ~n)))
    @apply_utils Antiderivative((~(d') * ~x) ^ ~(m') * (~(a') + ~(b') * atanh(~(c') * (~x) ^ ~(n'))) ^ ~(p'), ~x) => Unintegrable((~d * ~x) ^ ~m * (~a + ~b * atanh(~c * (~x) ^ ~n)) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~m, ~n, ~p], ~x)
    @apply_utils Antiderivative((~(d') * ~x) ^ ~(m') * (~(a') + ~(b') * acoth(~(c') * (~x) ^ ~(n'))) ^ ~(p'), ~x) => Unintegrable((~d * ~x) ^ ~m * (~a + ~b * acoth(~c * (~x) ^ ~n)) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~m, ~n, ~p], ~x)
end
