int_rules_1_1_4_4 = @theory begin

    #= ::Subsection::Closed:: =#
    #= 1.1.4.4*P(x)*(c*x)^m*(a*x^j+b*x^n)^p =#
    @apply_utils Antiderivative(~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => With([d = Denominator(~n)], d * Subst(Antiderivative((~x) ^ (d - 1) * ReplaceAll(SubstFor((~x) ^ ~n, ~Pq, ~x), (~x->begin
                                            #= none:1 =#
                                            #= none:3 =#
                                            (~x) ^ (d * ~n)
                                        end)) * (~a * (~x) ^ (d * ~j) + ~b * (~x) ^ (d * ~n)) ^ ~p, ~x), ~x, (~x) ^ (1 / d))) <-- FreeQ([~a, ~b, ~j, ~n, ~p], ~x) && (PolyQ(~Pq, (~x) ^ ~n) && (Not(IntegerQ(~p)) && (NeQ(~n, ~j) && (RationalQ(~j, ~n) && (IntegerQ(~j / ~n) && LtQ(-1, ~n, 1))))))
    @apply_utils Antiderivative((~x) ^ ~(m') * ~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => (1 / ~n) * Subst(Antiderivative((~x) ^ (Simplify((~m + 1) / ~n) - 1) * SubstFor((~x) ^ ~n, ~Pq, ~x) * (~a * (~x) ^ Simplify(~j / ~n) + ~b * ~x) ^ ~p, ~x), ~x, (~x) ^ ~n) <-- FreeQ([~a, ~b, ~j, ~m, ~n, ~p], ~x) && (PolyQ(~Pq, (~x) ^ ~n) && (Not(IntegerQ(~p)) && (NeQ(~n, ~j) && (IntegerQ(Simplify(~j / ~n)) && IntegerQ(Simplify((~m + 1) / ~n))))))
    @apply_utils Antiderivative((~c * ~x) ^ ~(m') * ~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => (((~c) ^ (Sign(~m) * Quotient(~m, Sign(~m))) * (~c * ~x) ^ Mod(~m, Sign(~m))) / (~x) ^ Mod(~m, Sign(~m))) * Antiderivative((~x) ^ ~m * ~Pq * (~a * (~x) ^ ~j + ~b * (~x) ^ ~n) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~j, ~n, ~p], ~x) && (PolyQ(~Pq, (~x) ^ ~n) && (Not(IntegerQ(~p)) && (NeQ(~n, ~j) && (IntegerQ(Simplify(~j / ~n)) && (IntegerQ(Simplify((~m + 1) / ~n)) && (RationalQ(~m) && GtQ((~m) ^ 2, 1)))))))
    @apply_utils Antiderivative((~c * ~x) ^ ~(m') * ~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => ((~c * ~x) ^ ~m / (~x) ^ ~m) * Antiderivative((~x) ^ ~m * ~Pq * (~a * (~x) ^ ~j + ~b * (~x) ^ ~n) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~j, ~m, ~n, ~p], ~x) && (PolyQ(~Pq, (~x) ^ ~n) && (Not(IntegerQ(~p)) && (NeQ(~n, ~j) && (IntegerQ(Simplify(~j / ~n)) && IntegerQ(Simplify((~m + 1) / ~n))))))
    @apply_utils Antiderivative((~x) ^ ~(m') * ~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => With([g = GCD(~m + 1, ~n)], (1 / g) * Subst(Antiderivative((~x) ^ ((~m + 1) / g - 1) * ReplaceAll(~Pq, (~x->begin
                                                #= none:1 =#
                                                #= none:3 =#
                                                (~x) ^ (1 / g)
                                            end)) * (~a * (~x) ^ (~j / g) + ~b * (~x) ^ (~n / g)) ^ ~p, ~x), ~x, (~x) ^ g) <-- NeQ(g, 1)) <-- FreeQ([~a, ~b, ~p], ~x) && (PolyQ(~Pq, (~x) ^ ~n) && (Not(IntegerQ(~p)) && (IGtQ(~j, 0) && (IGtQ(~n, 0) && (IGtQ(~j / ~n, 0) && IntegerQ(~m))))))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => With([q = Expon(~Pq, ~x)], With([Pqq = Coeff(~Pq, ~x, q)], (Pqq * (~c * ~x) ^ (((~m + q) - ~n) + 1) * (~a * (~x) ^ ~j + ~b * (~x) ^ ~n) ^ (~p + 1)) / (~b * (~c) ^ ((q - ~n) + 1) * (~m + q + ~n * ~p + 1)) + Antiderivative((~c * ~x) ^ ~m * ExpandToSum((~Pq - Pqq * (~x) ^ q) - (~a * Pqq * (((~m + q) - ~n) + 1) * (~x) ^ (q - ~n)) / (~b * (~m + q + ~n * ~p + 1)), ~x) * (~a * (~x) ^ ~j + ~b * (~x) ^ ~n) ^ ~p, ~x)) <-- GtQ(q, ~n - 1) && (NeQ(~m + q + ~n * ~p + 1, 0) && (IntegerQ(2 * ~p) || IntegerQ(~p + (q + 1) / (2 * ~n))))) <-- FreeQ([~a, ~b, ~c, ~m, ~p], ~x) && (PolyQ(~Pq, ~x) && (Not(IntegerQ(~p)) && (IGtQ(~j, 0) && (IGtQ(~n, 0) && LtQ(~j, ~n)))))
    @apply_utils Antiderivative((~x) ^ ~(m') * ~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => (1 / (~m + 1)) * Subst(Antiderivative(ReplaceAll(SubstFor((~x) ^ ~n, ~Pq, ~x), (~x->begin
                                        #= none:1 =#
                                        #= none:3 =#
                                        (~x) ^ Simplify(~n / (~m + 1))
                                    end)) * (~a * (~x) ^ Simplify(~j / (~m + 1)) + ~b * (~x) ^ Simplify(~n / (~m + 1))) ^ ~p, ~x), ~x, (~x) ^ (~m + 1)) <-- FreeQ([~a, ~b, ~j, ~m, ~n, ~p], ~x) && (PolyQ(~Pq, (~x) ^ ~n) && (Not(IntegerQ(~p)) && (NeQ(~n, ~j) && (IntegerQ(Simplify(~j / ~n)) && (IntegerQ(Simplify(~n / (~m + 1))) && Not(IntegerQ(~n)))))))
    @apply_utils Antiderivative((~c * ~x) ^ ~m * ~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => (((~c) ^ (Sign(~m) * Quotient(~m, Sign(~m))) * (~c * ~x) ^ Mod(~m, Sign(~m))) / (~x) ^ Mod(~m, Sign(~m))) * Antiderivative((~x) ^ ~m * ~Pq * (~a * (~x) ^ ~j + ~b * (~x) ^ ~n) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~j, ~n, ~p], ~x) && (PolyQ(~Pq, (~x) ^ ~n) && (Not(IntegerQ(~p)) && (NeQ(~n, ~j) && (IntegerQ(Simplify(~j / ~n)) && (IntegerQ(Simplify(~n / (~m + 1))) && (Not(IntegerQ(~n)) && GtQ((~m) ^ 2, 1)))))))
    @apply_utils Antiderivative((~c * ~x) ^ ~m * ~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => ((~c * ~x) ^ ~m / (~x) ^ ~m) * Antiderivative((~x) ^ ~m * ~Pq * (~a * (~x) ^ ~j + ~b * (~x) ^ ~n) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~j, ~m, ~n, ~p], ~x) && (PolyQ(~Pq, (~x) ^ ~n) && (Not(IntegerQ(~p)) && (NeQ(~n, ~j) && (IntegerQ(Simplify(~j / ~n)) && (IntegerQ(Simplify(~n / (~m + 1))) && Not(IntegerQ(~n)))))))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => Antiderivative(ExpandIntegrand((~c * ~x) ^ ~m * ~Pq * (~a * (~x) ^ ~j + ~b * (~x) ^ ~n) ^ ~p, ~x), ~x) <-- FreeQ([~a, ~b, ~c, ~j, ~m, ~n, ~p], ~x) && ((PolyQ(~Pq, ~x) || PolyQ(~Pq, (~x) ^ ~n)) && (Not(IntegerQ(~p)) && NeQ(~n, ~j)))
    @apply_utils Antiderivative(~Pq * (~(a') * (~x) ^ ~(j') + ~(b') * (~x) ^ ~n) ^ ~p, ~x) => Antiderivative(ExpandIntegrand(~Pq * (~a * (~x) ^ ~j + ~b * (~x) ^ ~n) ^ ~p, ~x), ~x) <-- FreeQ([~a, ~b, ~j, ~n, ~p], ~x) && ((PolyQ(~Pq, ~x) || PolyQ(~Pq, (~x) ^ ~n)) && (Not(IntegerQ(~p)) && NeQ(~n, ~j)))
end
