Skip to content

Instantly share code, notes, and snippets.

@halirutan
Created August 22, 2018 07:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save halirutan/0a62d584bb739abfb6d722681742f816 to your computer and use it in GitHub Desktop.
Save halirutan/0a62d584bb739abfb6d722681742f816 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[u*(b*x^n)^p, x] /; FreeQ[{a, b, n, p}, x] && EqQ[a, 0]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[u*a^p, x] /; FreeQ[{a, b, n, p}, x] && EqQ[b, 0]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[j, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[u*(b*x^n + c*x^(2*n))^p, x] /; FreeQ[{a, b, c, n, p}, x] && EqQ[j, 2*n] && EqQ[a, 0]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[j, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[u*(a + c*x^(2*n))^p, x] /; FreeQ[{a, b, c, n, p}, x] && EqQ[j, 2*n] && EqQ[b, 0]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[j, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[u*(a + b*x^n)^p, x] /; FreeQ[{a, b, c, n, p}, x] && EqQ[j, 2*n] && EqQ[c, 0]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Optional[Pattern[w, Blank[]]], Times[Optional[Pattern[a, Blank[]]], Pattern[v, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[v, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[u*((a + b)*v + w)^p, x] /; FreeQ[{a, b}, x] && !FreeQ[v, x]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Pattern[Px, Blank[]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[u*Px^Simplify[p], x] /; PolyQ[Px, x] && !RationalQ[p] && FreeQ[p, x] && RationalQ[Simplify[p]]
Int[Pattern[a, Blank[]], Pattern[x, Blank[Symbol]]] := Simp[a*x, x] /; FreeQ[a, x]
Int[Times[Pattern[a, Blank[]], Plus[Pattern[b, Blank[]], Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(a*(b + c*x)^2)/(2*c), x] /; FreeQ[{a, b, c}, x]
Int[Times[-1, Pattern[u, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[Identity[-1], Int[u, x], x]
Int[Times[Complex[0, Pattern[a, Blank[]]], Pattern[u, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[Complex[Identity[0], a], Int[u, x], x] /; FreeQ[a, x] && EqQ[a^2, 1]
Int[Times[Pattern[a, Blank[]], Pattern[u, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[a, Int[u, x], x] /; FreeQ[a, x] && !MatchQ[u, (b_)*(v_) /; FreeQ[b, x]]
Int[Pattern[u, Blank[]], Pattern[x, Blank[Symbol]]] := Simp[IntSum[u, x], x] /; SumQ[u]
Int[Times[Pattern[u, Blank[]], Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(c*x)^m*u, x], x] /; FreeQ[{c, m}, x] && SumQ[u] && !LinearQ[u, x] && !MatchQ[u, (a_) + (b_.)*(v_) /; FreeQ[{a, b}, x] && InverseFunctionQ[v]]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Times[Optional[Pattern[a, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[m, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[m]*(a*x^n)^FracPart[m])/x^(n*FracPart[m]), Int[u*x^(m*n), x], x] /; FreeQ[{a, m, n}, x] && !IntegerQ[m]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Pattern[v, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Times[Pattern[b, Blank[]], Pattern[v, Blank[]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/b^m, Int[u*(b*v)^(m + n), x], x] /; FreeQ[{b, n}, x] && IntegerQ[m]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Times[Optional[Pattern[a, Blank[]]], Pattern[v, Blank[]]], Pattern[m, Blank[]]], Power[Times[Optional[Pattern[b, Blank[]]], Pattern[v, Blank[]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^(m + 1/2)*b^(n - 1/2)*Sqrt[b*v])/Sqrt[a*v], Int[u*v^(m + n), x], x] /; FreeQ[{a, b, m}, x] && !IntegerQ[m] && IGtQ[n + 1/2, 0] && IntegerQ[m + n]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Times[Optional[Pattern[a, Blank[]]], Pattern[v, Blank[]]], Pattern[m, Blank[]]], Power[Times[Optional[Pattern[b, Blank[]]], Pattern[v, Blank[]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^(m - 1/2)*b^(n + 1/2)*Sqrt[a*v])/Sqrt[b*v], Int[u*v^(m + n), x], x] /; FreeQ[{a, b, m}, x] && !IntegerQ[m] && ILtQ[n - 1/2, 0] && IntegerQ[m + n]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Times[Optional[Pattern[a, Blank[]]], Pattern[v, Blank[]]], Pattern[m, Blank[]]], Power[Times[Optional[Pattern[b, Blank[]]], Pattern[v, Blank[]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^(m + n)*(b*v)^n)/(a*v)^n, Int[u*v^(m + n), x], x] /; FreeQ[{a, b, m, n}, x] && !IntegerQ[m] && !IntegerQ[n] && IntegerQ[m + n]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Times[Optional[Pattern[a, Blank[]]], Pattern[v, Blank[]]], Pattern[m, Blank[]]], Power[Times[Optional[Pattern[b, Blank[]]], Pattern[v, Blank[]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(b^IntPart[n]*(b*v)^FracPart[n])/(a^IntPart[n]*(a*v)^FracPart[n]), Int[u*(a*v)^(m + n), x], x] /; FreeQ[{a, b, m, n}, x] && !IntegerQ[m] && !IntegerQ[n] && !IntegerQ[m + n]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[v, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[v, Blank[]]]], Optional[Pattern[n, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(b/d)^m, Int[u*(c + d*v)^(m + n), x], x] /; FreeQ[{a, b, c, d, n}, x] && EqQ[b*c - a*d, 0] && IntegerQ[m] && ( !IntegerQ[n] || SimplerQ[c + d*x, a + b*x])
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[v, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[v, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(b/d)^m, Int[u*(c + d*v)^(m + n), x], x] /; FreeQ[{a, b, c, d, m, n}, x] && EqQ[b*c - a*d, 0] && GtQ[b/d, 0] && !(IntegerQ[m] || IntegerQ[n])
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[v, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[v, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*v)^m/(c + d*v)^m, Int[u*(c + d*v)^(m + n), x], x] /; FreeQ[{a, b, c, d, m, n}, x] && EqQ[b*c - a*d, 0] && !(IntegerQ[m] || IntegerQ[n] || GtQ[b/d, 0])
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[v, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[v, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[v, Blank[]], 2]]]], Pattern[x, Blank[Symbol]]] := Dist[1/b^2, Int[u*(a + b*v)^(m + 1)*Simp[b*B - a*C + b*C*v, x], x], x] /; FreeQ[{a, b, A, B, C}, x] && EqQ[A*b^2 - a*b*B + a^2*C, 0] && LeQ[m, -1]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[q, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(d/a)^p, Int[(u*(a + b*x^n)^(m + p))/x^(n*p), x], x] /; FreeQ[{a, b, c, d, m, n}, x] && EqQ[q, -n] && IntegerQ[p] && EqQ[a*c - b*d, 0] && !(IntegerQ[m] && NegQ[n])
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[j, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(-(b^2/d))^m, Int[u/(a - b*x^n)^m, x], x] /; FreeQ[{a, b, c, d, m, n, p}, x] && EqQ[j, 2*n] && EqQ[p, -m] && EqQ[b^2*c + a^2*d, 0] && GtQ[a, 0] && LtQ[d, 0]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[u*Cancel[(b/2 + c*x)^(2*p)/c^p], x] /; FreeQ[{a, b, c}, x] && EqQ[b^2 - 4*a*c, 0] && IntegerQ[p]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/c^p, Int[u*(b/2 + c*x^n)^(2*p), x], x] /; FreeQ[{a, b, c, n}, x] && EqQ[n2, 2*n] && EqQ[b^2 - 4*a*c, 0] && IntegerQ[p]
Int[Power[Pattern[x, Blank[]], -1], Pattern[x, Blank[Symbol]]] := Simp[Log[x], x]
Int[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[x^(m + 1)/(m + 1), x] /; FreeQ[m, x] && NeQ[m, -1]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Pattern[x, Blank[Symbol]]] := Simp[Log[RemoveContent[a + b*x, x]]/b, x] /; FreeQ[{a, b}, x]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Pattern[x, Blank[Symbol]]] := Simp[(a + b*x)^(m + 1)/(b*(m + 1)), x] /; FreeQ[{a, b, m}, x] && NeQ[m, -1]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]]], Pattern[m, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x)^m, x], x, u], x] /; FreeQ[{a, b, m}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*x*(a + b*x)^(m + 1))/(b*(m + 2)), x] /; FreeQ[{a, b, c, d, m}, x] && EqQ[a*d - b*c*(m + 2), 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], -1]], Pattern[x, Blank[Symbol]]] := Int[1/(a*c + b*d*x^2), x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c + a*d, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[1/(a + b*x), x], x] - Dist[d/(b*c - a*d), Int[1/(c + d*x), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^(n + 1))/((b*c - a*d)*(m + 1)), x] /; FreeQ[{a, b, c, d, m, n}, x] && NeQ[b*c - a*d, 0] && EqQ[m + n + 2, 0] && NeQ[m, -1]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(a + b*x)^m*(c + d*x)^m)/(2*m + 1), x] + Dist[(2*a*c*m)/(2*m + 1), Int[(a + b*x)^(m - 1)*(c + d*x)^(m - 1), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c + a*d, 0] && IGtQ[m + 1/2, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-3, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-3, 2]]], Pattern[x, Blank[Symbol]]] := Simp[x/(a*c*Sqrt[a + b*x]*Sqrt[c + d*x]), x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c + a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(a + b*x)^(m + 1)*(c + d*x)^(m + 1))/(2*a*c*(m + 1)), x] + Dist[(2*m + 3)/(2*a*c*(m + 1)), Int[(a + b*x)^(m + 1)*(c + d*x)^(m + 1), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c + a*d, 0] && ILtQ[m + 3/2, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(a*c + b*d*x^2)^m, x] /; FreeQ[{a, b, c, d, m}, x] && EqQ[b*c + a*d, 0] && (IntegerQ[m] || (GtQ[a, 0] && GtQ[c, 0]))
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((a + b*x)^FracPart[m]*(c + d*x)^FracPart[m])/(a*c + b*d*x^2)^FracPart[m], Int[(a*c + b*d*x^2)^m, x], x] /; FreeQ[{a, b, c, d, m}, x] && EqQ[b*c + a*d, 0] && !IntegerQ[2*m]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)^m*(c + d*x)^n, x], x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0] && IGtQ[m, 0] && ( !IntegerQ[n] || (EqQ[c, 0] && LeQ[7*m + 4*n + 4, 0]) || LtQ[9*m + 5*(n + 1), 0] || GtQ[m + n + 2, 0])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)^m*(c + d*x)^n, x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && ILtQ[m, 0] && IntegerQ[n] && !(IGtQ[n, 0] && LtQ[m + n + 2, 0])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^(n + 1))/((b*c - a*d)*(m + 1)), x] - Dist[(d*Simplify[m + n + 2])/((b*c - a*d)*(m + 1)), Int[(a + b*x)^Simplify[m + 1]*(c + d*x)^n, x], x] /; FreeQ[{a, b, c, d, m, n}, x] && NeQ[b*c - a*d, 0] && ILtQ[Simplify[m + n + 2], 0] && NeQ[m, -1] && !(LtQ[m, -1] && LtQ[n, -1] && (EqQ[a, 0] || (NeQ[c, 0] && LtQ[m - n, 0] && IntegerQ[n]))) && (SumSimplerQ[m, 1] || !SumSimplerQ[n, 1])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-9, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Simp[-4/(5*b*(a + b*x)^(5/4)*(c + d*x)^(1/4)), x] - Dist[d/(5*b), Int[1/((a + b*x)^(5/4)*(c + d*x)^(5/4)), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c + a*d, 0] && NegQ[a^2*b^2]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^n)/(b*(m + 1)), x] - Dist[(d*n)/(b*(m + 1)), Int[(a + b*x)^(m + 1)*(c + d*x)^(n - 1), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && GtQ[n, 0] && LtQ[m, -1] && !(IntegerQ[n] && !IntegerQ[m]) && !(ILeQ[m + n + 2, 0] && (FractionQ[m] || GeQ[2*n + m + 1, 0])) && IntLinearQ[a, b, c, d, m, n, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-5, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Simp[-2/(b*(a + b*x)^(1/4)*(c + d*x)^(1/4)), x] + Dist[c, Int[1/((a + b*x)^(5/4)*(c + d*x)^(5/4)), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c + a*d, 0] && NegQ[a^2*b^2]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^n)/(b*(m + n + 1)), x] + Dist[(2*c*n)/(m + n + 1), Int[(a + b*x)^m*(c + d*x)^(n - 1), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c + a*d, 0] && IGtQ[m + 1/2, 0] && IGtQ[n + 1/2, 0] && LtQ[m, n]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^n)/(b*(m + n + 1)), x] + Dist[(n*(b*c - a*d))/(b*(m + n + 1)), Int[(a + b*x)^m*(c + d*x)^(n - 1), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && GtQ[n, 0] && NeQ[m + n + 1, 0] && !(IGtQ[m, 0] && ( !IntegerQ[n] || (GtQ[m, 0] && LtQ[m - n, 0]))) && !ILtQ[m + n + 2, 0] && IntLinearQ[a, b, c, d, m, n, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^(n + 1))/((b*c - a*d)*(m + 1)), x] - Dist[(d*(m + n + 2))/((b*c - a*d)*(m + 1)), Int[(a + b*x)^(m + 1)*(c + d*x)^n, x], x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0] && LtQ[m, -1] && !(LtQ[n, -1] && (EqQ[a, 0] || (NeQ[c, 0] && LtQ[m - n, 0] && IntegerQ[n]))) && IntLinearQ[a, b, c, d, m, n, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[ArcCosh[(b*x)/a]/b, x] /; FreeQ[{a, b, c, d}, x] && EqQ[a + c, 0] && EqQ[b - d, 0] && GtQ[a, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Int[1/Sqrt[a*c - b*(a - c)*x - b^2*x^2], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b + d, 0] && GtQ[a + c, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[2/Sqrt[b], Subst[Int[1/Sqrt[b*c - a*d + d*x^2], x], x, Sqrt[a + b*x]], x] /; FreeQ[{a, b, c, d}, x] && GtQ[b*c - a*d, 0] && GtQ[b, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(b*c - a*d)/b, 3]}, -Simp[Log[RemoveContent[a + b*x, x]]/(2*b*q), x] + (Dist[3/(2*b), Subst[Int[1/(q^2 + q*x + x^2), x], x, (c + d*x)^(1/3)], x] - Dist[3/(2*b*q), Subst[Int[1/(q - x), x], x, (c + d*x)^(1/3)], x])] /; FreeQ[{a, b, c, d}, x] && PosQ[(b*c - a*d)/b]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-((b*c - a*d)/b), 3]}, Simp[Log[RemoveContent[a + b*x, x]]/(2*b*q), x] + (Dist[3/(2*b), Subst[Int[1/(q^2 - q*x + x^2), x], x, (c + d*x)^(1/3)], x] - Dist[3/(2*b*q), Subst[Int[1/(q + x), x], x, (c + d*x)^(1/3)], x])] /; FreeQ[{a, b, c, d}, x] && NegQ[(b*c - a*d)/b]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-2, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(b*c - a*d)/b, 3]}, -Simp[Log[RemoveContent[a + b*x, x]]/(2*b*q^2), x] + (-Dist[3/(2*b*q), Subst[Int[1/(q^2 + q*x + x^2), x], x, (c + d*x)^(1/3)], x] - Dist[3/(2*b*q^2), Subst[Int[1/(q - x), x], x, (c + d*x)^(1/3)], x])] /; FreeQ[{a, b, c, d}, x] && PosQ[(b*c - a*d)/b]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-2, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-((b*c - a*d)/b), 3]}, -Simp[Log[RemoveContent[a + b*x, x]]/(2*b*q^2), x] + (Dist[3/(2*b*q), Subst[Int[1/(q^2 - q*x + x^2), x], x, (c + d*x)^(1/3)], x] + Dist[3/(2*b*q^2), Subst[Int[1/(q + x), x], x, (c + d*x)^(1/3)], x])] /; FreeQ[{a, b, c, d}, x] && NegQ[(b*c - a*d)/b]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 3]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-2, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[d/b, 3]}, -Simp[(Sqrt[3]*q*ArcTan[(2*q*(a + b*x)^(1/3))/(Sqrt[3]*(c + d*x)^(1/3)) + 1/Sqrt[3]])/d, x] + (-Simp[(3*q*Log[(q*(a + b*x)^(1/3))/(c + d*x)^(1/3) - 1])/(2*d), x] - Simp[(q*Log[c + d*x])/(2*d), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && PosQ[d/b]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 3]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-2, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(d/b), 3]}, Simp[(Sqrt[3]*q*ArcTan[1/Sqrt[3] - (2*q*(a + b*x)^(1/3))/(Sqrt[3]*(c + d*x)^(1/3))])/d, x] + (Simp[(3*q*Log[(q*(a + b*x)^(1/3))/(c + d*x)^(1/3) + 1])/(2*d), x] + Simp[(q*Log[c + d*x])/(2*d), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && NegQ[d/b]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((a + b*x)^m*(c + d*x)^m)/(a*c + (b*c + a*d)*x + b*d*x^2)^m, Int[(a*c + (b*c + a*d)*x + b*d*x^2)^m, x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && LtQ[-1, m, 0] && LeQ[3, Denominator[m], 4] && AtomQ[b*c + a*d]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((a + b*x)^m*(c + d*x)^m)/((a + b*x)*(c + d*x))^m, Int[(a*c + (b*c + a*d)*x + b*d*x^2)^m, x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && LtQ[-1, m, 0] && LeQ[3, Denominator[m], 4]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{p = Denominator[m]}, Dist[p/b, Subst[Int[x^(p*(m + 1) - 1)*(c - (a*d)/b + (d*x^p)/b)^n, x], x, (a + b*x)^(1/p)], x]] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && LtQ[-1, m, 0] && LeQ[-1, n, 0] && LeQ[Denominator[n], Denominator[m]] && IntLinearQ[a, b, c, d, m, n, x]
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^n*(b*x)^(m + 1)*Hypergeometric2F1[-n, m + 1, m + 2, -((d*x)/c)])/(b*(m + 1)), x] /; FreeQ[{b, c, d, m, n}, x] && !IntegerQ[m] && (IntegerQ[n] || (GtQ[c, 0] && !(EqQ[n, -2^(-1)] && EqQ[c^2 - d^2, 0] && GtQ[-(d/(b*c)), 0])))
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c + d*x)^(n + 1)*Hypergeometric2F1[-m, n + 1, n + 2, 1 + (d*x)/c])/(d*(n + 1)*(-(d/(b*c)))^m), x] /; FreeQ[{b, c, d, m, n}, x] && !IntegerQ[n] && (IntegerQ[m] || GtQ[-(d/(b*c)), 0])
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[n]*(c + d*x)^FracPart[n])/(1 + (d*x)/c)^FracPart[n], Int[(b*x)^m*(1 + (d*x)/c)^n, x], x] /; FreeQ[{b, c, d, m, n}, x] && !IntegerQ[m] && !IntegerQ[n] && !GtQ[c, 0] && !GtQ[-(d/(b*c)), 0] && ((RationalQ[m] && !(EqQ[n, -2^(-1)] && EqQ[c^2 - d^2, 0])) || !RationalQ[n])
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((-((b*c)/d))^IntPart[m]*(b*x)^FracPart[m])/(-((d*x)/c))^FracPart[m], Int[(-((d*x)/c))^m*(c + d*x)^n, x], x] /; FreeQ[{b, c, d, m, n}, x] && !IntegerQ[m] && !IntegerQ[n] && !GtQ[c, 0] && !GtQ[-(d/(b*c)), 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*c - a*d)^n*(a + b*x)^(m + 1)*Hypergeometric2F1[-n, m + 1, m + 2, -((d*(a + b*x))/(b*c - a*d))])/(b^(n + 1)*(m + 1)), x] /; FreeQ[{a, b, c, d, m}, x] && NeQ[b*c - a*d, 0] && !IntegerQ[m] && IntegerQ[n]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*Hypergeometric2F1[-n, m + 1, m + 2, -((d*(a + b*x))/(b*c - a*d))])/(b*(m + 1)*(b/(b*c - a*d))^n), x] /; FreeQ[{a, b, c, d, m, n}, x] && NeQ[b*c - a*d, 0] && !IntegerQ[m] && !IntegerQ[n] && GtQ[b/(b*c - a*d), 0] && (RationalQ[m] || !(RationalQ[n] && GtQ[-(d/(b*c - a*d)), 0]))
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c + d*x)^FracPart[n]/((b/(b*c - a*d))^IntPart[n]*((b*(c + d*x))/(b*c - a*d))^FracPart[n]), Int[(a + b*x)^m*Simp[(b*c)/(b*c - a*d) + (b*d*x)/(b*c - a*d), x]^n, x], x] /; FreeQ[{a, b, c, d, m, n}, x] && NeQ[b*c - a*d, 0] && !IntegerQ[m] && !IntegerQ[n] && (RationalQ[m] || !SimplerQ[n + 1, m + 1])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[n, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x)^m*(c + d*x)^n, x], x, u], x] /; FreeQ[{a, b, c, d, m, n}, x] && LinearQ[u, x] && NeQ[Coefficient[u, x, 0], 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(e + f*x)^p/((a + b*x)*(c + d*x)), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(a*c + b*d*x^2)^m*(e + f*x)^p, x] /; FreeQ[{a, b, c, d, e, f, m, n, p}, x] && EqQ[b*c + a*d, 0] && EqQ[n, m] && IntegerQ[m]
Int[Times[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(d*f*(n + p + 2)), x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && NeQ[n + p + 2, 0] && EqQ[a*d*f*(n + p + 2) - b*(d*e*(n + 1) + c*f*(p + 1)), 0]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[n, Blank[]]]], Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)*(d*x)^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, d, e, f, n}, x] && IGtQ[p, 0] && EqQ[b*e + a*f, 0] && !(ILtQ[n + p + 2, 0] && GtQ[n + 2*p, 0])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[n, Blank[]]]], Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)*(d*x)^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, d, e, f, n}, x] && IGtQ[p, 0] && (NeQ[n, -1] || EqQ[p, 1]) && NeQ[b*e + a*f, 0] && ( !IntegerQ[n] || LtQ[9*p + 5*n, 0] || GeQ[n + p + 1, 0] || (GeQ[n + p + 2, 0] && RationalQ[a, b, d, e, f])) && (NeQ[n + p + 3, 0] || EqQ[p, 1])
Int[Times[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)*(c + d*x)^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, c, d, e, f, n}, x] && NeQ[b*c - a*d, 0] && ((ILtQ[n, 0] && ILtQ[p, 0]) || EqQ[p, 1] || (IGtQ[p, 0] && ( !IntegerQ[n] || LeQ[9*p + 5*(n + 2), 0] || GeQ[n + p + 1, 0] || (GeQ[n + p + 2, 0] && RationalQ[a, b, c, d, e, f]))))
Int[Times[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e - a*f)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(f*(p + 1)*(c*f - d*e)), x] - Dist[(a*d*f*(n + p + 2) - b*(d*e*(n + 1) + c*f*(p + 1)))/(f*(p + 1)*(c*f - d*e)), Int[(c + d*x)^n*(e + f*x)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, f, n}, x] && LtQ[p, -1] && ( !LtQ[n, -1] || IntegerQ[p] || !(IntegerQ[n] || !(EqQ[e, 0] || !(EqQ[c, 0] || LtQ[p, n]))))
Int[Times[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e - a*f)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(f*(p + 1)*(c*f - d*e)), x] - Dist[(a*d*f*(n + p + 2) - b*(d*e*(n + 1) + c*f*(p + 1)))/(f*(p + 1)*(c*f - d*e)), Int[(c + d*x)^n*(e + f*x)^Simplify[p + 1], x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && !RationalQ[p] && SumSimplerQ[p, 1]
Int[Times[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(d*f*(n + p + 2)), x] + Dist[(a*d*f*(n + p + 2) - b*(d*e*(n + 1) + c*f*(p + 1)))/(d*f*(n + p + 2)), Int[(c + d*x)^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && NeQ[n + p + 2, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], 2], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(c + d*x)^(n + 1)*(e + f*x)^(p + 1)*(2*a*d*f*(n + p + 3) - b*(d*e*(n + 2) + c*f*(p + 2)) + b*d*f*(n + p + 2)*x))/(d^2*f^2*(n + p + 2)*(n + p + 3)), x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && NeQ[n + p + 2, 0] && NeQ[n + p + 3, 0] && EqQ[d*f*(n + p + 2)*(a^2*d*f*(n + p + 3) - b*(b*c*e + a*(d*e*(n + 1) + c*f*(p + 1)))) - b*(d*e*(n + 1) + c*f*(p + 1))*(a*d*f*(n + p + 4) - b*(d*e*(n + 2) + c*f*(p + 2))), 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[a, Int[(a + b*x)^n*(c + d*x)^n*(f*x)^p, x], x] + Dist[b/f, Int[(a + b*x)^n*(c + d*x)^n*(f*x)^(p + 1), x], x] /; FreeQ[{a, b, c, d, f, m, n, p}, x] && EqQ[b*c + a*d, 0] && EqQ[m - n - 1, 0] && !RationalQ[p] && !IGtQ[m, 0] && NeQ[m + n + p + 2, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(b*e - a*f)/(b*c - a*d), Int[(e + f*x)^(p - 1)/(a + b*x), x], x] - Dist[(d*e - c*f)/(b*c - a*d), Int[(e + f*x)^(p - 1)/(c + d*x), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && LtQ[0, p, 1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(f*(e + f*x)^(p - 1))/(b*d*(p - 1)), x] + Dist[1/(b*d), Int[((b*d*e^2 - a*c*f^2 + f*(2*b*d*e - b*c*f - a*d*f)*x)*(e + f*x)^(p - 2))/((a + b*x)*(c + d*x)), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && GtQ[p, 1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(f*(e + f*x)^(p + 1))/((p + 1)*(b*e - a*f)*(d*e - c*f)), x] + Dist[1/((b*e - a*f)*(d*e - c*f)), Int[((b*d*e - b*c*f - a*d*f - b*d*f*x)*(e + f*x)^(p + 1))/((a + b*x)*(c + d*x)), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && LtQ[p, -1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[(e + f*x)^p/(a + b*x), x], x] - Dist[d/(b*c - a*d), Int[(e + f*x)^p/(c + d*x), x], x] /; FreeQ[{a, b, c, d, e, f, p}, x] && !IntegerQ[p]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(e + f*x)^FractionalPart[p], ((c + d*x)^n*(e + f*x)^IntegerPart[p])/(a + b*x), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && IGtQ[n, 0] && LtQ[p, -1] && FractionQ[p]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)^m*(c + d*x)^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, c, d, e, f, p}, x] && IntegersQ[m, n] && (IntegerQ[p] || (GtQ[m, 0] && GeQ[n, -1]))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], 2], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*c - a*d)^2*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(d^2*(d*e - c*f)*(n + 1)), x] - Dist[1/(d^2*(d*e - c*f)*(n + 1)), Int[(c + d*x)^(n + 1)*(e + f*x)^p*Simp[a^2*d^2*f*(n + p + 2) + b^2*c*(d*e*(n + 1) + c*f*(p + 1)) - 2*a*b*d*(d*e*(n + 1) + c*f*(p + 1)) - b^2*d*(d*e - c*f)*(n + 1)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && (LtQ[n, -1] || (EqQ[n + p + 3, 0] && NeQ[n, -1] && (SumSimplerQ[n, 1] || !SumSimplerQ[p, 1])))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], 2], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(d*f*(n + p + 3)), x] + Dist[1/(d*f*(n + p + 3)), Int[(c + d*x)^n*(e + f*x)^p*Simp[a^2*d*f*(n + p + 3) - b*(b*c*e + a*(d*e*(n + 1) + c*f*(p + 1))) + b*(a*d*f*(n + p + 4) - b*(d*e*(n + 2) + c*f*(p + 2)))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && NeQ[n + p + 3, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 3]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-2, 3]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(d*e - c*f)/(b*e - a*f), 3]}, -Simp[(Sqrt[3]*q*ArcTan[1/Sqrt[3] + (2*q*(a + b*x)^(1/3))/(Sqrt[3]*(c + d*x)^(1/3))])/(d*e - c*f), x] + (Simp[(q*Log[e + f*x])/(2*(d*e - c*f)), x] - Simp[(3*q*Log[q*(a + b*x)^(1/3) - (c + d*x)^(1/3)])/(2*(d*e - c*f)), x])] /; FreeQ[{a, b, c, d, e, f}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b*f, Subst[Int[1/(d*(b*e - a*f)^2 + b*f^2*x^2), x], x, Sqrt[a + b*x]*Sqrt[c + d*x]], x] /; FreeQ[{a, b, c, d, e, f}, x] && EqQ[2*b*d*e - f*(b*c + a*d), 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Denominator[m]}, Dist[q, Subst[Int[x^(q*(m + 1) - 1)/(b*e - a*f - (d*e - c*f)*x^q), x], x, (a + b*x)^(1/q)/(c + d*x)^(1/q)], x]] /; FreeQ[{a, b, c, d, e, f}, x] && EqQ[m + n + 1, 0] && RationalQ[n] && LtQ[-1, m, 0] && SimplerQ[a + b*x, c + d*x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^(p + 1))/((m + 1)*(b*e - a*f)), x] - Dist[(n*(d*e - c*f))/((m + 1)*(b*e - a*f)), Int[(a + b*x)^(m + 1)*(c + d*x)^(n - 1)*(e + f*x)^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, p}, x] && EqQ[m + n + p + 2, 0] && GtQ[n, 0] && !(SumSimplerQ[p, 1] && !SumSimplerQ[m, 1])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)^(m + 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/((m + 1)*(b*c - a*d)*(b*e - a*f)), x] /; FreeQ[{a, b, c, d, e, f, m, n, p}, x] && EqQ[Simplify[m + n + p + 3], 0] && EqQ[a*d*f*(m + 1) + b*c*f*(n + 1) + b*d*e*(p + 1), 0] && NeQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)^(m + 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/((m + 1)*(b*c - a*d)*(b*e - a*f)), x] + Dist[(a*d*f*(m + 1) + b*c*f*(n + 1) + b*d*e*(p + 1))/((m + 1)*(b*c - a*d)*(b*e - a*f)), Int[(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, n, p}, x] && EqQ[Simplify[m + n + p + 3], 0] && (LtQ[m, -1] || SumSimplerQ[m, 1])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p)/(b*(m + 1)), x] - Dist[1/(b*(m + 1)), Int[(a + b*x)^(m + 1)*(c + d*x)^(n - 1)*(e + f*x)^(p - 1)*Simp[d*e*n + c*f*p + d*f*(n + p)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f}, x] && LtQ[m, -1] && GtQ[n, 0] && GtQ[p, 0] && (IntegersQ[2*m, 2*n, 2*p] || IntegersQ[m, n + p] || IntegersQ[p, m + n])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*c - a*d)*(a + b*x)^(m + 1)*(c + d*x)^(n - 1)*(e + f*x)^(p + 1))/(b*(b*e - a*f)*(m + 1)), x] + Dist[1/(b*(b*e - a*f)*(m + 1)), Int[(a + b*x)^(m + 1)*(c + d*x)^(n - 2)*(e + f*x)^p*Simp[a*d*(d*e*(n - 1) + c*f*(p + 1)) + b*c*(d*e*(m - n + 2) - c*f*(m + p + 2)) + d*(a*d*f*(n + p) + b*(d*e*(m + 1) - c*f*(m + n + p + 1)))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, p}, x] && LtQ[m, -1] && GtQ[n, 1] && (IntegersQ[2*m, 2*n, 2*p] || IntegersQ[m, n + p] || IntegersQ[p, m + n])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^(p + 1))/((m + 1)*(b*e - a*f)), x] - Dist[1/((m + 1)*(b*e - a*f)), Int[(a + b*x)^(m + 1)*(c + d*x)^(n - 1)*(e + f*x)^p*Simp[d*e*n + c*f*(m + p + 2) + d*f*(m + n + p + 2)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, p}, x] && LtQ[m, -1] && GtQ[n, 0] && (IntegersQ[2*m, 2*n, 2*p] || IntegersQ[m, n + p] || IntegersQ[p, m + n])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)^(m - 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(d*f*(m + n + p + 1)), x] + Dist[1/(d*f*(m + n + p + 1)), Int[(a + b*x)^(m - 2)*(c + d*x)^n*(e + f*x)^p*Simp[a^2*d*f*(m + n + p + 1) - b*(b*c*e*(m - 1) + a*(d*e*(n + 1) + c*f*(p + 1))) + b*(a*d*f*(2*m + n + p) - b*(d*e*(m + n) + c*f*(m + p)))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && GtQ[m, 1] && NeQ[m + n + p + 1, 0] && IntegerQ[m]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^m*(c + d*x)^n*(e + f*x)^(p + 1))/(f*(m + n + p + 1)), x] - Dist[1/(f*(m + n + p + 1)), Int[(a + b*x)^(m - 1)*(c + d*x)^(n - 1)*(e + f*x)^p*Simp[c*m*(b*e - a*f) + a*n*(d*e - c*f) + (d*m*(b*e - a*f) + b*n*(d*e - c*f))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, p}, x] && GtQ[m, 0] && GtQ[n, 0] && NeQ[m + n + p + 1, 0] && (IntegersQ[2*m, 2*n, 2*p] || (IntegersQ[m, n + p] || IntegersQ[p, m + n]))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)^(m - 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(d*f*(m + n + p + 1)), x] + Dist[1/(d*f*(m + n + p + 1)), Int[(a + b*x)^(m - 2)*(c + d*x)^n*(e + f*x)^p*Simp[a^2*d*f*(m + n + p + 1) - b*(b*c*e*(m - 1) + a*(d*e*(n + 1) + c*f*(p + 1))) + b*(a*d*f*(2*m + n + p) - b*(d*e*(m + n) + c*f*(m + p)))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && GtQ[m, 1] && NeQ[m + n + p + 1, 0] && IntegersQ[2*m, 2*n, 2*p]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)^(m + 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/((m + 1)*(b*c - a*d)*(b*e - a*f)), x] + Dist[1/((m + 1)*(b*c - a*d)*(b*e - a*f)), Int[(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p*Simp[a*d*f*(m + 1) - b*(d*e*(m + n + 2) + c*f*(m + p + 2)) - b*d*f*(m + n + p + 3)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && LtQ[m, -1] && IntegerQ[m] && (IntegerQ[n] || IntegersQ[2*n, 2*p])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)^(m + 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/((m + 1)*(b*c - a*d)*(b*e - a*f)), x] + Dist[1/((m + 1)*(b*c - a*d)*(b*e - a*f)), Int[(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p*Simp[a*d*f*(m + 1) - b*(d*e*(m + n + 2) + c*f*(m + p + 2)) - b*d*f*(m + n + p + 3)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && LtQ[m, -1] && IntegersQ[2*m, 2*n, 2*p]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/f, Int[(a + b*x)^(m - 1)*(c + d*x)^n, x], x] - Dist[(b*e - a*f)/f, Int[((a + b*x)^(m - 1)*(c + d*x)^n)/(e + f*x), x], x] /; FreeQ[{a, b, c, d, e, f, m, n}, x] && IGtQ[Simplify[m + n + 1], 0] && (GtQ[m, 0] || ( !RationalQ[m] && (SumSimplerQ[m, -1] || !SumSimplerQ[n, -1])))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Dist[-4, Subst[Int[x^2/((b*e - a*f - b*x^4)*Sqrt[c - (d*e)/f + (d*x^4)/f]), x], x, (e + f*x)^(1/4)], x] /; FreeQ[{a, b, c, d, e, f}, x] && GtQ[-(f/(d*e - c*f)), 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[-((f*(c + d*x))/(d*e - c*f))]/Sqrt[c + d*x], Int[1/((a + b*x)*Sqrt[-((c*f)/(d*e - c*f)) - (d*f*x)/(d*e - c*f)]*(e + f*x)^(1/4)), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && !GtQ[-(f/(d*e - c*f)), 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-3, 4]]], Pattern[x, Blank[Symbol]]] := Dist[-4, Subst[Int[1/((b*e - a*f - b*x^4)*Sqrt[c - (d*e)/f + (d*x^4)/f]), x], x, (e + f*x)^(1/4)], x] /; FreeQ[{a, b, c, d, e, f}, x] && GtQ[-(f/(d*e - c*f)), 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-3, 4]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[-((f*(c + d*x))/(d*e - c*f))]/Sqrt[c + d*x], Int[1/((a + b*x)*Sqrt[-((c*f)/(d*e - c*f)) - (d*f*x)/(d*e - c*f)]*(e + f*x)^(3/4)), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && !GtQ[-(f/(d*e - c*f)), 0]
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*Sqrt[e]*Rt[-(b/d), 2]*EllipticE[ArcSin[Sqrt[b*x]/(Sqrt[c]*Rt[-(b/d), 2])], (c*f)/(d*e)])/b, x] /; FreeQ[{b, c, d, e, f}, x] && NeQ[d*e - c*f, 0] && GtQ[c, 0] && GtQ[e, 0] && !LtQ[-(b/d), 0]
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[-(b*x)]/Sqrt[b*x], Int[Sqrt[e + f*x]/(Sqrt[-(b*x)]*Sqrt[c + d*x]), x], x] /; FreeQ[{b, c, d, e, f}, x] && NeQ[d*e - c*f, 0] && GtQ[c, 0] && GtQ[e, 0] && LtQ[-(b/d), 0]
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[e + f*x]*Sqrt[1 + (d*x)/c])/(Sqrt[c + d*x]*Sqrt[1 + (f*x)/e]), Int[Sqrt[1 + (f*x)/e]/(Sqrt[b*x]*Sqrt[1 + (d*x)/c]), x], x] /; FreeQ[{b, c, d, e, f}, x] && NeQ[d*e - c*f, 0] && !(GtQ[c, 0] && GtQ[e, 0])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*Rt[-((b*e - a*f)/d), 2]*EllipticE[ArcSin[Sqrt[a + b*x]/Rt[-((b*c - a*d)/d), 2]], (f*(b*c - a*d))/(d*(b*e - a*f))])/b, x] /; FreeQ[{a, b, c, d, e, f}, x] && GtQ[b/(b*c - a*d), 0] && GtQ[b/(b*e - a*f), 0] && !LtQ[-((b*c - a*d)/d), 0] && !(SimplerQ[c + d*x, a + b*x] && GtQ[-(d/(b*c - a*d)), 0] && GtQ[d/(d*e - c*f), 0] && !LtQ[(b*c - a*d)/b, 0])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[e + f*x]*Sqrt[(b*(c + d*x))/(b*c - a*d)])/(Sqrt[c + d*x]*Sqrt[(b*(e + f*x))/(b*e - a*f)]), Int[Sqrt[(b*e)/(b*e - a*f) + (b*f*x)/(b*e - a*f)]/(Sqrt[a + b*x]*Sqrt[(b*c)/(b*c - a*d) + (b*d*x)/(b*c - a*d)]), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && !(GtQ[b/(b*c - a*d), 0] && GtQ[b/(b*e - a*f), 0]) && !LtQ[-((b*c - a*d)/d), 0]
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*Rt[-(b/d), 2]*EllipticF[ArcSin[Sqrt[b*x]/(Sqrt[c]*Rt[-(b/d), 2])], (c*f)/(d*e)])/(b*Sqrt[e]), x] /; FreeQ[{b, c, d, e, f}, x] && GtQ[c, 0] && GtQ[e, 0] && (GtQ[-(b/d), 0] || LtQ[-(b/f), 0])
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*Rt[-(b/d), 2]*EllipticF[ArcSin[Sqrt[b*x]/(Sqrt[c]*Rt[-(b/d), 2])], (c*f)/(d*e)])/(b*Sqrt[e]), x] /; FreeQ[{b, c, d, e, f}, x] && GtQ[c, 0] && GtQ[e, 0] && (PosQ[-(b/d)] || NegQ[-(b/f)])
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[1 + (d*x)/c]*Sqrt[1 + (f*x)/e])/(Sqrt[c + d*x]*Sqrt[e + f*x]), Int[1/(Sqrt[b*x]*Sqrt[1 + (d*x)/c]*Sqrt[1 + (f*x)/e]), x], x] /; FreeQ[{b, c, d, e, f}, x] && !(GtQ[c, 0] && GtQ[e, 0])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(-2*Sqrt[d/f]*EllipticF[ArcSin[Rt[-((b*e - a*f)/f), 2]/Sqrt[a + b*x]], (f*(b*c - a*d))/(d*(b*e - a*f))])/(d*Rt[-((b*e - a*f)/f), 2]), x] /; FreeQ[{a, b, c, d, e, f}, x] && GtQ[d/b, 0] && GtQ[f/b, 0] && LeQ[c, (a*d)/b] && LeQ[e, (a*f)/b]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*Rt[-(b/d), 2]*EllipticF[ArcSin[Sqrt[a + b*x]/(Rt[-(b/d), 2]*Sqrt[(b*c - a*d)/b])], (f*(b*c - a*d))/(d*(b*e - a*f))])/(b*Sqrt[(b*e - a*f)/b]), x] /; FreeQ[{a, b, c, d, e, f}, x] && GtQ[(b*c - a*d)/b, 0] && GtQ[(b*e - a*f)/b, 0] && PosQ[-(b/d)] && !(SimplerQ[c + d*x, a + b*x] && GtQ[(d*e - c*f)/d, 0] && GtQ[-(d/b), 0]) && !(SimplerQ[c + d*x, a + b*x] && GtQ[(-(b*e) + a*f)/f, 0] && GtQ[-(f/b), 0]) && !(SimplerQ[e + f*x, a + b*x] && GtQ[(-(d*e) + c*f)/f, 0] && GtQ[(-(b*e) + a*f)/f, 0] && (PosQ[-(f/d)] || PosQ[-(f/b)]))
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*Rt[-(b/d), 2]*EllipticF[ArcSin[Sqrt[a + b*x]/(Rt[-(b/d), 2]*Sqrt[(b*c - a*d)/b])], (f*(b*c - a*d))/(d*(b*e - a*f))])/(b*Sqrt[(b*e - a*f)/b]), x] /; FreeQ[{a, b, c, d, e, f}, x] && GtQ[b/(b*c - a*d), 0] && GtQ[b/(b*e - a*f), 0] && SimplerQ[a + b*x, c + d*x] && SimplerQ[a + b*x, e + f*x] && (PosQ[-((b*c - a*d)/d)] || NegQ[-((b*e - a*f)/f)])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[(b*(c + d*x))/(b*c - a*d)]/Sqrt[c + d*x], Int[1/(Sqrt[a + b*x]*Sqrt[(b*c)/(b*c - a*d) + (b*d*x)/(b*c - a*d)]*Sqrt[e + f*x]), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && !GtQ[(b*c - a*d)/b, 0] && SimplerQ[a + b*x, c + d*x] && SimplerQ[a + b*x, e + f*x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[(b*(e + f*x))/(b*e - a*f)]/Sqrt[e + f*x], Int[1/(Sqrt[a + b*x]*Sqrt[c + d*x]*Sqrt[(b*e)/(b*e - a*f) + (b*f*x)/(b*e - a*f)]), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && !GtQ[(b*e - a*f)/b, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 3]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(b*(b*e - a*f))/(b*c - a*d)^2, 3]}, -Simp[Log[a + b*x]/(2*q*(b*c - a*d)), x] + (-Simp[(Sqrt[3]*ArcTan[1/Sqrt[3] + (2*q*(c + d*x)^(2/3))/(Sqrt[3]*(e + f*x)^(1/3))])/(2*q*(b*c - a*d)), x] + Simp[(3*Log[q*(c + d*x)^(2/3) - (e + f*x)^(1/3)])/(4*q*(b*c - a*d)), x])] /; FreeQ[{a, b, c, d, e, f}, x] && EqQ[2*b*d*e - b*c*f - a*d*f, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 3]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)^(m + 1)*(c + d*x)^(2/3)*(e + f*x)^(2/3))/((m + 1)*(b*c - a*d)*(b*e - a*f)), x] + Dist[f/(6*(m + 1)*(b*c - a*d)*(b*e - a*f)), Int[((a + b*x)^(m + 1)*(a*d*(3*m + 1) - 3*b*c*(3*m + 5) - 2*b*d*(3*m + 7)*x))/((c + d*x)^(1/3)*(e + f*x)^(1/3)), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && EqQ[2*b*d*e - b*c*f - a*d*f, 0] && ILtQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(a*c + b*d*x^2)^m*(f*x)^p, x] /; FreeQ[{a, b, c, d, f, m, n, p}, x] && EqQ[b*c + a*d, 0] && EqQ[m - n, 0] && GtQ[a, 0] && GtQ[c, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[((a + b*x)^FracPart[m]*(c + d*x)^FracPart[m])/(a*c + b*d*x^2)^FracPart[m], Int[(a*c + b*d*x^2)^m*(f*x)^p, x], x] /; FreeQ[{a, b, c, d, f, m, n, p}, x] && EqQ[b*c + a*d, 0] && EqQ[m - n, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)^n*(c + d*x)^n*(f*x)^p, (a + b*x)^(m - n), x], x] /; FreeQ[{a, b, c, d, f, m, n, p}, x] && EqQ[b*c + a*d, 0] && IGtQ[m - n, 0] && NeQ[m + n + p + 2, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)^m*(c + d*x)^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && (IGtQ[m, 0] || (ILtQ[m, 0] && ILtQ[n, 0]))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)^(m + 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/((m + 1)*(b*c - a*d)*(b*e - a*f)), x] + Dist[1/((m + 1)*(b*c - a*d)*(b*e - a*f)), Int[(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p*Simp[a*d*f*(m + 1) - b*(d*e*(m + n + 2) + c*f*(m + p + 2)) - b*d*f*(m + n + p + 3)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, m, n, p}, x] && ILtQ[m + n + p + 2, 0] && NeQ[m, -1] && (SumSimplerQ[m, 1] || ( !(NeQ[n, -1] && SumSimplerQ[n, 1]) && !(NeQ[p, -1] && SumSimplerQ[p, 1])))
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[p]}, Dist[k/e, Subst[Int[x^(k*(p + 1) - 1)*(a + (b*x^k)/e)^m*(c + (d*x^k)/e)^n, x], x, (e*x)^(1/k)], x]] /; FreeQ[{a, b, c, d, e, m, n}, x] && NeQ[b*c - a*d, 0] && FractionQ[p] && IntegerQ[m]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*c - a*d)^n*(a + b*x)^(m + 1)*Hypergeometric2F1[m + 1, -n, m + 2, -(((d*e - c*f)*(a + b*x))/((b*c - a*d)*(e + f*x)))])/((m + 1)*(b*e - a*f)^(n + 1)*(e + f*x)^(m + 1)), x] /; FreeQ[{a, b, c, d, e, f, m, p}, x] && EqQ[m + n + p + 2, 0] && ILtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^(p + 1)*Hypergeometric2F1[m + 1, -n, m + 2, -(((d*e - c*f)*(a + b*x))/((b*c - a*d)*(e + f*x)))])/(((b*e - a*f)*(m + 1))*(((b*e - a*f)*(c + d*x))/((b*c - a*d)*(e + f*x)))^n), x] /; FreeQ[{a, b, c, d, e, f, m, n, p}, x] && EqQ[m + n + p + 2, 0] && !IntegerQ[n]
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^n*e^p*(b*x)^(m + 1)*AppellF1[m + 1, -n, -p, m + 2, -((d*x)/c), -((f*x)/e)])/(b*(m + 1)), x] /; FreeQ[{b, c, d, e, f, m, n, p}, x] && !IntegerQ[m] && !IntegerQ[n] && GtQ[c, 0] && (IntegerQ[p] || GtQ[e, 0])
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c + d*x)^(n + 1)*AppellF1[n + 1, -m, -p, n + 2, 1 + (d*x)/c, -((f*(c + d*x))/(d*e - c*f))])/(d*(n + 1)*(-(d/(b*c)))^m*(d/(d*e - c*f))^p), x] /; FreeQ[{b, c, d, e, f, m, n, p}, x] && !IntegerQ[m] && !IntegerQ[n] && GtQ[-(d/(b*c)), 0] && (IntegerQ[p] || GtQ[d/(d*e - c*f), 0])
Int[Times[Power[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[n]*(c + d*x)^FracPart[n])/(1 + (d*x)/c)^FracPart[n], Int[(b*x)^m*(1 + (d*x)/c)^n*(e + f*x)^p, x], x] /; FreeQ[{b, c, d, e, f, m, n, p}, x] && !IntegerQ[m] && !IntegerQ[n] && !GtQ[c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*e - a*f)^p*(a + b*x)^(m + 1)*AppellF1[m + 1, -n, -p, m + 2, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))])/(b^(p + 1)*(m + 1)*(b/(b*c - a*d))^n), x] /; FreeQ[{a, b, c, d, e, f, m, n}, x] && !IntegerQ[m] && !IntegerQ[n] && IntegerQ[p] && GtQ[b/(b*c - a*d), 0] && !(GtQ[d/(d*a - c*b), 0] && SimplerQ[c + d*x, a + b*x])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c + d*x)^FracPart[n]/((b/(b*c - a*d))^IntPart[n]*((b*(c + d*x))/(b*c - a*d))^FracPart[n]), Int[(a + b*x)^m*((b*c)/(b*c - a*d) + (b*d*x)/(b*c - a*d))^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, n}, x] && !IntegerQ[m] && !IntegerQ[n] && IntegerQ[p] && !GtQ[b/(b*c - a*d), 0] && !SimplerQ[c + d*x, a + b*x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*AppellF1[m + 1, -n, -p, m + 2, -((d*(a + b*x))/(b*c - a*d)), -((f*(a + b*x))/(b*e - a*f))])/(b*(m + 1)*(b/(b*c - a*d))^n*(b/(b*e - a*f))^p), x] /; FreeQ[{a, b, c, d, e, f, m, n, p}, x] && !IntegerQ[m] && !IntegerQ[n] && !IntegerQ[p] && GtQ[b/(b*c - a*d), 0] && GtQ[b/(b*e - a*f), 0] && !(GtQ[d/(d*a - c*b), 0] && GtQ[d/(d*e - c*f), 0] && SimplerQ[c + d*x, a + b*x]) && !(GtQ[f/(f*a - e*b), 0] && GtQ[f/(f*c - e*d), 0] && SimplerQ[e + f*x, a + b*x])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(e + f*x)^FracPart[p]/((b/(b*e - a*f))^IntPart[p]*((b*(e + f*x))/(b*e - a*f))^FracPart[p]), Int[(a + b*x)^m*(c + d*x)^n*((b*e)/(b*e - a*f) + (b*f*x)/(b*e - a*f))^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, n, p}, x] && !IntegerQ[m] && !IntegerQ[n] && !IntegerQ[p] && GtQ[b/(b*c - a*d), 0] && !GtQ[b/(b*e - a*f), 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c + d*x)^FracPart[n]/((b/(b*c - a*d))^IntPart[n]*((b*(c + d*x))/(b*c - a*d))^FracPart[n]), Int[(a + b*x)^m*((b*c)/(b*c - a*d) + (b*d*x)/(b*c - a*d))^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, n, p}, x] && !IntegerQ[m] && !IntegerQ[n] && !IntegerQ[p] && !GtQ[b/(b*c - a*d), 0] && !SimplerQ[c + d*x, a + b*x] && !SimplerQ[e + f*x, a + b*x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x)^m*(c + d*x)^n*(e + f*x)^p, x], x, u], x] /; FreeQ[{a, b, c, d, e, f, m, n, p}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)^m*(c + d*x)^n*(e + f*x)*(g + h*x), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && (IGtQ[m, 0] || IntegersQ[m, n])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b^2*d*e*g - a^2*d*f*h*m - a*b*(d*(f*g + e*h) - c*f*h*(m + 1)) + b*f*h*(b*c - a*d)*(m + 1)*x)*(a + b*x)^(m + 1)*(c + d*x)^(n + 1))/(b^2*d*(b*c - a*d)*(m + 1)), x] + Dist[(a*d*f*h*m + b*(d*(f*g + e*h) - c*f*h*(m + 2)))/(b^2*d), Int[(a + b*x)^(m + 1)*(c + d*x)^n, x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, n}, x] && EqQ[m + n + 2, 0] && NeQ[m, -1] && !(SumSimplerQ[n, 1] && !SumSimplerQ[m, 1])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b^2*c*d*e*g*(n + 1) + a^2*c*d*f*h*(n + 1) + a*b*(d^2*e*g*(m + 1) + c^2*f*h*(m + 1) - c*d*(f*g + e*h)*(m + n + 2)) + (a^2*d^2*f*h*(n + 1) - a*b*d^2*(f*g + e*h)*(n + 1) + b^2*(c^2*f*h*(m + 1) - c*d*(f*g + e*h)*(m + 1) + d^2*e*g*(m + n + 2)))*x)*(a + b*x)^(m + 1)*(c + d*x)^(n + 1))/(b*d*(b*c - a*d)^2*(m + 1)*(n + 1)), x] - Dist[(a^2*d^2*f*h*(2 + 3*n + n^2) + a*b*d*(n + 1)*(2*c*f*h*(m + 1) - d*(f*g + e*h)*(m + n + 3)) + b^2*(c^2*f*h*(2 + 3*m + m^2) - c*d*(f*g + e*h)*(m + 1)*(m + n + 3) + d^2*e*g*(6 + m^2 + 5*n + n^2 + m*(2*n + 5))))/(b*d*(b*c - a*d)^2*(m + 1)*(n + 1)), Int[(a + b*x)^(m + 1)*(c + d*x)^(n + 1), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && LtQ[m, -1] && LtQ[n, -1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b^3*c*e*g*(m + 2) - a^3*d*f*h*(n + 2) - a^2*b*(c*f*h*m - d*(f*g + e*h)*(m + n + 3)) - a*b^2*(c*(f*g + e*h) + d*e*g*(2*m + n + 4)) + b*(a^2*d*f*h*(m - n) - a*b*(2*c*f*h*(m + 1) - d*(f*g + e*h)*(n + 1)) + b^2*(c*(f*g + e*h)*(m + 1) - d*e*g*(m + n + 2)))*x)*(a + b*x)^(m + 1)*(c + d*x)^(n + 1))/(b^2*(b*c - a*d)^2*(m + 1)*(m + 2)), x] + Dist[(f*h)/b^2 - (d*(m + n + 3)*(a^2*d*f*h*(m - n) - a*b*(2*c*f*h*(m + 1) - d*(f*g + e*h)*(n + 1)) + b^2*(c*(f*g + e*h)*(m + 1) - d*e*g*(m + n + 2))))/(b^2*(b*c - a*d)^2*(m + 1)*(m + 2)), Int[(a + b*x)^(m + 2)*(c + d*x)^n, x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, n}, x] && (LtQ[m, -2] || (EqQ[m + n + 3, 0] && !LtQ[n, -2]))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((a^2*d*f*h*(n + 2) + b^2*d*e*g*(m + n + 3) + a*b*(c*f*h*(m + 1) - d*(f*g + e*h)*(m + n + 3)) + b*f*h*(b*c - a*d)*(m + 1)*x)*(a + b*x)^(m + 1)*(c + d*x)^(n + 1))/(b^2*d*(b*c - a*d)*(m + 1)*(m + n + 3)), x] - Dist[(a^2*d^2*f*h*(n + 1)*(n + 2) + a*b*d*(n + 1)*(2*c*f*h*(m + 1) - d*(f*g + e*h)*(m + n + 3)) + b^2*(c^2*f*h*(m + 1)*(m + 2) - c*d*(f*g + e*h)*(m + 1)*(m + n + 3) + d^2*e*g*(m + n + 2)*(m + n + 3)))/(b^2*d*(b*c - a*d)*(m + 1)*(m + n + 3)), Int[(a + b*x)^(m + 1)*(c + d*x)^n, x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, n}, x] && ((GeQ[m, -2] && LtQ[m, -1]) || SumSimplerQ[m, 1]) && NeQ[m, -1] && NeQ[m + n + 3, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((a*d*f*h*(n + 2) + b*c*f*h*(m + 2) - b*d*(f*g + e*h)*(m + n + 3) - b*d*f*h*(m + n + 2)*x)*(a + b*x)^(m + 1)*(c + d*x)^(n + 1))/(b^2*d^2*(m + n + 2)*(m + n + 3)), x] + Dist[(a^2*d^2*f*h*(n + 1)*(n + 2) + a*b*d*(n + 1)*(2*c*f*h*(m + 1) - d*(f*g + e*h)*(m + n + 3)) + b^2*(c^2*f*h*(m + 1)*(m + 2) - c*d*(f*g + e*h)*(m + 1)*(m + n + 3) + d^2*e*g*(m + n + 2)*(m + n + 3)))/(b^2*d^2*(m + n + 2)*(m + n + 3)), Int[(a + b*x)^m*(c + d*x)^n, x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, n}, x] && NeQ[m + n + 2, 0] && NeQ[m + n + 3, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x), x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m}, x] && (IntegersQ[m, n, p] || (IGtQ[n, 0] && IGtQ[p, 0]))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*g - a*h)*(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^(p + 1))/(b*(b*e - a*f)*(m + 1)), x] - Dist[1/(b*(b*e - a*f)*(m + 1)), Int[(a + b*x)^(m + 1)*(c + d*x)^(n - 1)*(e + f*x)^p*Simp[b*c*(f*g - e*h)*(m + 1) + (b*g - a*h)*(d*e*n + c*f*(p + 1)) + d*(b*(f*g - e*h)*(m + 1) + f*(b*g - a*h)*(n + p + 1))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, p}, x] && LtQ[m, -1] && GtQ[n, 0] && IntegerQ[m]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*g - a*h)*(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^(p + 1))/(b*(b*e - a*f)*(m + 1)), x] - Dist[1/(b*(b*e - a*f)*(m + 1)), Int[(a + b*x)^(m + 1)*(c + d*x)^(n - 1)*(e + f*x)^p*Simp[b*c*(f*g - e*h)*(m + 1) + (b*g - a*h)*(d*e*n + c*f*(p + 1)) + d*(b*(f*g - e*h)*(m + 1) + f*(b*g - a*h)*(n + p + 1))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, p}, x] && LtQ[m, -1] && GtQ[n, 0] && IntegersQ[2*m, 2*n, 2*p]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*g - a*h)*(a + b*x)^(m + 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/((m + 1)*(b*c - a*d)*(b*e - a*f)), x] + Dist[1/((m + 1)*(b*c - a*d)*(b*e - a*f)), Int[(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p*Simp[(a*d*f*g - b*(d*e + c*f)*g + b*c*e*h)*(m + 1) - (b*g - a*h)*(d*e*(n + 1) + c*f*(p + 1)) - d*f*(b*g - a*h)*(m + n + p + 3)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, n, p}, x] && LtQ[m, -1] && IntegerQ[m]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*g - a*h)*(a + b*x)^(m + 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/((m + 1)*(b*c - a*d)*(b*e - a*f)), x] + Dist[1/((m + 1)*(b*c - a*d)*(b*e - a*f)), Int[(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p*Simp[(a*d*f*g - b*(d*e + c*f)*g + b*c*e*h)*(m + 1) - (b*g - a*h)*(d*e*(n + 1) + c*f*(p + 1)) - d*f*(b*g - a*h)*(m + n + p + 3)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, n, p}, x] && LtQ[m, -1] && IntegersQ[2*m, 2*n, 2*p]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(h*(a + b*x)^m*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(d*f*(m + n + p + 2)), x] + Dist[1/(d*f*(m + n + p + 2)), Int[(a + b*x)^(m - 1)*(c + d*x)^n*(e + f*x)^p*Simp[a*d*f*g*(m + n + p + 2) - h*(b*c*e*m + a*(d*e*(n + 1) + c*f*(p + 1))) + (b*d*f*g*(m + n + p + 2) + h*(a*d*f*m - b*(d*e*(m + n + 1) + c*f*(m + p + 1))))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, n, p}, x] && GtQ[m, 0] && NeQ[m + n + p + 2, 0] && IntegerQ[m]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(h*(a + b*x)^m*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/(d*f*(m + n + p + 2)), x] + Dist[1/(d*f*(m + n + p + 2)), Int[(a + b*x)^(m - 1)*(c + d*x)^n*(e + f*x)^p*Simp[a*d*f*g*(m + n + p + 2) - h*(b*c*e*m + a*(d*e*(n + 1) + c*f*(p + 1))) + (b*d*f*g*(m + n + p + 2) + h*(a*d*f*m - b*(d*e*(m + n + 1) + c*f*(m + p + 1))))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, n, p}, x] && GtQ[m, 0] && NeQ[m + n + p + 2, 0] && IntegersQ[2*m, 2*n, 2*p]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*g - a*h)*(a + b*x)^(m + 1)*(c + d*x)^(n + 1)*(e + f*x)^(p + 1))/((m + 1)*(b*c - a*d)*(b*e - a*f)), x] + Dist[1/((m + 1)*(b*c - a*d)*(b*e - a*f)), Int[(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p*Simp[(a*d*f*g - b*(d*e + c*f)*g + b*c*e*h)*(m + 1) - (b*g - a*h)*(d*e*(n + 1) + c*f*(p + 1)) - d*f*(b*g - a*h)*(m + n + p + 3)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, n, p}, x] && ILtQ[m + n + p + 2, 0] && NeQ[m, -1] && (SumSimplerQ[m, 1] || ( !(NeQ[n, -1] && SumSimplerQ[n, 1]) && !(NeQ[p, -1] && SumSimplerQ[p, 1])))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(b*g - a*h)/(b*c - a*d), Int[(e + f*x)^p/(a + b*x), x], x] - Dist[(d*g - c*h)/(b*c - a*d), Int[(e + f*x)^p/(c + d*x), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[h/b, Int[(c + d*x)^n*(e + f*x)^p, x], x] + Dist[(b*g - a*h)/b, Int[((c + d*x)^n*(e + f*x)^p)/(a + b*x), x], x] /; FreeQ[{a, b, c, d, e, f, g, h, n, p}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[h/f, Int[Sqrt[e + f*x]/(Sqrt[a + b*x]*Sqrt[c + d*x]), x], x] + Dist[(f*g - e*h)/f, Int[1/(Sqrt[a + b*x]*Sqrt[c + d*x]*Sqrt[e + f*x]), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && SimplerQ[a + b*x, e + f*x] && SimplerQ[c + d*x, e + f*x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[h/b, Int[(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p, x], x] + Dist[(b*g - a*h)/b, Int[(a + b*x)^m*(c + d*x)^n*(e + f*x)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, n, p}, x] && (SumSimplerQ[m, 1] || ( !SumSimplerQ[n, 1] && !SumSimplerQ[p, 1]))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x])/(b*(m + 1)), x] - Dist[1/(2*b*(m + 1)), Int[((a + b*x)^(m + 1)*Simp[d*e*g + c*f*g + c*e*h + 2*(d*f*g + d*e*h + c*f*h)*x + 3*d*f*h*x^2, x])/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m}, x] && IntegerQ[2*m] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*(a + b*x)^(m + 1)*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x])/(b*(2*m + 5)), x] + Dist[1/(b*(2*m + 5)), Int[((a + b*x)^m*Simp[3*b*c*e*g - a*(d*e*g + c*f*g + c*e*h) + 2*(b*(d*e*g + c*f*g + c*e*h) - a*(d*f*g + d*e*h + c*f*h))*x - (3*a*d*f*h - b*(d*f*g + d*e*h + c*f*h))*x^2, x])/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m}, x] && IntegerQ[2*m] && !LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*(a + b*x)^m*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x])/(d*(2*m + 3)), x] - Dist[1/(d*(2*m + 3)), Int[((a + b*x)^(m - 1)/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]))*Simp[2*b*c*e*g*m + a*(c*(f*g + e*h) - 2*d*e*g*(m + 1)) - (b*(2*d*e*g - c*(f*g + e*h)*(2*m + 1)) - a*(2*c*f*h - d*(2*m + 1)*(f*g + e*h)))*x - (2*a*d*f*h*m + b*(d*(f*g + e*h) - 2*c*f*h*(m + 1)))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m}, x] && IntegerQ[2*m] && GtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[((b*e - a*f)*(b*g - a*h))/b^2, Int[1/((a + b*x)*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] + Dist[1/b^2, Int[Simp[b*f*g + b*e*h - a*f*h + b*f*h*x, x]/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x)^(m + 1)*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x])/((m + 1)*(b*c - a*d)), x] - Dist[1/(2*(m + 1)*(b*c - a*d)), Int[((a + b*x)^(m + 1)/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]))*Simp[c*(f*g + e*h) + d*e*g*(2*m + 3) + 2*(c*f*h + d*(m + 2)*(f*g + e*h))*x + d*f*h*(2*m + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m}, x] && IntegerQ[2*m] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(2*(a + b*x)*Sqrt[((b*g - a*h)*(c + d*x))/((d*g - c*h)*(a + b*x))]*Sqrt[((b*g - a*h)*(e + f*x))/((f*g - e*h)*(a + b*x))])/(Sqrt[c + d*x]*Sqrt[e + f*x]), Subst[Int[1/((h - b*x^2)*Sqrt[1 + ((b*c - a*d)*x^2)/(d*g - c*h)]*Sqrt[1 + ((b*e - a*f)*x^2)/(f*g - e*h)]), x], x, Sqrt[g + h*x]/Sqrt[a + b*x]], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[3, 2]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[b/d, Int[(Sqrt[a + b*x]*Sqrt[c + d*x])/(Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] - Dist[(b*c - a*d)/d, Int[Sqrt[a + b*x]/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*b^2*(a + b*x)^(m - 2)*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x])/(d*f*h*(2*m - 1)), x] - Dist[1/(d*f*h*(2*m - 1)), Int[((a + b*x)^(m - 3)/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]))*Simp[a*b^2*(d*e*g + c*f*g + c*e*h) + 2*b^3*c*e*g*(m - 2) - a^3*d*f*h*(2*m - 1) + b*(2*a*b*(d*f*g + d*e*h + c*f*h) + b^2*(2*m - 3)*(d*e*g + c*f*g + c*e*h) - 3*a^2*d*f*h*(2*m - 1))*x - 2*b^2*(m - 1)*(3*a*d*f*h - b*(d*f*g + d*e*h + c*f*h))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && IntegerQ[2*m] && GeQ[m, 2]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2, Subst[Int[1/(Simp[b*c - a*d - b*x^2, x]*Sqrt[Simp[(d*e - c*f)/d + (f*x^2)/d, x]]*Sqrt[Simp[(d*g - c*h)/d + (h*x^2)/d, x]]), x], x, Sqrt[c + d*x]], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && GtQ[(d*e - c*f)/d, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2, Subst[Int[1/(Simp[b*c - a*d - b*x^2, x]*Sqrt[Simp[(d*e - c*f)/d + (f*x^2)/d, x]]*Sqrt[Simp[(d*g - c*h)/d + (h*x^2)/d, x]]), x], x, Sqrt[c + d*x]], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && !SimplerQ[e + f*x, c + d*x] && !SimplerQ[g + h*x, c + d*x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(2*Sqrt[g + h*x]*Sqrt[((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x))])/((f*g - e*h)*Sqrt[c + d*x]*Sqrt[-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x)))]), Subst[Int[1/(Sqrt[1 + ((b*c - a*d)*x^2)/(d*e - c*f)]*Sqrt[1 - ((b*g - a*h)*x^2)/(f*g - e*h)]), x], x, Sqrt[e + f*x]/Sqrt[a + b*x]], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-3, 2]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Dist[d/(b*c - a*d), Int[1/(Sqrt[a + b*x]*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] + Dist[b/(b*c - a*d), Int[Sqrt[c + d*x]/((a + b*x)^(3/2)*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(b^2*(a + b*x)^(m + 1)*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x])/((m + 1)*(b*c - a*d)*(b*e - a*f)*(b*g - a*h)), x] - Dist[1/(2*(m + 1)*(b*c - a*d)*(b*e - a*f)*(b*g - a*h)), Int[((a + b*x)^(m + 1)/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]))*Simp[2*a^2*d*f*h*(m + 1) - 2*a*b*(m + 1)*(d*f*g + d*e*h + c*f*h) + b^2*(2*m + 3)*(d*e*g + c*f*g + c*e*h) - 2*b*(a*d*f*h*(m + 1) - b*(m + 2)*(d*f*g + d*e*h + c*f*h))*x + d*f*h*(2*m + 5)*b^2*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && IntegerQ[2*m] && LeQ[m, -2]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(Sqrt[a + b*x]*Sqrt[c + d*x]*Sqrt[g + h*x])/(h*Sqrt[e + f*x]), x] + (-Dist[((d*e - c*f)*(f*g - e*h))/(2*f*h), Int[Sqrt[a + b*x]/(Sqrt[c + d*x]*(e + f*x)^(3/2)*Sqrt[g + h*x]), x], x] + Dist[((d*e - c*f)*(b*f*g + b*e*h - 2*a*f*h))/(2*f^2*h), Int[1/(Sqrt[a + b*x]*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] + Dist[(a*d*f*h - b*(d*f*g + d*e*h - c*f*h))/(2*f^2*h), Int[Sqrt[e + f*x]/(Sqrt[a + b*x]*Sqrt[c + d*x]*Sqrt[g + h*x]), x], x]) /; FreeQ[{a, b, c, d, e, f, g, h}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*b*(a + b*x)^(m - 1)*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x])/(f*h*(2*m + 1)), x] - Dist[1/(f*h*(2*m + 1)), Int[((a + b*x)^(m - 2)/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]))*Simp[a*b*(d*e*g + c*(f*g + e*h)) + 2*b^2*c*e*g*(m - 1) - a^2*c*f*h*(2*m + 1) + (b^2*(2*m - 1)*(d*e*g + c*(f*g + e*h)) - a^2*d*f*h*(2*m + 1) + 2*a*b*(d*f*g + d*e*h - 2*c*f*h*m))*x - b*(a*d*f*h*(4*m - 1) + b*(c*f*h - 2*d*(f*g + e*h)*m))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m}, x] && IntegerQ[2*m] && GtQ[m, 1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[d/b, Int[1/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] + Dist[(b*c - a*d)/b, Int[1/((a + b*x)*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Rational[-3, 2]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(-2*Sqrt[c + d*x]*Sqrt[-(((b*e - a*f)*(g + h*x))/((f*g - e*h)*(a + b*x)))])/((b*e - a*f)*Sqrt[g + h*x]*Sqrt[((b*e - a*f)*(c + d*x))/((d*e - c*f)*(a + b*x))]), Subst[Int[Sqrt[1 + ((b*c - a*d)*x^2)/(d*e - c*f)]/Sqrt[1 - ((b*g - a*h)*x^2)/(f*g - e*h)], x], x, Sqrt[e + f*x]/Sqrt[a + b*x]], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(b*(a + b*x)^(m + 1)*Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x])/((m + 1)*(b*e - a*f)*(b*g - a*h)), x] + Dist[1/(2*(m + 1)*(b*e - a*f)*(b*g - a*h)), Int[((a + b*x)^(m + 1)/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]))*Simp[2*a*c*f*h*(m + 1) - b*(d*e*g + c*(2*m + 3)*(f*g + e*h)) + 2*(a*d*f*h*(m + 1) - b*(m + 2)*(d*f*g + d*e*h + c*f*h))*x - b*d*f*h*(2*m + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m}, x] && IntegerQ[2*m] && LeQ[m, -2]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(b*e - a*f)/(b*c - a*d), Int[((e + f*x)^(p - 1)*(g + h*x)^q)/(a + b*x), x], x] - Dist[(d*e - c*f)/(b*c - a*d), Int[((e + f*x)^(p - 1)*(g + h*x)^q)/(c + d*x), x], x] /; FreeQ[{a, b, c, d, e, f, g, h, q}, x] && LtQ[0, p, 1]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[1/(Sqrt[c + d*x]*Sqrt[e + f*x]*Sqrt[g + h*x]), (a + b*x)^m*(c + d*x)^(n + 1/2), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && IntegerQ[m] && IntegerQ[n + 1/2]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x)^q, x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, n}, x] && IntegersQ[p, q]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[h/b, Int[(a + b*x)^(m + 1)*(c + d*x)^n*(e + f*x)^p*(g + h*x)^(q - 1), x], x] + Dist[(b*g - a*h)/b, Int[(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x)^(q - 1), x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, n, p}, x] && IGtQ[q, 0] && (SumSimplerQ[m, 1] || ( !SumSimplerQ[n, 1] && !SumSimplerQ[p, 1]))
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := CannotIntegrate[(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x)^q, x] /; FreeQ[{a, b, c, d, e, f, g, h, m, n, p, q}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x)^q, x], x, u], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, n, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Power[Times[Optional[Pattern[i, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Pattern[q, Blank[]]]], Pattern[r, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(i*(a + b*x)^m*(c + d*x)^n*(e + f*x)^p*(g + h*x)^q)^r/((a + b*x)^(m*r)*(c + d*x)^(n*r)*(e + f*x)^(p*r)*(g + h*x)^(q*r)), Int[(a + b*x)^(m*r)*(c + d*x)^(n*r)*(e + f*x)^(p*r)*(g + h*x)^(q*r), x], x] /; FreeQ[{a, b, c, d, e, f, g, h, i, m, n, p, q, r}, x]
Int[Power[Pattern[u, Blank[]], Pattern[m, Blank[]]], Pattern[x, Blank[Symbol]]] := Int[ExpandToSum[u, x]^m, x] /; FreeQ[m, x] && LinearQ[u, x] && !LinearMatchQ[u, x]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Pattern[v, Blank[]], Optional[Pattern[n, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandToSum[u, x]^m*ExpandToSum[v, x]^n, x] /; FreeQ[{m, n}, x] && LinearQ[{u, v}, x] && !LinearMatchQ[{u, v}, x]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Pattern[v, Blank[]], Optional[Pattern[n, Blank[]]]], Power[Pattern[w, Blank[]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandToSum[u, x]^m*ExpandToSum[v, x]^n*ExpandToSum[w, x]^p, x] /; FreeQ[{m, n, p}, x] && LinearQ[{u, v, w}, x] && !LinearMatchQ[{u, v, w}, x]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Pattern[v, Blank[]], Optional[Pattern[n, Blank[]]]], Power[Pattern[w, Blank[]], Optional[Pattern[p, Blank[]]]], Power[Pattern[z, Blank[]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandToSum[u, x]^m*ExpandToSum[v, x]^n*ExpandToSum[w, x]^p*ExpandToSum[z, x]^q, x] /; FreeQ[{m, n, p, q}, x] && LinearQ[{u, v, w, z}, x] && !LinearMatchQ[{u, v, w, z}, x]
Int[Power[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(b^IntPart[p]*(b*x^n)^FracPart[p])/x^(n*FracPart[p]), Int[x^(n*p), x], x] /; FreeQ[{b, n, p}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[x^(1/n - 1)*(a + b*x)^p, x], x, x^n], x] /; FreeQ[{a, b, p}, x] && FractionQ[n] && IntegerQ[1/n]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(a + b*x^n)^(p + 1))/a, x] /; FreeQ[{a, b, n, p}, x] && EqQ[1/n + p + 1, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(a + b*x^n)^(p + 1))/(a*n*(p + 1)), x] + Dist[(n*(p + 1) + 1)/(a*n*(p + 1)), Int[(a + b*x^n)^(p + 1), x], x] /; FreeQ[{a, b, n, p}, x] && ILtQ[Simplify[1/n + p + 1], 0] && NeQ[p, -1]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Int[x^(n*p)*(b + a/x^n)^p, x] /; FreeQ[{a, b}, x] && LtQ[n, 0] && IntegerQ[p]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x^n)^p, x], x] /; FreeQ[{a, b}, x] && IGtQ[n, 0] && IGtQ[p, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(a + b*x^n)^p)/(n*p + 1), x] + Dist[(a*n*p)/(n*p + 1), Int[(a + b*x^n)^(p - 1), x], x] /; FreeQ[{a, b}, x] && IGtQ[n, 0] && GtQ[p, 0] && (IntegerQ[2*p] || (EqQ[n, 2] && IntegerQ[4*p]) || (EqQ[n, 2] && IntegerQ[3*p]) || LtQ[Denominator[p + 1/n], Denominator[p]])
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-5, 4]], Pattern[x, Blank[Symbol]]] := Simp[(2*EllipticE[(1*ArcTan[Rt[b/a, 2]*x])/2, 2])/(a^(5/4)*Rt[b/a, 2]), x] /; FreeQ[{a, b}, x] && GtQ[a, 0] && PosQ[b/a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-5, 4]], Pattern[x, Blank[Symbol]]] := Dist[(1 + (b*x^2)/a)^(1/4)/(a*(a + b*x^2)^(1/4)), Int[1/(1 + (b*x^2)/a)^(5/4), x], x] /; FreeQ[{a, b}, x] && PosQ[a] && PosQ[b/a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-7, 6]], Pattern[x, Blank[Symbol]]] := Dist[1/((a + b*x^2)^(2/3)*(a/(a + b*x^2))^(2/3)), Subst[Int[1/(1 - b*x^2)^(1/3), x], x, x/Sqrt[a + b*x^2]], x] /; FreeQ[{a, b}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(a + b*x^n)^(p + 1))/(a*n*(p + 1)), x] + Dist[(n*(p + 1) + 1)/(a*n*(p + 1)), Int[(a + b*x^n)^(p + 1), x], x] /; FreeQ[{a, b}, x] && IGtQ[n, 0] && LtQ[p, -1] && (IntegerQ[2*p] || (n == 2 && IntegerQ[4*p]) || (n == 2 && IntegerQ[3*p]) || Denominator[p + 1/n] < Denominator[p])
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], -1], Pattern[x, Blank[Symbol]]] := Dist[1/(3*Rt[a, 3]^2), Int[1/(Rt[a, 3] + Rt[b, 3]*x), x], x] + Dist[1/(3*Rt[a, 3]^2), Int[(2*Rt[a, 3] - Rt[b, 3]*x)/(Rt[a, 3]^2 - Rt[a, 3]*Rt[b, 3]*x + Rt[b, 3]^2*x^2), x], x] /; FreeQ[{a, b}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Pattern[x, Blank[Symbol]]] := Module[{r = Numerator[Rt[a/b, n]], s = Denominator[Rt[a/b, n]], k, u}, Simp[u = Int[(r - s*Cos[((2*k - 1)*Pi)/n]*x)/(r^2 - 2*r*s*Cos[((2*k - 1)*Pi)/n]*x + s^2*x^2), x]; (r*Int[1/(r + s*x), x])/(a*n) + Dist[(2*r)/(a*n), Sum[u, {k, 1, (n - 1)/2}], x], x]] /; FreeQ[{a, b}, x] && IGtQ[(n - 3)/2, 0] && PosQ[a/b]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Pattern[x, Blank[Symbol]]] := Module[{r = Numerator[Rt[-(a/b), n]], s = Denominator[Rt[-(a/b), n]], k, u}, Simp[u = Int[(r + s*Cos[((2*k - 1)*Pi)/n]*x)/(r^2 + 2*r*s*Cos[((2*k - 1)*Pi)/n]*x + s^2*x^2), x]; (r*Int[1/(r - s*x), x])/(a*n) + Dist[(2*r)/(a*n), Sum[u, {k, 1, (n - 1)/2}], x], x]] /; FreeQ[{a, b}, x] && IGtQ[(n - 3)/2, 0] && NegQ[a/b]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := Simp[(1*ArcTan[(Rt[b, 2]*x)/Rt[a, 2]])/(Rt[a, 2]*Rt[b, 2]), x] /; FreeQ[{a, b}, x] && PosQ[a/b] && (GtQ[a, 0] || GtQ[b, 0])
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := -Simp[ArcTan[(Rt[-b, 2]*x)/Rt[-a, 2]]/(Rt[-a, 2]*Rt[-b, 2]), x] /; FreeQ[{a, b}, x] && PosQ[a/b] && (LtQ[a, 0] || LtQ[b, 0])
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := Simp[(Rt[a/b, 2]*ArcTan[x/Rt[a/b, 2]])/a, x] /; FreeQ[{a, b}, x] && PosQ[a/b]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := Simp[(1*ArcTanh[(Rt[-b, 2]*x)/Rt[a, 2]])/(Rt[a, 2]*Rt[-b, 2]), x] /; FreeQ[{a, b}, x] && NegQ[a/b] && (GtQ[a, 0] || LtQ[b, 0])
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := -Simp[ArcTanh[(Rt[b, 2]*x)/Rt[-a, 2]]/(Rt[-a, 2]*Rt[b, 2]), x] /; FreeQ[{a, b}, x] && NegQ[a/b] && (LtQ[a, 0] || GtQ[b, 0])
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := Simp[(Rt[-(a/b), 2]*ArcTanh[x/Rt[-(a/b), 2]])/a, x] /; FreeQ[{a, b}, x] && NegQ[a/b]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Pattern[x, Blank[Symbol]]] := Module[{r = Numerator[Rt[a/b, n]], s = Denominator[Rt[a/b, n]], k, u, v}, Simp[u = Int[(r - s*Cos[((2*k - 1)*Pi)/n]*x)/(r^2 - 2*r*s*Cos[((2*k - 1)*Pi)/n]*x + s^2*x^2), x] + Int[(r + s*Cos[((2*k - 1)*Pi)/n]*x)/(r^2 + 2*r*s*Cos[((2*k - 1)*Pi)/n]*x + s^2*x^2), x]; (2*r^2*Int[1/(r^2 + s^2*x^2), x])/(a*n) + Dist[(2*r)/(a*n), Sum[u, {k, 1, (n - 2)/4}], x], x]] /; FreeQ[{a, b}, x] && IGtQ[(n - 2)/4, 0] && PosQ[a/b]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Pattern[x, Blank[Symbol]]] := Module[{r = Numerator[Rt[-(a/b), n]], s = Denominator[Rt[-(a/b), n]], k, u}, Simp[u = Int[(r - s*Cos[(2*k*Pi)/n]*x)/(r^2 - 2*r*s*Cos[(2*k*Pi)/n]*x + s^2*x^2), x] + Int[(r + s*Cos[(2*k*Pi)/n]*x)/(r^2 + 2*r*s*Cos[(2*k*Pi)/n]*x + s^2*x^2), x]; (2*r^2*Int[1/(r^2 - s^2*x^2), x])/(a*n) + Dist[(2*r)/(a*n), Sum[u, {k, 1, (n - 2)/4}], x], x]] /; FreeQ[{a, b}, x] && IGtQ[(n - 2)/4, 0] && NegQ[a/b]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[a/b, 2]], s = Denominator[Rt[a/b, 2]]}, Dist[1/(2*r), Int[(r - s*x^2)/(a + b*x^4), x], x] + Dist[1/(2*r), Int[(r + s*x^2)/(a + b*x^4), x], x]] /; FreeQ[{a, b}, x] && (GtQ[a/b, 0] || (PosQ[a/b] && AtomQ[SplitProduct[SumBaseQ, a]] && AtomQ[SplitProduct[SumBaseQ, b]]))
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[-(a/b), 2]], s = Denominator[Rt[-(a/b), 2]]}, Dist[r/(2*a), Int[1/(r - s*x^2), x], x] + Dist[r/(2*a), Int[1/(r + s*x^2), x], x]] /; FreeQ[{a, b}, x] && !GtQ[a/b, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[a/b, 4]], s = Denominator[Rt[a/b, 4]]}, Dist[r/(2*Sqrt[2]*a), Int[(Sqrt[2]*r - s*x^(n/4))/(r^2 - Sqrt[2]*r*s*x^(n/4) + s^2*x^(n/2)), x], x] + Dist[r/(2*Sqrt[2]*a), Int[(Sqrt[2]*r + s*x^(n/4))/(r^2 + Sqrt[2]*r*s*x^(n/4) + s^2*x^(n/2)), x], x]] /; FreeQ[{a, b}, x] && IGtQ[n/4, 1] && GtQ[a/b, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[-(a/b), 2]], s = Denominator[Rt[-(a/b), 2]]}, Dist[r/(2*a), Int[1/(r - s*x^(n/2)), x], x] + Dist[r/(2*a), Int[1/(r + s*x^(n/2)), x], x]] /; FreeQ[{a, b}, x] && IGtQ[n/4, 1] && !GtQ[a/b, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := Simp[ArcSinh[(Rt[b, 2]*x)/Sqrt[a]]/Rt[b, 2], x] /; FreeQ[{a, b}, x] && GtQ[a, 0] && PosQ[b]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := Simp[ArcSin[(Rt[-b, 2]*x)/Sqrt[a]]/Rt[-b, 2], x] /; FreeQ[{a, b}, x] && GtQ[a, 0] && NegQ[b]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := Subst[Int[1/(1 - b*x^2), x], x, x/Sqrt[a + b*x^2]] /; FreeQ[{a, b}, x] && !GtQ[a, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{r = Numer[Rt[b/a, 3]], s = Denom[Rt[b/a, 3]]}, Simp[(2*Sqrt[2 + Sqrt[3]]*(s + r*x)*Sqrt[(s^2 - r*s*x + r^2*x^2)/((1 + Sqrt[3])*s + r*x)^2]*EllipticF[ArcSin[((1 - Sqrt[3])*s + r*x)/((1 + Sqrt[3])*s + r*x)], -7 - 4*Sqrt[3]])/(3^(1/4)*r*Sqrt[a + b*x^3]*Sqrt[(s*(s + r*x))/((1 + Sqrt[3])*s + r*x)^2]), x]] /; FreeQ[{a, b}, x] && PosQ[a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{r = Numer[Rt[b/a, 3]], s = Denom[Rt[b/a, 3]]}, Simp[(2*Sqrt[2 - Sqrt[3]]*(s + r*x)*Sqrt[(s^2 - r*s*x + r^2*x^2)/((1 - Sqrt[3])*s + r*x)^2]*EllipticF[ArcSin[((1 + Sqrt[3])*s + r*x)/((1 - Sqrt[3])*s + r*x)], -7 + 4*Sqrt[3]])/(3^(1/4)*r*Sqrt[a + b*x^3]*Sqrt[-((s*(s + r*x))/((1 - Sqrt[3])*s + r*x)^2)]), x]] /; FreeQ[{a, b}, x] && NegQ[a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b/a, 4]}, Simp[((1 + q^2*x^2)*Sqrt[(a + b*x^4)/(a*(1 + q^2*x^2)^2)]*EllipticF[2*ArcTan[q*x], 1/2])/(2*q*Sqrt[a + b*x^4]), x]] /; FreeQ[{a, b}, x] && PosQ[b/a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := Simp[EllipticF[ArcSin[(Rt[-b, 4]*x)/Rt[a, 4]], -1]/(Rt[a, 4]*Rt[-b, 4]), x] /; FreeQ[{a, b}, x] && NegQ[b/a] && GtQ[a, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*b), 2]}, Simp[(Sqrt[-a + q*x^2]*Sqrt[(a + q*x^2)/q]*EllipticF[ArcSin[x/Sqrt[(a + q*x^2)/(2*q)]], 1/2])/(Sqrt[2]*Sqrt[-a]*Sqrt[a + b*x^4]), x] /; IntegerQ[q]] /; FreeQ[{a, b}, x] && LtQ[a, 0] && GtQ[b, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*b), 2]}, Simp[(Sqrt[(a - q*x^2)/(a + q*x^2)]*Sqrt[(a + q*x^2)/q]*EllipticF[ArcSin[x/Sqrt[(a + q*x^2)/(2*q)]], 1/2])/(Sqrt[2]*Sqrt[a + b*x^4]*Sqrt[a/(a + q*x^2)]), x]] /; FreeQ[{a, b}, x] && LtQ[a, 0] && GtQ[b, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[1 + (b*x^4)/a]/Sqrt[a + b*x^4], Int[1/Sqrt[1 + (b*x^4)/a], x], x] /; FreeQ[{a, b}, x] && NegQ[b/a] && !GtQ[a, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 6]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{r = Numer[Rt[b/a, 3]], s = Denom[Rt[b/a, 3]]}, Simp[(x*(s + r*x^2)*Sqrt[(s^2 - r*s*x^2 + r^2*x^4)/(s + (1 + Sqrt[3])*r*x^2)^2]*EllipticF[ArcCos[(s + (1 - Sqrt[3])*r*x^2)/(s + (1 + Sqrt[3])*r*x^2)], (2 + Sqrt[3])/4])/(2*3^(1/4)*s*Sqrt[a + b*x^6]*Sqrt[(r*x^2*(s + r*x^2))/(s + (1 + Sqrt[3])*r*x^2)^2]), x]] /; FreeQ[{a, b}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 8]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Int[(1 - Rt[b/a, 4]*x^2)/Sqrt[a + b*x^8], x], x] + Dist[1/2, Int[(1 + Rt[b/a, 4]*x^2)/Sqrt[a + b*x^8], x], x] /; FreeQ[{a, b}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]], Pattern[x, Blank[Symbol]]] := Simp[(2*x)/(a + b*x^2)^(1/4), x] - Dist[a, Int[1/(a + b*x^2)^(5/4), x], x] /; FreeQ[{a, b}, x] && GtQ[a, 0] && PosQ[b/a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]], Pattern[x, Blank[Symbol]]] := Simp[(2*EllipticE[(1*ArcSin[Rt[-(b/a), 2]*x])/2, 2])/(a^(1/4)*Rt[-(b/a), 2]), x] /; FreeQ[{a, b}, x] && GtQ[a, 0] && NegQ[b/a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]], Pattern[x, Blank[Symbol]]] := Dist[(1 + (b*x^2)/a)^(1/4)/(a + b*x^2)^(1/4), Int[1/(1 + (b*x^2)/a)^(1/4), x], x] /; FreeQ[{a, b}, x] && PosQ[a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]], Pattern[x, Blank[Symbol]]] := Dist[(2*Sqrt[-((b*x^2)/a)])/(b*x), Subst[Int[x^2/Sqrt[1 - x^4/a], x], x, (a + b*x^2)^(1/4)], x] /; FreeQ[{a, b}, x] && NegQ[a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]], Pattern[x, Blank[Symbol]]] := Simp[(2*EllipticF[(1*ArcTan[Rt[b/a, 2]*x])/2, 2])/(a^(3/4)*Rt[b/a, 2]), x] /; FreeQ[{a, b}, x] && GtQ[a, 0] && PosQ[b/a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]], Pattern[x, Blank[Symbol]]] := Simp[(2*EllipticF[(1*ArcSin[Rt[-(b/a), 2]*x])/2, 2])/(a^(3/4)*Rt[-(b/a), 2]), x] /; FreeQ[{a, b}, x] && GtQ[a, 0] && NegQ[b/a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]], Pattern[x, Blank[Symbol]]] := Dist[(1 + (b*x^2)/a)^(3/4)/(a + b*x^2)^(3/4), Int[1/(1 + (b*x^2)/a)^(3/4), x], x] /; FreeQ[{a, b}, x] && PosQ[a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]], Pattern[x, Blank[Symbol]]] := Dist[(2*Sqrt[-((b*x^2)/a)])/(b*x), Subst[Int[1/Sqrt[1 - x^4/a], x], x, (a + b*x^2)^(1/4)], x] /; FreeQ[{a, b}, x] && NegQ[a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]], Pattern[x, Blank[Symbol]]] := Dist[(3*Sqrt[b*x^2])/(2*b*x), Subst[Int[x/Sqrt[-a + x^3], x], x, (a + b*x^2)^(1/3)], x] /; FreeQ[{a, b}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-2, 3]], Pattern[x, Blank[Symbol]]] := Dist[(3*Sqrt[b*x^2])/(2*b*x), Subst[Int[1/Sqrt[-a + x^3], x], x, (a + b*x^2)^(1/3)], x] /; FreeQ[{a, b}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-3, 4]], Pattern[x, Blank[Symbol]]] := Dist[(x^3*(1 + a/(b*x^4))^(3/4))/(a + b*x^4)^(3/4), Int[1/(x^3*(1 + a/(b*x^4))^(3/4)), x], x] /; FreeQ[{a, b}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 6]], Pattern[x, Blank[Symbol]]] := Simp[(3*x)/(2*(a + b*x^2)^(1/6)), x] - Dist[a/2, Int[1/(a + b*x^2)^(7/6), x], x] /; FreeQ[{a, b}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 3]], Pattern[x, Blank[Symbol]]] := Simp[ArcTan[(1 + (2*Rt[b, 3]*x)/(a + b*x^3)^(1/3))/Sqrt[3]]/(Sqrt[3]*Rt[b, 3]), x] - Simp[Log[(a + b*x^3)^(1/3) - Rt[b, 3]*x]/(2*Rt[b, 3]), x] /; FreeQ[{a, b}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[a^(p + 1/n), Subst[Int[1/(1 - b*x^n)^(p + 1/n + 1), x], x, x/(a + b*x^n)^(1/n)], x] /; FreeQ[{a, b}, x] && IGtQ[n, 0] && LtQ[-1, p, 0] && NeQ[p, -2^(-1)] && IntegerQ[p + 1/n]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(a/(a + b*x^n))^(p + 1/n)*(a + b*x^n)^(p + 1/n), Subst[Int[1/(1 - b*x^n)^(p + 1/n + 1), x], x, x/(a + b*x^n)^(1/n)], x] /; FreeQ[{a, b}, x] && IGtQ[n, 0] && LtQ[-1, p, 0] && NeQ[p, -2^(-1)] && LtQ[Denominator[p + 1/n], Denominator[p]]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[(a + b/x^n)^p/x^2, x], x, 1/x] /; FreeQ[{a, b, p}, x] && ILtQ[n, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[n]}, Dist[k, Subst[Int[x^(k - 1)*(a + b*x^(k*n))^p, x], x, x^(1/k)], x]] /; FreeQ[{a, b, p}, x] && FractionQ[n]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x^n)^p, x], x] /; FreeQ[{a, b, n}, x] && IGtQ[p, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Simp[a^p*x*Hypergeometric2F1[-p, 1/n, 1/n + 1, -((b*x^n)/a)], x] /; FreeQ[{a, b, n, p}, x] && !IGtQ[p, 0] && !IntegerQ[1/n] && !ILtQ[Simplify[1/n + p], 0] && (IntegerQ[p] || GtQ[a, 0])
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^n)^FracPart[p])/(1 + (b*x^n)/a)^FracPart[p], Int[(1 + (b*x^n)/a)^p, x], x] /; FreeQ[{a, b, n, p}, x] && !IGtQ[p, 0] && !IntegerQ[1/n] && !ILtQ[Simplify[1/n + p], 0] && !(IntegerQ[p] || GtQ[a, 0])
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[v, x, 1], Subst[Int[(a + b*x^n)^p, x], x, v], x] /; FreeQ[{a, b, n, p}, x] && LinearQ[v, x] && NeQ[v, x]
Int[Times[Power[Plus[Optional[Pattern[a1, Blank[]]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[a2, Blank[]]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(a1*a2 + b1*b2*x^(2*n))^p, x] /; FreeQ[{a1, b1, a2, b2, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && (IntegerQ[p] || (GtQ[a1, 0] && GtQ[a2, 0]))
Int[Times[Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p)/(2*n*p + 1), x] + Dist[(2*a1*a2*n*p)/(2*n*p + 1), Int[(a1 + b1*x^n)^(p - 1)*(a2 + b2*x^n)^(p - 1), x], x] /; FreeQ[{a1, b1, a2, b2}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && GtQ[p, 0] && (IntegerQ[2*p] || Denominator[p + 1/n] < Denominator[p])
Int[Times[Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(2*a1*a2*n*(p + 1)), x] + Dist[(2*n*(p + 1) + 1)/(2*a1*a2*n*(p + 1)), Int[(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1), x], x] /; FreeQ[{a1, b1, a2, b2}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && LtQ[p, -1] && (IntegerQ[2*p] || Denominator[p + 1/n] < Denominator[p])
Int[Times[Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[((a1 + b1/x^n)^p*(a2 + b2/x^n)^p)/x^2, x], x, 1/x] /; FreeQ[{a1, b1, a2, b2, p}, x] && EqQ[a2*b1 + a1*b2, 0] && ILtQ[2*n, 0]
Int[Times[Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[2*n]}, Dist[k, Subst[Int[x^(k - 1)*(a1 + b1*x^(k*n))^p*(a2 + b2*x^(k*n))^p, x], x, x^(1/k)], x]] /; FreeQ[{a1, b1, a2, b2, p}, x] && EqQ[a2*b1 + a1*b2, 0] && FractionQ[2*n]
Int[Times[Power[Plus[Optional[Pattern[a1, Blank[]]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[a2, Blank[]]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((a1 + b1*x^n)^FracPart[p]*(a2 + b2*x^n)^FracPart[p])/(a1*a2 + b1*b2*x^(2*n))^FracPart[p], Int[(a1*a2 + b1*b2*x^(2*n))^p, x], x] /; FreeQ[{a1, b1, a2, b2, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && !IntegerQ[p]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[q, Blank[]]]]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[x/(c*x^q)^(1/q), Subst[Int[(a + b*x^(n*q))^p, x], x, (c*x^q)^(1/q)], x] /; FreeQ[{a, b, c, n, p, q}, x] && IntegerQ[n*q] && NeQ[x, (c*x^q)^(1/q)]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[q, Blank[]]]]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[n]}, Subst[Int[(a + b*c^n*x^(n*q))^p, x], x^(1/k), (c*x^q)^(1/k)/(c^(1/k)*(x^(1/k))^(q - 1))]] /; FreeQ[{a, b, c, p, q}, x] && FractionQ[n]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[q, Blank[]]]]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Subst[Int[(a + b*c^n*x^(n*q))^p, x], x^(n*q), (c*x^q)^n/c^n] /; FreeQ[{a, b, c, n, p, q}, x] && !RationalQ[n]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[q, Blank[]]]]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[(a + b*(d/x^q)^n)^p/x^2, x], x, 1/x] /; FreeQ[{a, b, d, n, p}, x] && ILtQ[q, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[q, Blank[]]]]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{s = Denominator[q]}, Dist[s, Subst[Int[x^(s - 1)*(a + b*(d*x^(q*s))^n)^p, x], x, x^(1/s)], x]] /; FreeQ[{a, b, d, n, p}, x] && FractionQ[q]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(c*x)^m*(a1*a2 + b1*b2*x^(2*n))^p, x] /; FreeQ[{a1, b1, a2, b2, c, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && (IntegerQ[p] || (GtQ[a1, 0] && GtQ[a2, 0]))
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[Log[RemoveContent[a + b*x^n, x]]/(b*n), x] /; FreeQ[{a, b, m, n}, x] && EqQ[m, n - 1]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(a + b*x^n)^(p + 1)/(b*n*(p + 1)), x] /; FreeQ[{a, b, m, n, p}, x] && EqQ[m, n - 1] && NeQ[p, -1]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(2*b1*b2*n*(p + 1)), x] /; FreeQ[{a1, b1, a2, b2, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && EqQ[m, 2*n - 1] && NeQ[p, -1]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m + n*p)*(b + a/x^n)^p, x] /; FreeQ[{a, b, m, n}, x] && IntegerQ[p] && NegQ[n]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*c*(m + 1)), x] /; FreeQ[{a, b, c, m, n, p}, x] && EqQ[(m + 1)/n + p + 1, 0] && NeQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(a1*a2*c*(m + 1)), x] /; FreeQ[{a1, b1, a2, b2, c, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && EqQ[(m + 1)/(2*n) + p + 1, 0] && NeQ[m, -1]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[x^(Simplify[(m + 1)/n] - 1)*(a + b*x)^p, x], x, x^n], x] /; FreeQ[{a, b, m, n, p}, x] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[x^(Simplify[(m + 1)/n] - 1)*(a1 + b1*x)^p*(a2 + b2*x)^p, x], x, x^n], x] /; FreeQ[{a1, b1, a2, b2, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IntegerQ[Simplify[(m + 1)/(2*n)]]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, m, n, p}, x] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IntegerQ[Simplify[(m + 1)/(2*n)]]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(c*x)^m*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, m, n}, x] && IGtQ[p, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x^(m + 1)*(a + b*x^n)^(p + 1))/(a*(m + 1)), x] - Dist[(b*(m + n*(p + 1) + 1))/(a*(m + 1)), Int[x^(m + n)*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, m, n, p}, x] && ILtQ[Simplify[(m + 1)/n + p + 1], 0] && NeQ[m, -1]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x^(m + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(a1*a2*(m + 1)), x] - Dist[(b1*b2*(m + 2*n*(p + 1) + 1))/(a1*a2*(m + 1)), Int[x^(m + 2*n)*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && ILtQ[Simplify[(m + 1)/(2*n) + p + 1], 0] && NeQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*c*n*(p + 1)), x] + Dist[(m + n*(p + 1) + 1)/(a*n*(p + 1)), Int[(c*x)^m*(a + b*x^n)^(p + 1), x], x] /; FreeQ[{a, b, c, m, n, p}, x] && ILtQ[Simplify[(m + 1)/n + p + 1], 0] && NeQ[p, -1]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*x)^(m + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(2*a1*a2*c*n*(p + 1)), x] + Dist[(m + 2*n*(p + 1) + 1)/(2*a1*a2*n*(p + 1)), Int[(c*x)^m*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1), x], x] /; FreeQ[{a1, b1, a2, b2, c, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && ILtQ[Simplify[(m + 1)/(2*n) + p + 1], 0] && NeQ[p, -1]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = GCD[m + 1, n]}, Dist[1/k, Subst[Int[x^((m + 1)/k - 1)*(a + b*x^(n/k))^p, x], x, x^k], x] /; k != 1] /; FreeQ[{a, b, p}, x] && IGtQ[n, 0] && IntegerQ[m]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = GCD[m + 1, 2*n]}, Dist[1/k, Subst[Int[x^((m + 1)/k - 1)*(a1 + b1*x^(n/k))^p*(a2 + b2*x^(n/k))^p, x], x, x^k], x] /; k != 1] /; FreeQ[{a1, b1, a2, b2, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a + b*x^n)^p)/(c*(m + 1)), x] - Dist[(b*n*p)/(c^n*(m + 1)), Int[(c*x)^(m + n)*(a + b*x^n)^(p - 1), x], x] /; FreeQ[{a, b, c}, x] && IGtQ[n, 0] && GtQ[p, 0] && LtQ[m, -1] && !ILtQ[(m + n*p + n + 1)/n, 0] && IntBinomialQ[a, b, c, n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p)/(c*(m + 1)), x] - Dist[(2*b1*b2*n*p)/(c^(2*n)*(m + 1)), Int[(c*x)^(m + 2*n)*(a1 + b1*x^n)^(p - 1)*(a2 + b2*x^n)^(p - 1), x], x] /; FreeQ[{a1, b1, a2, b2, c, m}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && GtQ[p, 0] && LtQ[m, -1] && NeQ[m + 2*n*p + 1, 0] && IntBinomialQ[a1*a2, b1*b2, c, 2*n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a + b*x^n)^p)/(c*(m + n*p + 1)), x] + Dist[(a*n*p)/(m + n*p + 1), Int[(c*x)^m*(a + b*x^n)^(p - 1), x], x] /; FreeQ[{a, b, c, m}, x] && IGtQ[n, 0] && GtQ[p, 0] && NeQ[m + n*p + 1, 0] && IntBinomialQ[a, b, c, n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p)/(c*(m + 2*n*p + 1)), x] + Dist[(2*a1*a2*n*p)/(m + 2*n*p + 1), Int[(c*x)^m*(a1 + b1*x^n)^(p - 1)*(a2 + b2*x^n)^(p - 1), x], x] /; FreeQ[{a1, b1, a2, b2, c, m}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && GtQ[p, 0] && NeQ[m + 2*n*p + 1, 0] && IntBinomialQ[a1*a2, b1*b2, c, 2*n, m, p, x]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-5, 4]]], Pattern[x, Blank[Symbol]]] := Dist[(x*(1 + a/(b*x^4))^(1/4))/(b*(a + b*x^4)^(1/4)), Int[1/(x^3*(1 + a/(b*x^4))^(5/4)), x], x] /; FreeQ[{a, b}, x] && PosQ[b/a]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-5, 4]]], Pattern[x, Blank[Symbol]]] := Simp[x^(m - 3)/(b*(m - 4)*(a + b*x^4)^(1/4)), x] - Dist[(a*(m - 3))/(b*(m - 4)), Int[x^(m - 4)/(a + b*x^4)^(5/4), x], x] /; FreeQ[{a, b}, x] && PosQ[b/a] && IGtQ[(m - 2)/4, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-5, 4]]], Pattern[x, Blank[Symbol]]] := Simp[x^(m + 1)/(a*(m + 1)*(a + b*x^4)^(1/4)), x] - Dist[(b*m)/(a*(m + 1)), Int[x^(m + 4)/(a + b*x^4)^(5/4), x], x] /; FreeQ[{a, b}, x] && PosQ[b/a] && ILtQ[(m - 2)/4, 0]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-5, 4]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[c*x]*(1 + a/(b*x^2))^(1/4))/(b*(a + b*x^2)^(1/4)), Int[1/(x^2*(1 + a/(b*x^2))^(5/4)), x], x] /; FreeQ[{a, b, c}, x] && PosQ[b/a]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-5, 4]]], Pattern[x, Blank[Symbol]]] := Simp[(2*c*(c*x)^(m - 1))/(b*(2*m - 3)*(a + b*x^2)^(1/4)), x] - Dist[(2*a*c^2*(m - 1))/(b*(2*m - 3)), Int[(c*x)^(m - 2)/(a + b*x^2)^(5/4), x], x] /; FreeQ[{a, b, c}, x] && PosQ[b/a] && IntegerQ[2*m] && GtQ[m, 3/2]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-5, 4]]], Pattern[x, Blank[Symbol]]] := Simp[(c*x)^(m + 1)/(a*c*(m + 1)*(a + b*x^2)^(1/4)), x] - Dist[(b*(2*m + 1))/(2*a*c^2*(m + 1)), Int[(c*x)^(m + 2)/(a + b*x^2)^(5/4), x], x] /; FreeQ[{a, b, c}, x] && PosQ[b/a] && IntegerQ[2*m] && LtQ[m, -1]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-5, 4]]], Pattern[x, Blank[Symbol]]] := -Simp[(b*x*(a + b*x^4)^(1/4))^(-1), x] - Dist[1/b, Int[1/(x^2*(a + b*x^4)^(1/4)), x], x] /; FreeQ[{a, b}, x] && NegQ[b/a]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^(n - 1)*(c*x)^(m - n + 1)*(a + b*x^n)^(p + 1))/(b*n*(p + 1)), x] - Dist[(c^n*(m - n + 1))/(b*n*(p + 1)), Int[(c*x)^(m - n)*(a + b*x^n)^(p + 1), x], x] /; FreeQ[{a, b, c}, x] && IGtQ[n, 0] && LtQ[p, -1] && GtQ[m + 1, n] && !ILtQ[(m + n*(p + 1) + 1)/n, 0] && IntBinomialQ[a, b, c, n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^(2*n - 1)*(c*x)^(m - 2*n + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(2*b1*b2*n*(p + 1)), x] - Dist[(c^(2*n)*(m - 2*n + 1))/(2*b1*b2*n*(p + 1)), Int[(c*x)^(m - 2*n)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1), x], x] /; FreeQ[{a1, b1, a2, b2, c}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && LtQ[p, -1] && m + 1 > 2*n && !ILtQ[(m + 2*n*(p + 1) + 1)/(2*n), 0] && IntBinomialQ[a1*a2, b1*b2, c, 2*n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*c*n*(p + 1)), x] + Dist[(m + n*(p + 1) + 1)/(a*n*(p + 1)), Int[(c*x)^m*(a + b*x^n)^(p + 1), x], x] /; FreeQ[{a, b, c, m}, x] && IGtQ[n, 0] && LtQ[p, -1] && IntBinomialQ[a, b, c, n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*x)^(m + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(2*a1*a2*c*n*(p + 1)), x] + Dist[(m + 2*n*(p + 1) + 1)/(2*a1*a2*n*(p + 1)), Int[(c*x)^m*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1), x], x] /; FreeQ[{a1, b1, a2, b2, c, m}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && LtQ[p, -1] && IntBinomialQ[a1*a2, b1*b2, c, 2*n, m, p, x]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], -1]], Pattern[x, Blank[Symbol]]] := -Dist[(3*Rt[a, 3]*Rt[b, 3])^(-1), Int[1/(Rt[a, 3] + Rt[b, 3]*x), x], x] + Dist[1/(3*Rt[a, 3]*Rt[b, 3]), Int[(Rt[a, 3] + Rt[b, 3]*x)/(Rt[a, 3]^2 - Rt[a, 3]*Rt[b, 3]*x + Rt[b, 3]^2*x^2), x], x] /; FreeQ[{a, b}, x]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Module[{r = Numerator[Rt[a/b, n]], s = Denominator[Rt[a/b, n]], k, u}, Simp[u = Int[(r*Cos[((2*k - 1)*m*Pi)/n] - s*Cos[((2*k - 1)*(m + 1)*Pi)/n]*x)/(r^2 - 2*r*s*Cos[((2*k - 1)*Pi)/n]*x + s^2*x^2), x]; -(((-r)^(m + 1)*Int[1/(r + s*x), x])/(a*n*s^m)) + Dist[(2*r^(m + 1))/(a*n*s^m), Sum[u, {k, 1, (n - 1)/2}], x], x]] /; FreeQ[{a, b}, x] && IGtQ[(n - 1)/2, 0] && IGtQ[m, 0] && LtQ[m, n - 1] && PosQ[a/b]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Module[{r = Numerator[Rt[-(a/b), n]], s = Denominator[Rt[-(a/b), n]], k, u}, Simp[u = Int[(r*Cos[((2*k - 1)*m*Pi)/n] + s*Cos[((2*k - 1)*(m + 1)*Pi)/n]*x)/(r^2 + 2*r*s*Cos[((2*k - 1)*Pi)/n]*x + s^2*x^2), x]; (r^(m + 1)*Int[1/(r - s*x), x])/(a*n*s^m) - Dist[(2*(-r)^(m + 1))/(a*n*s^m), Sum[u, {k, 1, (n - 1)/2}], x], x]] /; FreeQ[{a, b}, x] && IGtQ[(n - 1)/2, 0] && IGtQ[m, 0] && LtQ[m, n - 1] && NegQ[a/b]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Module[{r = Numerator[Rt[a/b, n]], s = Denominator[Rt[a/b, n]], k, u}, Simp[u = Int[(r*Cos[((2*k - 1)*m*Pi)/n] - s*Cos[((2*k - 1)*(m + 1)*Pi)/n]*x)/(r^2 - 2*r*s*Cos[((2*k - 1)*Pi)/n]*x + s^2*x^2), x] + Int[(r*Cos[((2*k - 1)*m*Pi)/n] + s*Cos[((2*k - 1)*(m + 1)*Pi)/n]*x)/(r^2 + 2*r*s*Cos[((2*k - 1)*Pi)/n]*x + s^2*x^2), x]; (2*(-1)^(m/2)*r^(m + 2)*Int[1/(r^2 + s^2*x^2), x])/(a*n*s^m) + Dist[(2*r^(m + 1))/(a*n*s^m), Sum[u, {k, 1, (n - 2)/4}], x], x]] /; FreeQ[{a, b}, x] && IGtQ[(n - 2)/4, 0] && IGtQ[m, 0] && LtQ[m, n - 1] && PosQ[a/b]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Module[{r = Numerator[Rt[-(a/b), n]], s = Denominator[Rt[-(a/b), n]], k, u}, Simp[u = Int[(r*Cos[(2*k*m*Pi)/n] - s*Cos[(2*k*(m + 1)*Pi)/n]*x)/(r^2 - 2*r*s*Cos[(2*k*Pi)/n]*x + s^2*x^2), x] + Int[(r*Cos[(2*k*m*Pi)/n] + s*Cos[(2*k*(m + 1)*Pi)/n]*x)/(r^2 + 2*r*s*Cos[(2*k*Pi)/n]*x + s^2*x^2), x]; (2*r^(m + 2)*Int[1/(r^2 - s^2*x^2), x])/(a*n*s^m) + Dist[(2*r^(m + 1))/(a*n*s^m), Sum[u, {k, 1, (n - 2)/4}], x], x]] /; FreeQ[{a, b}, x] && IGtQ[(n - 2)/4, 0] && IGtQ[m, 0] && LtQ[m, n - 1] && NegQ[a/b]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[a/b, 2]], s = Denominator[Rt[a/b, 2]]}, Dist[1/(2*s), Int[(r + s*x^2)/(a + b*x^4), x], x] - Dist[1/(2*s), Int[(r - s*x^2)/(a + b*x^4), x], x]] /; FreeQ[{a, b}, x] && (GtQ[a/b, 0] || (PosQ[a/b] && AtomQ[SplitProduct[SumBaseQ, a]] && AtomQ[SplitProduct[SumBaseQ, b]]))
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[-(a/b), 2]], s = Denominator[Rt[-(a/b), 2]]}, Dist[s/(2*b), Int[1/(r + s*x^2), x], x] - Dist[s/(2*b), Int[1/(r - s*x^2), x], x]] /; FreeQ[{a, b}, x] && !GtQ[a/b, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[a/b, 4]], s = Denominator[Rt[a/b, 4]]}, Dist[s^3/(2*Sqrt[2]*b*r), Int[x^(m - n/4)/(r^2 - Sqrt[2]*r*s*x^(n/4) + s^2*x^(n/2)), x], x] - Dist[s^3/(2*Sqrt[2]*b*r), Int[x^(m - n/4)/(r^2 + Sqrt[2]*r*s*x^(n/4) + s^2*x^(n/2)), x], x]] /; FreeQ[{a, b}, x] && IGtQ[n/4, 0] && IGtQ[m, 0] && LtQ[m, n - 1] && GtQ[a/b, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[-(a/b), 2]], s = Denominator[Rt[-(a/b), 2]]}, Dist[r/(2*a), Int[x^m/(r + s*x^(n/2)), x], x] + Dist[r/(2*a), Int[x^m/(r - s*x^(n/2)), x], x]] /; FreeQ[{a, b}, x] && IGtQ[n/4, 0] && IGtQ[m, 0] && LtQ[m, n/2] && !GtQ[a/b, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[-(a/b), 2]], s = Denominator[Rt[-(a/b), 2]]}, Dist[s/(2*b), Int[x^(m - n/2)/(r + s*x^(n/2)), x], x] - Dist[s/(2*b), Int[x^(m - n/2)/(r - s*x^(n/2)), x], x]] /; FreeQ[{a, b}, x] && IGtQ[n/4, 0] && IGtQ[m, 0] && LeQ[n/2, m] && LtQ[m, n] && !GtQ[a/b, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Int[PolynomialDivide[x^m, a + b*x^n, x], x] /; FreeQ[{a, b}, x] && IGtQ[m, 0] && IGtQ[n, 0] && GtQ[m, 2*n - 1]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{r = Numer[Rt[b/a, 3]], s = Denom[Rt[b/a, 3]]}, Dist[(Sqrt[2]*s)/(Sqrt[2 + Sqrt[3]]*r), Int[1/Sqrt[a + b*x^3], x], x] + Dist[1/r, Int[((1 - Sqrt[3])*s + r*x)/Sqrt[a + b*x^3], x], x]] /; FreeQ[{a, b}, x] && PosQ[a]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{r = Numer[Rt[b/a, 3]], s = Denom[Rt[b/a, 3]]}, -Dist[(Sqrt[2]*s)/(Sqrt[2 - Sqrt[3]]*r), Int[1/Sqrt[a + b*x^3], x], x] + Dist[1/r, Int[((1 + Sqrt[3])*s + r*x)/Sqrt[a + b*x^3], x], x]] /; FreeQ[{a, b}, x] && NegQ[a]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b/a, 2]}, Dist[1/q, Int[1/Sqrt[a + b*x^4], x], x] - Dist[1/q, Int[(1 - q*x^2)/Sqrt[a + b*x^4], x], x]] /; FreeQ[{a, b}, x] && PosQ[b/a]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(b/a), 2]}, Dist[1/q, Int[1/Sqrt[a + b*x^4], x], x] - Dist[1/q, Int[(1 - q*x^2)/Sqrt[a + b*x^4], x], x]] /; FreeQ[{a, b}, x] && LtQ[a, 0] && GtQ[b, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(b/a), 2]}, -Dist[q^(-1), Int[1/Sqrt[a + b*x^4], x], x] + Dist[1/q, Int[(1 + q*x^2)/Sqrt[a + b*x^4], x], x]] /; FreeQ[{a, b}, x] && NegQ[b/a]
Int[Times[Power[Pattern[x, Blank[]], 4], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 6]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{r = Numer[Rt[b/a, 3]], s = Denom[Rt[b/a, 3]]}, Dist[((Sqrt[3] - 1)*s^2)/(2*r^2), Int[1/Sqrt[a + b*x^6], x], x] - Dist[1/(2*r^2), Int[((Sqrt[3] - 1)*s^2 - 2*r^2*x^4)/Sqrt[a + b*x^6], x], x]] /; FreeQ[{a, b}, x]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 8]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[1/(2*Rt[b/a, 4]), Int[(1 + Rt[b/a, 4]*x^2)/Sqrt[a + b*x^8], x], x] - Dist[1/(2*Rt[b/a, 4]), Int[(1 - Rt[b/a, 4]*x^2)/Sqrt[a + b*x^8], x], x] /; FreeQ[{a, b}, x]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Simp[x^3/(2*(a + b*x^4)^(1/4)), x] - Dist[a/2, Int[x^2/(a + b*x^4)^(5/4), x], x] /; FreeQ[{a, b}, x] && PosQ[b/a]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Simp[(a + b*x^4)^(3/4)/(2*b*x), x] + Dist[a/(2*b), Int[1/(x^2*(a + b*x^4)^(1/4)), x], x] /; FreeQ[{a, b}, x] && NegQ[b/a]
Int[Times[Power[Pattern[x, Blank[]], -2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(a + b*x^4)^(1/4))^(-1), x] - Dist[b, Int[x^2/(a + b*x^4)^(5/4), x], x] /; FreeQ[{a, b}, x] && PosQ[b/a]
Int[Times[Power[Pattern[x, Blank[]], -2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Dist[(x*(1 + a/(b*x^4))^(1/4))/(a + b*x^4)^(1/4), Int[1/(x^3*(1 + a/(b*x^4))^(1/4)), x], x] /; FreeQ[{a, b}, x] && NegQ[b/a]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Simp[(x*Sqrt[c*x])/(a + b*x^2)^(1/4), x] - Dist[a/2, Int[Sqrt[c*x]/(a + b*x^2)^(5/4), x], x] /; FreeQ[{a, b, c}, x] && PosQ[b/a]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Simp[(c*(a + b*x^2)^(3/4))/(b*Sqrt[c*x]), x] + Dist[(a*c^2)/(2*b), Int[1/((c*x)^(3/2)*(a + b*x^2)^(1/4)), x], x] /; FreeQ[{a, b, c}, x] && NegQ[b/a]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Rational[-3, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Simp[-2/(c*Sqrt[c*x]*(a + b*x^2)^(1/4)), x] - Dist[b/c^2, Int[Sqrt[c*x]/(a + b*x^2)^(5/4), x], x] /; FreeQ[{a, b, c}, x] && PosQ[b/a]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Rational[-3, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[c*x]*(1 + a/(b*x^2))^(1/4))/(c^2*(a + b*x^2)^(1/4)), Int[1/(x^2*(1 + a/(b*x^2))^(1/4)), x], x] /; FreeQ[{a, b, c}, x] && NegQ[b/a]
Int[Times[Power[Pattern[x, Blank[]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2/(Sqrt[a]*(-(b/a))^(3/4)), Subst[Int[Sqrt[1 - 2*x^2]/Sqrt[1 - x^2], x], x, Sqrt[1 - Sqrt[-(b/a)]*x]/Sqrt[2]], x] /; FreeQ[{a, b}, x] && GtQ[-(b/a), 0] && GtQ[a, 0]
Int[Times[Power[Pattern[x, Blank[]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[1 + (b*x^2)/a]/Sqrt[a + b*x^2], Int[Sqrt[x]/Sqrt[1 + (b*x^2)/a], x], x] /; FreeQ[{a, b}, x] && GtQ[-(b/a), 0] && !GtQ[a, 0]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[c*x]/Sqrt[x], Int[Sqrt[x]/Sqrt[a + b*x^2], x], x] /; FreeQ[{a, b, c}, x] && GtQ[-(b/a), 0]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^(n - 1)*(c*x)^(m - n + 1)*(a + b*x^n)^(p + 1))/(b*(m + n*p + 1)), x] - Dist[(a*c^n*(m - n + 1))/(b*(m + n*p + 1)), Int[(c*x)^(m - n)*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, p}, x] && IGtQ[n, 0] && GtQ[m, n - 1] && NeQ[m + n*p + 1, 0] && IntBinomialQ[a, b, c, n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^(n - 1)*(c*x)^(m - n + 1)*(a + b*x^n)^(p + 1))/(b*(m + n*p + 1)), x] - Dist[(a*c^n*(m - n + 1))/(b*(m + n*p + 1)), Int[(c*x)^(m - n)*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, m, p}, x] && IGtQ[n, 0] && SumSimplerQ[m, -n] && NeQ[m + n*p + 1, 0] && ILtQ[Simplify[(m + 1)/n + p], 0]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^(2*n - 1)*(c*x)^(m - 2*n + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(b1*b2*(m + 2*n*p + 1)), x] - Dist[(a1*a2*c^(2*n)*(m - 2*n + 1))/(b1*b2*(m + 2*n*p + 1)), Int[(c*x)^(m - 2*n)*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && GtQ[m, 2*n - 1] && NeQ[m + 2*n*p + 1, 0] && IntBinomialQ[a1*a2, b1*b2, c, 2*n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^(2*n - 1)*(c*x)^(m - 2*n + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(b1*b2*(m + 2*n*p + 1)), x] - Dist[(a1*a2*c^(2*n)*(m - 2*n + 1))/(b1*b2*(m + 2*n*p + 1)), Int[(c*x)^(m - 2*n)*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, m, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && SumSimplerQ[m, -2*n] && NeQ[m + 2*n*p + 1, 0] && ILtQ[Simplify[(m + 1)/(2*n) + p], 0]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*c*(m + 1)), x] - Dist[(b*(m + n*(p + 1) + 1))/(a*c^n*(m + 1)), Int[(c*x)^(m + n)*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, p}, x] && IGtQ[n, 0] && LtQ[m, -1] && IntBinomialQ[a, b, c, n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*c*(m + 1)), x] - Dist[(b*(m + n*(p + 1) + 1))/(a*c^n*(m + 1)), Int[(c*x)^(m + n)*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, m, p}, x] && IGtQ[n, 0] && SumSimplerQ[m, n] && ILtQ[Simplify[(m + 1)/n + p], 0]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(a1*a2*c*(m + 1)), x] - Dist[(b1*b2*(m + 2*n*(p + 1) + 1))/(a1*a2*c^(2*n)*(m + 1)), Int[(c*x)^(m + 2*n)*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && LtQ[m, -1] && IntBinomialQ[a1*a2, b1*b2, c, 2*n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(a1*a2*c*(m + 1)), x] - Dist[(b1*b2*(m + 2*n*(p + 1) + 1))/(a1*a2*c^(2*n)*(m + 1)), Int[(c*x)^(m + 2*n)*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, m, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && SumSimplerQ[m, 2*n] && ILtQ[Simplify[(m + 1)/(2*n) + p], 0]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, Dist[k/c, Subst[Int[x^(k*(m + 1) - 1)*(a + (b*x^(k*n))/c^n)^p, x], x, (c*x)^(1/k)], x]] /; FreeQ[{a, b, c, p}, x] && IGtQ[n, 0] && FractionQ[m] && IntBinomialQ[a, b, c, n, m, p, x]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, Dist[k/c, Subst[Int[x^(k*(m + 1) - 1)*(a1 + (b1*x^(k*n))/c^n)^p*(a2 + (b2*x^(k*n))/c^n)^p, x], x, (c*x)^(1/k)], x]] /; FreeQ[{a1, b1, a2, b2, c, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && FractionQ[m] && IntBinomialQ[a1*a2, b1*b2, c, 2*n, m, p, x]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[a^(p + (m + 1)/n), Subst[Int[x^m/(1 - b*x^n)^(p + (m + 1)/n + 1), x], x, x/(a + b*x^n)^(1/n)], x] /; FreeQ[{a, b}, x] && IGtQ[n, 0] && LtQ[-1, p, 0] && NeQ[p, -2^(-1)] && IntegersQ[m, p + (m + 1)/n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a1*a2)^(p + (m + 1)/(2*n)), Subst[Int[x^m/((1 - b1*x^n)^(p + (m + 1)/(2*n) + 1)*(1 - b2*x^n)^(p + (m + 1)/(2*n) + 1)), x], x, x/((a1 + b1*x^n)^(1/(2*n))*(a2 + b2*x^n)^(1/(2*n)))], x] /; FreeQ[{a1, b1, a2, b2}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && LtQ[-1, p, 0] && NeQ[p, -2^(-1)] && IntegersQ[m, p + (m + 1)/(2*n)]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a/(a + b*x^n))^(p + (m + 1)/n)*(a + b*x^n)^(p + (m + 1)/n), Subst[Int[x^m/(1 - b*x^n)^(p + (m + 1)/n + 1), x], x, x/(a + b*x^n)^(1/n)], x] /; FreeQ[{a, b}, x] && IGtQ[n, 0] && LtQ[-1, p, 0] && NeQ[p, -2^(-1)] && IntegerQ[m] && LtQ[Denominator[p + (m + 1)/n], Denominator[p]]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a1/(a1 + b1*x^n))^(p + (m + 1)/(2*n))*(a1 + b1*x^n)^(p + (m + 1)/(2*n))*(a2/(a2 + b2*x^n))^(p + (m + 1)/(2*n))*(a2 + b2*x^n)^(p + (m + 1)/(2*n)), Subst[Int[x^m/((1 - b1*x^n)^(p + (m + 1)/(2*n) + 1)*(1 - b2*x^n)^(p + (m + 1)/(2*n) + 1)), x], x, x/((a1 + b1*x^n)^(1/(2*n))*(a2 + b2*x^n)^(1/(2*n)))], x] /; FreeQ[{a1, b1, a2, b2}, x] && EqQ[a2*b1 + a1*b2, 0] && IGtQ[2*n, 0] && LtQ[-1, p, 0] && NeQ[p, -2^(-1)] && IntegerQ[m] && LtQ[Denominator[p + (m + 1)/(2*n)], Denominator[p]]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[(a + b/x^n)^p/x^(m + 2), x], x, 1/x] /; FreeQ[{a, b, p}, x] && ILtQ[n, 0] && IntegerQ[m]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[((a1 + b1/x^n)^p*(a2 + b2/x^n)^p)/x^(m + 2), x], x, 1/x] /; FreeQ[{a1, b1, a2, b2, p}, x] && EqQ[a2*b1 + a1*b2, 0] && ILtQ[2*n, 0] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, -Dist[k/c, Subst[Int[(a + b/(c^n*x^(k*n)))^p/x^(k*(m + 1) + 1), x], x, 1/(c*x)^(1/k)], x]] /; FreeQ[{a, b, c, p}, x] && ILtQ[n, 0] && FractionQ[m]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, -Dist[k/c, Subst[Int[((a1 + b1/(c^n*x^(k*n)))^p*(a2 + b2/(c^n*x^(k*n)))^p)/x^(k*(m + 1) + 1), x], x, 1/(c*x)^(1/k)], x]] /; FreeQ[{a1, b1, a2, b2, c, p}, x] && EqQ[a2*b1 + a1*b2, 0] && ILtQ[2*n, 0] && FractionQ[m]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Dist[((c*x)^(m + 1)*(1/x)^(m + 1))/c, Subst[Int[(a + b/x^n)^p/x^(m + 2), x], x, 1/x], x] /; FreeQ[{a, b, c, m, p}, x] && ILtQ[n, 0] && !RationalQ[m]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Dist[((c*x)^(m + 1)*(1/x)^(m + 1))/c, Subst[Int[((a1 + b1/x^n)^p*(a2 + b2/x^n)^p)/x^(m + 2), x], x, 1/x], x] /; FreeQ[{a1, b1, a2, b2, c, m, p}, x] && EqQ[a2*b1 + a1*b2, 0] && ILtQ[2*n, 0] && !RationalQ[m]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[n]}, Dist[k, Subst[Int[x^(k*(m + 1) - 1)*(a + b*x^(k*n))^p, x], x, x^(1/k)], x]] /; FreeQ[{a, b, m, p}, x] && FractionQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[2*n]}, Dist[k, Subst[Int[x^(k*(m + 1) - 1)*(a1 + b1*x^(k*n))^p*(a2 + b2*x^(k*n))^p, x], x, x^(1/k)], x]] /; FreeQ[{a1, b1, a2, b2, m, p}, x] && EqQ[a2*b1 + a1*b2, 0] && FractionQ[2*n]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, m, p}, x] && FractionQ[n]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, m, p}, x] && EqQ[a2*b1 + a1*b2, 0] && FractionQ[2*n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(m + 1), Subst[Int[(a + b*x^Simplify[n/(m + 1)])^p, x], x, x^(m + 1)], x] /; FreeQ[{a, b, m, n, p}, x] && IntegerQ[Simplify[n/(m + 1)]] && !IntegerQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(m + 1), Subst[Int[(a1 + b1*x^Simplify[n/(m + 1)])^p*(a2 + b2*x^Simplify[n/(m + 1)])^p, x], x, x^(m + 1)], x] /; FreeQ[{a1, b1, a2, b2, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IntegerQ[Simplify[(2*n)/(m + 1)]] && !IntegerQ[2*n]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, m, n, p}, x] && IntegerQ[Simplify[n/(m + 1)]] && !IntegerQ[n]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && IntegerQ[Simplify[(2*n)/(m + 1)]] && !IntegerQ[2*n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x^(m + 1)*(a + b*x^n)^p)/(m + 1), x] - Dist[(b*n*p)/(m + 1), Int[x^(m + n)*(a + b*x^n)^(p - 1), x], x] /; FreeQ[{a, b, m, n}, x] && EqQ[(m + 1)/n + p, 0] && GtQ[p, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x^(m + 1)*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p)/(m + 1), x] - Dist[(2*b1*b2*n*p)/(m + 1), Int[x^(m + 2*n)*(a1 + b1*x^n)^(p - 1)*(a2 + b2*x^n)^(p - 1), x], x] /; FreeQ[{a1, b1, a2, b2, m, n}, x] && EqQ[a2*b1 + a1*b2, 0] && EqQ[(m + 1)/(2*n) + p, 0] && GtQ[p, 0]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, m, n}, x] && EqQ[(m + 1)/n + p, 0] && GtQ[p, 0]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, m, n}, x] && EqQ[a2*b1 + a1*b2, 0] && EqQ[(m + 1)/(2*n) + p, 0] && GtQ[p, 0]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a + b*x^n)^p)/(c*(m + n*p + 1)), x] + Dist[(a*n*p)/(m + n*p + 1), Int[(c*x)^m*(a + b*x^n)^(p - 1), x], x] /; FreeQ[{a, b, c, m, n}, x] && IntegerQ[p + Simplify[(m + 1)/n]] && GtQ[p, 0] && NeQ[m + n*p + 1, 0]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((c*x)^(m + 1)*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p)/(c*(m + 2*n*p + 1)), x] + Dist[(2*a1*a2*n*p)/(m + 2*n*p + 1), Int[(c*x)^m*(a1 + b1*x^n)^(p - 1)*(a2 + b2*x^n)^(p - 1), x], x] /; FreeQ[{a1, b1, a2, b2, c, m, n}, x] && EqQ[a2*b1 + a1*b2, 0] && IntegerQ[p + Simplify[(m + 1)/(2*n)]] && GtQ[p, 0] && NeQ[m + 2*n*p + 1, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[p]}, Dist[(k*a^(p + Simplify[(m + 1)/n]))/n, Subst[Int[x^(k*Simplify[(m + 1)/n] - 1)/(1 - b*x^k)^(p + Simplify[(m + 1)/n] + 1), x], x, x^(n/k)/(a + b*x^n)^(1/k)], x]] /; FreeQ[{a, b, m, n}, x] && IntegerQ[p + Simplify[(m + 1)/n]] && LtQ[-1, p, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[p]}, Dist[(k*(a1*a2)^(p + Simplify[(m + 1)/(2*n)]))/(2*n), Subst[Int[x^(k*Simplify[(m + 1)/(2*n)] - 1)/(1 - b1*b2*x^k)^(p + Simplify[(m + 1)/(2*n)] + 1), x], x, x^((2*n)/k)/((a1 + b1*x^n)^(1/k)*(a2 + b2*x^n)^(1/k))], x]] /; FreeQ[{a1, b1, a2, b2, m, n}, x] && EqQ[a2*b1 + a1*b2, 0] && IntegerQ[p + Simplify[(m + 1)/(2*n)]] && LtQ[-1, p, 0]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, m, n}, x] && IntegerQ[p + Simplify[(m + 1)/n]] && LtQ[-1, p, 0]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a1 + b1*x^n)^p*(a2 + b2*x^n)^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, m, n}, x] && EqQ[a2*b1 + a1*b2, 0] && IntegerQ[p + Simplify[(m + 1)/(2*n)]] && LtQ[-1, p, 0]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*c*n*(p + 1)), x] + Dist[(m + n*(p + 1) + 1)/(a*n*(p + 1)), Int[(c*x)^m*(a + b*x^n)^(p + 1), x], x] /; FreeQ[{a, b, c, m, n}, x] && IntegerQ[p + Simplify[(m + 1)/n]] && LtQ[p, -1]
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*x)^(m + 1)*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1))/(2*a1*a2*c*n*(p + 1)), x] + Dist[(m + 2*n*(p + 1) + 1)/(2*a1*a2*n*(p + 1)), Int[(c*x)^m*(a1 + b1*x^n)^(p + 1)*(a2 + b2*x^n)^(p + 1), x], x] /; FreeQ[{a1, b1, a2, b2, c, m, n}, x] && EqQ[a2*b1 + a1*b2, 0] && IntegerQ[p + Simplify[(m + 1)/(2*n)]] && LtQ[p, -1]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{mn = Simplify[m - n]}, Simp[x^(mn + 1)/(b*(mn + 1)), x] - Dist[a/b, Int[x^mn/(a + b*x^n), x], x]] /; FreeQ[{a, b, m, n}, x] && FractionQ[Simplify[(m + 1)/n]] && SumSimplerQ[m, -n]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[x^(m + 1)/(a*(m + 1)), x] - Dist[b/a, Int[x^Simplify[m + n]/(a + b*x^n), x], x] /; FreeQ[{a, b, m, n}, x] && FractionQ[Simplify[(m + 1)/n]] && SumSimplerQ[m, n]
Int[Times[Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(c^IntPart[m]*(c*x)^FracPart[m])/x^FracPart[m], Int[x^m/(a + b*x^n), x], x] /; FreeQ[{a, b, c, m, n}, x] && FractionQ[Simplify[(m + 1)/n]] && (SumSimplerQ[m, n] || SumSimplerQ[m, -n])
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(a^p*(c*x)^(m + 1)*Hypergeometric2F1[-p, (m + 1)/n, (m + 1)/n + 1, -((b*x^n)/a)])/(c*(m + 1)), x] /; FreeQ[{a, b, c, m, n, p}, x] && !IGtQ[p, 0] && (ILtQ[p, 0] || GtQ[a, 0])
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^n)^FracPart[p])/(1 + (b*x^n)/a)^FracPart[p], Int[(c*x)^m*(1 + (b*x^n)/a)^p, x], x] /; FreeQ[{a, b, c, m, n, p}, x] && !IGtQ[p, 0] && !(ILtQ[p, 0] || GtQ[a, 0])
Int[Times[Power[Times[Optional[Pattern[c, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((a1 + b1*x^n)^FracPart[p]*(a2 + b2*x^n)^FracPart[p])/(a1*a2 + b1*b2*x^(2*n))^FracPart[p], Int[(c*x)^m*(a1*a2 + b1*b2*x^(2*n))^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, m, n, p}, x] && EqQ[a2*b1 + a1*b2, 0] && !IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Times[Pattern[c, Blank[]], Pattern[x, Blank[]]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/c, Subst[Int[((d*x)/c)^m*(a + b*x^n)^p, x], x, c*x], x] /; FreeQ[{a, b, c, d, m, n, p}, x]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[q, Blank[]]]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(d*x)^(m + 1)/(d*((c*x^q)^(1/q))^(m + 1)), Subst[Int[x^m*(a + b*x^(n*q))^p, x], x, (c*x^q)^(1/q)], x] /; FreeQ[{a, b, c, d, m, n, p, q}, x] && IntegerQ[n*q] && NeQ[x, (c*x^q)^(1/q)]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[q, Blank[]]]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[n]}, Subst[Int[(d*x)^m*(a + b*c^n*x^(n*q))^p, x], x^(1/k), (c*x^q)^(1/k)/(c^(1/k)*(x^(1/k))^(q - 1))]] /; FreeQ[{a, b, c, d, m, p, q}, x] && FractionQ[n]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[q, Blank[]]]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Subst[Int[(d*x)^m*(a + b*c^n*x^(n*q))^p, x], x^(n*q), (c*x^q)^n/c^n] /; FreeQ[{a, b, c, d, m, n, p, q}, x] && !RationalQ[n]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{c = Coefficient[v, x, 0], d = Coefficient[v, x, 1]}, Dist[1/d^(m + 1), Subst[Int[SimplifyIntegrand[(x - c)^m*(a + b*x^n)^p, x], x], x, v], x] /; NeQ[c, 0]] /; FreeQ[{a, b, n, p}, x] && LinearQ[v, x] && IntegerQ[m]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[u^m/(Coefficient[v, x, 1]*v^m), Subst[Int[x^m*(a + b*x^n)^p, x], x, v], x] /; FreeQ[{a, b, m, n, p}, x] && LinearPairQ[u, v, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0] && IGtQ[p, 0] && IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(n*(p + q))*(b + a/x^n)^p*(d + c/x^n)^q, x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0] && IntegersQ[p, q] && NegQ[n]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[((a + b/x^n)^p*(c + d/x^n)^q)/x^2, x], x, 1/x] /; FreeQ[{a, b, c, d, p, q}, x] && NeQ[b*c - a*d, 0] && ILtQ[n, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{g = Denominator[n]}, Dist[g, Subst[Int[x^(g - 1)*(a + b*x^(g*n))^p*(c + d*x^(g*n))^q, x], x, x^(1/g)], x]] /; FreeQ[{a, b, c, d, p, q}, x] && NeQ[b*c - a*d, 0] && FractionQ[n]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Subst[Int[1/(c - (b*c - a*d)*x^n), x], x, x/(a + b*x^n)^(1/n)] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[n*p + 1, 0] && IntegerQ[n]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(a*n*(p + 1)), x] - Dist[(c*q)/(a*(p + 1)), Int[(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1), x], x] /; FreeQ[{a, b, c, d, n, p}, x] && NeQ[b*c - a*d, 0] && EqQ[n*(p + q + 1) + 1, 0] && GtQ[q, 0] && NeQ[p, -1]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(a^p*x*Hypergeometric2F1[1/n, -p, 1 + 1/n, -(((b*c - a*d)*x^n)/(a*(c + d*x^n)))])/(c^(p + 1)*(c + d*x^n)^(1/n)), x] /; FreeQ[{a, b, c, d, n, q}, x] && NeQ[b*c - a*d, 0] && EqQ[n*(p + q + 1) + 1, 0] && ILtQ[p, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(a + b*x^n)^p*Hypergeometric2F1[1/n, -p, 1 + 1/n, -(((b*c - a*d)*x^n)/(a*(c + d*x^n)))])/(c*((c*(a + b*x^n))/(a*(c + d*x^n)))^p*(c + d*x^n)^(1/n + p)), x] /; FreeQ[{a, b, c, d, n, p, q}, x] && NeQ[b*c - a*d, 0] && EqQ[n*(p + q + 1) + 1, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*c), x] /; FreeQ[{a, b, c, d, n, p, q}, x] && NeQ[b*c - a*d, 0] && EqQ[n*(p + q + 2) + 1, 0] && EqQ[a*d*(p + 1) + b*c*(q + 1), 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(b*x*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*n*(p + 1)*(b*c - a*d)), x] + Dist[(b*c + n*(p + 1)*(b*c - a*d))/(a*n*(p + 1)*(b*c - a*d)), Int[(a + b*x^n)^(p + 1)*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, n, q}, x] && NeQ[b*c - a*d, 0] && EqQ[n*(p + q + 2) + 1, 0] && (LtQ[p, -1] || !LtQ[q, -1]) && NeQ[p, -1]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*x*(a + b*x^n)^(p + 1))/a, x] /; FreeQ[{a, b, c, d, n, p}, x] && NeQ[b*c - a*d, 0] && EqQ[a*d - b*c*(n*(p + 1) + 1), 0]
Int[Times[Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*x*(a1 + b1*x^(n/2))^(p + 1)*(a2 + b2*x^(n/2))^(p + 1))/(a1*a2), x] /; FreeQ[{a1, b1, a2, b2, c, d, n, p}, x] && EqQ[non2, n/2] && EqQ[a2*b1 + a1*b2, 0] && EqQ[a1*a2*d - b1*b2*c*(n*(p + 1) + 1), 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*c - a*d)*x*(a + b*x^n)^(p + 1))/(a*b*n*(p + 1)), x] - Dist[(a*d - b*c*(n*(p + 1) + 1))/(a*b*n*(p + 1)), Int[(a + b*x^n)^(p + 1), x], x] /; FreeQ[{a, b, c, d, n, p}, x] && NeQ[b*c - a*d, 0] && (LtQ[p, -1] || ILtQ[1/n + p, 0])
Int[Times[Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b1*b2*c - a1*a2*d)*x*(a1 + b1*x^(n/2))^(p + 1)*(a2 + b2*x^(n/2))^(p + 1))/(a1*a2*b1*b2*n*(p + 1)), x] - Dist[(a1*a2*d - b1*b2*c*(n*(p + 1) + 1))/(a1*a2*b1*b2*n*(p + 1)), Int[(a1 + b1*x^(n/2))^(p + 1)*(a2 + b2*x^(n/2))^(p + 1), x], x] /; FreeQ[{a1, b1, a2, b2, c, d, n}, x] && EqQ[non2, n/2] && EqQ[a2*b1 + a1*b2, 0] && (LtQ[p, -1] || ILtQ[1/n + p, 0])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*x)/a, x] - Dist[(b*c - a*d)/a, Int[1/(b + a/x^n), x], x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0] && LtQ[n, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*x*(a + b*x^n)^(p + 1))/(b*(n*(p + 1) + 1)), x] - Dist[(a*d - b*c*(n*(p + 1) + 1))/(b*(n*(p + 1) + 1)), Int[(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0] && NeQ[n*(p + 1) + 1, 0]
Int[Times[Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*x*(a1 + b1*x^(n/2))^(p + 1)*(a2 + b2*x^(n/2))^(p + 1))/(b1*b2*(n*(p + 1) + 1)), x] - Dist[(a1*a2*d - b1*b2*c*(n*(p + 1) + 1))/(b1*b2*(n*(p + 1) + 1)), Int[(a1 + b1*x^(n/2))^p*(a2 + b2*x^(n/2))^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, d, n, p}, x] && EqQ[non2, n/2] && EqQ[a2*b1 + a1*b2, 0] && NeQ[n*(p + 1) + 1, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[PolynomialDivide[(a + b*x^n)^p, (c + d*x^n)^(-q), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && IGtQ[p, 0] && ILtQ[q, 0] && GeQ[p, -q]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[1/(a + b*x^n), x], x] - Dist[d/(b*c - a*d), Int[1/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b/a, 2]}, Simp[(q*ArcTanh[Sqrt[3]/(q*x)])/(2*2^(2/3)*Sqrt[3]*a^(1/3)*d), x] + (-Simp[(q*ArcTan[(a^(1/3)*q*x)/(a^(1/3) + 2^(1/3)*(a + b*x^2)^(1/3))])/(2*2^(2/3)*a^(1/3)*d), x] + Simp[(q*ArcTan[q*x])/(6*2^(2/3)*a^(1/3)*d), x] + Simp[(q*ArcTanh[(Sqrt[3]*(a^(1/3) - 2^(1/3)*(a + b*x^2)^(1/3)))/(a^(1/3)*q*x)])/(2*2^(2/3)*Sqrt[3]*a^(1/3)*d), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[b*c + 3*a*d, 0] && PosQ[b/a]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(b/a), 2]}, Simp[(q*ArcTan[Sqrt[3]/(q*x)])/(2*2^(2/3)*Sqrt[3]*a^(1/3)*d), x] + (Simp[(q*ArcTanh[(a^(1/3)*q*x)/(a^(1/3) + 2^(1/3)*(a + b*x^2)^(1/3))])/(2*2^(2/3)*a^(1/3)*d), x] - Simp[(q*ArcTanh[q*x])/(6*2^(2/3)*a^(1/3)*d), x] + Simp[(q*ArcTan[(Sqrt[3]*(a^(1/3) - 2^(1/3)*(a + b*x^2)^(1/3)))/(a^(1/3)*q*x)])/(2*2^(2/3)*Sqrt[3]*a^(1/3)*d), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[b*c + 3*a*d, 0] && NegQ[b/a]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b/a, 2]}, Simp[(q*ArcTan[(q*x)/3])/(12*Rt[a, 3]*d), x] + (Simp[(q*ArcTan[(Rt[a, 3] - (a + b*x^2)^(1/3))^2/(3*Rt[a, 3]^2*q*x)])/(12*Rt[a, 3]*d), x] - Simp[(q*ArcTanh[(Sqrt[3]*(Rt[a, 3] - (a + b*x^2)^(1/3)))/(Rt[a, 3]*q*x)])/(4*Sqrt[3]*Rt[a, 3]*d), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[b*c - 9*a*d, 0] && PosQ[b/a]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(b/a), 2]}, -Simp[(q*ArcTanh[(q*x)/3])/(12*Rt[a, 3]*d), x] + (Simp[(q*ArcTanh[(Rt[a, 3] - (a + b*x^2)^(1/3))^2/(3*Rt[a, 3]^2*q*x)])/(12*Rt[a, 3]*d), x] - Simp[(q*ArcTan[(Sqrt[3]*(Rt[a, 3] - (a + b*x^2)^(1/3)))/(Rt[a, 3]*q*x)])/(4*Sqrt[3]*Rt[a, 3]*d), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[b*c - 9*a*d, 0] && NegQ[b/a]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[2, 3]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/d, Int[1/(a + b*x^2)^(1/3), x], x] - Dist[(b*c - a*d)/d, Int[1/((a + b*x^2)^(1/3)*(c + d*x^2)), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[b*c + 3*a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2/a, 4]}, -Simp[(b*ArcTan[(b + q^2*Sqrt[a + b*x^2])/(q^3*x*(a + b*x^2)^(1/4))])/(2*a*d*q), x] - Simp[(b*ArcTanh[(b - q^2*Sqrt[a + b*x^2])/(q^3*x*(a + b*x^2)^(1/4))])/(2*a*d*q), x]] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c - 2*a*d, 0] && PosQ[b^2/a]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(b^2/a), 4]}, Simp[(b*ArcTan[(q*x)/(Sqrt[2]*(a + b*x^2)^(1/4))])/(2*Sqrt[2]*a*d*q), x] + Simp[(b*ArcTanh[(q*x)/(Sqrt[2]*(a + b*x^2)^(1/4))])/(2*Sqrt[2]*a*d*q), x]] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c - 2*a*d, 0] && NegQ[b^2/a]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(2*Sqrt[-((b*x^2)/a)])/x, Subst[Int[x^2/(Sqrt[1 - x^4/a]*(b*c - a*d + d*x^4)), x], x, (a + b*x^2)^(1/4)], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[1/c, Int[1/(a + b*x^2)^(3/4), x], x] - Dist[d/c, Int[x^2/((a + b*x^2)^(3/4)*(c + d*x^2)), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c - 2*a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[-((b*x^2)/a)]/(2*x), Subst[Int[1/(Sqrt[-((b*x)/a)]*(a + b*x)^(3/4)*(c + d*x)), x], x, x^2], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/d, Int[(a + b*x^2)^(p - 1), x], x] - Dist[(b*c - a*d)/d, Int[(a + b*x^2)^(p - 1)/(c + d*x^2), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && GtQ[p, 0] && (EqQ[p, 1/2] || EqQ[Denominator[p], 4])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[(a + b*x^2)^p, x], x] - Dist[d/(b*c - a*d), Int[(a + b*x^2)^(p + 1)/(c + d*x^2), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && EqQ[Denominator[p], 4] && (EqQ[p, -5/4] || EqQ[p, -7/4])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[a/c, Subst[Int[1/(1 - 4*a*b*x^4), x], x, x/Sqrt[a + b*x^4]], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c + a*d, 0] && PosQ[a*b]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*b), 4]}, Simp[(a*ArcTan[(q*x*(a + q^2*x^2))/(a*Sqrt[a + b*x^4])])/(2*c*q), x] + Simp[(a*ArcTanh[(q*x*(a - q^2*x^2))/(a*Sqrt[a + b*x^4])])/(2*c*q), x]] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c + a*d, 0] && NegQ[a*b]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/d, Int[1/Sqrt[a + b*x^4], x], x] - Dist[(b*c - a*d)/d, Int[1/(Sqrt[a + b*x^4]*(c + d*x^4)), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[a + b*x^4]*Sqrt[a/(a + b*x^4)], Subst[Int[1/(Sqrt[1 - b*x^4]*(c - (b*c - a*d)*x^4)), x], x, x/(a + b*x^4)^(1/4)], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/d, Int[(a + b*x^4)^(p - 1), x], x] - Dist[(b*c - a*d)/d, Int[(a + b*x^4)^(p - 1)/(c + d*x^4), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && (EqQ[p, 3/4] || EqQ[p, 5/4])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[1/(2*c), Int[1/(Sqrt[a + b*x^4]*(1 - Rt[-(d/c), 2]*x^2)), x], x] + Dist[1/(2*c), Int[1/(Sqrt[a + b*x^4]*(1 + Rt[-(d/c), 2]*x^2)), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-3, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[1/(a + b*x^4)^(3/4), x], x] - Dist[d/(b*c - a*d), Int[(a + b*x^4)^(1/4)/(c + d*x^4), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(Sqrt[a + b*x^2]*EllipticE[ArcTan[Rt[d/c, 2]*x], 1 - (b*c)/(a*d)])/(c*Rt[d/c, 2]*Sqrt[c + d*x^2]*Sqrt[(c*(a + b*x^2))/(a*(c + d*x^2))]), x] /; FreeQ[{a, b, c, d}, x] && PosQ[b/a] && PosQ[d/c]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(a*n*(p + 1)), x] + Dist[1/(a*n*(p + 1)), Int[(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1)*Simp[c*(n*(p + 1) + 1) + d*(n*(p + q + 1) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && LtQ[0, q, 1] && IntBinomialQ[a, b, c, d, n, p, q, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a*d - c*b)*x*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1))/(a*b*n*(p + 1)), x] - Dist[1/(a*b*n*(p + 1)), Int[(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 2)*Simp[c*(a*d - c*b*(n*(p + 1) + 1)) + d*(a*d*(n*(q - 1) + 1) - b*c*(n*(p + q) + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && GtQ[q, 1] && IntBinomialQ[a, b, c, d, n, p, q, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(b*x*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*n*(p + 1)*(b*c - a*d)), x] + Dist[1/(a*n*(p + 1)*(b*c - a*d)), Int[(a + b*x^n)^(p + 1)*(c + d*x^n)^q*Simp[b*c + n*(p + 1)*(b*c - a*d) + d*b*(n*(p + q + 2) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, n, q}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && !( !IntegerQ[p] && IntegerQ[q] && LtQ[q, -1]) && IntBinomialQ[a, b, c, d, n, p, q, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && IntegersQ[p, q] && GtQ[p + q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*x*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1))/(b*(n*(p + q) + 1)), x] + Dist[1/(b*(n*(p + q) + 1)), Int[(a + b*x^n)^p*(c + d*x^n)^(q - 2)*Simp[c*(b*c*(n*(p + q) + 1) - a*d) + d*(b*c*(n*(p + 2*q - 1) + 1) - a*d*(n*(q - 1) + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, n, p}, x] && NeQ[b*c - a*d, 0] && GtQ[q, 1] && NeQ[n*(p + q) + 1, 0] && !IGtQ[p, 1] && IntBinomialQ[a, b, c, d, n, p, q, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(a + b*x^n)^p*(c + d*x^n)^q)/(n*(p + q) + 1), x] + Dist[n/(n*(p + q) + 1), Int[(a + b*x^n)^(p - 1)*(c + d*x^n)^(q - 1)*Simp[a*c*(p + q) + (q*(b*c - a*d) + a*d*(p + q))*x^n, x], x], x] /; FreeQ[{a, b, c, d, n}, x] && NeQ[b*c - a*d, 0] && GtQ[q, 0] && GtQ[p, 0] && IntBinomialQ[a, b, c, d, n, p, q, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(Sqrt[a + b*x^2]*EllipticF[ArcTan[Rt[d/c, 2]*x], 1 - (b*c)/(a*d)])/(a*Rt[d/c, 2]*Sqrt[c + d*x^2]*Sqrt[(c*(a + b*x^2))/(a*(c + d*x^2))]), x] /; FreeQ[{a, b, c, d}, x] && PosQ[d/c] && PosQ[b/a] && !SimplerSqrtQ[b/a, d/c]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(1*EllipticF[ArcSin[Rt[-(d/c), 2]*x], (b*c)/(a*d)])/(Sqrt[a]*Sqrt[c]*Rt[-(d/c), 2]), x] /; FreeQ[{a, b, c, d}, x] && NegQ[d/c] && GtQ[c, 0] && GtQ[a, 0] && !(NegQ[b/a] && SimplerSqrtQ[-(b/a), -(d/c)])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Simp[EllipticF[ArcCos[Rt[-(d/c), 2]*x], (b*c)/(b*c - a*d)]/(Sqrt[c]*Rt[-(d/c), 2]*Sqrt[a - (b*c)/d]), x] /; FreeQ[{a, b, c, d}, x] && NegQ[d/c] && GtQ[c, 0] && GtQ[a - (b*c)/d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[1 + (d*x^2)/c]/Sqrt[c + d*x^2], Int[1/(Sqrt[a + b*x^2]*Sqrt[1 + (d*x^2)/c]), x], x] /; FreeQ[{a, b, c, d}, x] && !GtQ[c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[a, Int[1/(Sqrt[a + b*x^2]*Sqrt[c + d*x^2]), x], x] + Dist[b, Int[x^2/(Sqrt[a + b*x^2]*Sqrt[c + d*x^2]), x], x] /; FreeQ[{a, b, c, d}, x] && PosQ[d/c] && PosQ[b/a]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[b/d, Int[Sqrt[c + d*x^2]/Sqrt[a + b*x^2], x], x] - Dist[(b*c - a*d)/d, Int[1/(Sqrt[a + b*x^2]*Sqrt[c + d*x^2]), x], x] /; FreeQ[{a, b, c, d}, x] && PosQ[d/c] && NegQ[b/a]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(Sqrt[a]*EllipticE[ArcSin[Rt[-(d/c), 2]*x], (b*c)/(a*d)])/(Sqrt[c]*Rt[-(d/c), 2]), x] /; FreeQ[{a, b, c, d}, x] && NegQ[d/c] && GtQ[c, 0] && GtQ[a, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Simp[(Sqrt[a - (b*c)/d]*EllipticE[ArcCos[Rt[-(d/c), 2]*x], (b*c)/(b*c - a*d)])/(Sqrt[c]*Rt[-(d/c), 2]), x] /; FreeQ[{a, b, c, d}, x] && NegQ[d/c] && GtQ[c, 0] && GtQ[a - (b*c)/d, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[a + b*x^2]/Sqrt[1 + (b*x^2)/a], Int[Sqrt[1 + (b*x^2)/a]/Sqrt[c + d*x^2], x], x] /; FreeQ[{a, b, c, d}, x] && NegQ[d/c] && GtQ[c, 0] && !GtQ[a, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[1 + (d*x^2)/c]/Sqrt[c + d*x^2], Int[Sqrt[a + b*x^2]/Sqrt[1 + (d*x^2)/c], x], x] /; FreeQ[{a, b, c, d}, x] && NegQ[d/c] && !GtQ[c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, n, q}, x] && NeQ[b*c - a*d, 0] && IGtQ[p, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[a^p*c^q*x*AppellF1[1/n, -p, -q, 1 + 1/n, -((b*x^n)/a), -((d*x^n)/c)], x] /; FreeQ[{a, b, c, d, n, p, q}, x] && NeQ[b*c - a*d, 0] && NeQ[n, -1] && (IntegerQ[p] || GtQ[a, 0]) && (IntegerQ[q] || GtQ[c, 0])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^n)^FracPart[p])/(1 + (b*x^n)/a)^FracPart[p], Int[(1 + (b*x^n)/a)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, n, p, q}, x] && NeQ[b*c - a*d, 0] && NeQ[n, -1] && !(IntegerQ[p] || GtQ[a, 0])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[u, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[u, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x^n)^p*(c + d*x^n)^q, x], x, u], x] /; FreeQ[{a, b, c, d, n, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[p, Blank[]]]], Power[Pattern[v, Blank[]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[NormalizePseudoBinomial[u, x]^p*NormalizePseudoBinomial[v, x]^q, x] /; FreeQ[{p, q}, x] && PseudoBinomialPairQ[u, v, x]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[p, Blank[]]]], Power[Pattern[v, Blank[]], Optional[Pattern[q, Blank[]]]], Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[NormalizePseudoBinomial[x^(m/p)*u, x]^p*NormalizePseudoBinomial[v, x]^q, x] /; FreeQ[{p, q}, x] && IntegersQ[p, m/p] && PseudoBinomialPairQ[x^(m/p)*u, v, x]
Int[Times[Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((a + b*x^n)^p*(d + c*x^n)^q)/x^(n*q), x] /; FreeQ[{a, b, c, d, n, p}, x] && EqQ[mn, -n] && IntegerQ[q] && (PosQ[n] || !IntegerQ[p])
Int[Times[Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(x^(n*FracPart[q])*(c + d/x^n)^FracPart[q])/(d + c*x^n)^FracPart[q], Int[((a + b*x^n)^p*(d + c*x^n)^q)/x^(n*q), x], x] /; FreeQ[{a, b, c, d, n, p, q}, x] && EqQ[mn, -n] && !IntegerQ[q] && !IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[e^m/(n*b^(Simplify[(m + 1)/n] - 1)), Subst[Int[(b*x)^(p + Simplify[(m + 1)/n] - 1)*(c + d*x)^q, x], x, x^n], x] /; FreeQ[{b, c, d, e, m, n, p, q}, x] && (IntegerQ[m] || GtQ[e, 0]) && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^m*b^IntPart[p]*(b*x^n)^FracPart[p])/x^(n*FracPart[p]), Int[x^(m + n*p)*(c + d*x^n)^q, x], x] /; FreeQ[{b, c, d, e, m, n, p, q}, x] && (IntegerQ[m] || GtQ[e, 0]) && !IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Pattern[e, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^IntPart[m]*(e*x)^FracPart[m])/x^FracPart[m], Int[x^m*(b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{b, c, d, e, m, n, p, q}, x] && !IntegerQ[m]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := -Simp[ArcTan[(Rt[a, 4]^2 - Sqrt[a + b*x^2])/(Sqrt[2]*Rt[a, 4]*(a + b*x^2)^(1/4))]/(Sqrt[2]*Rt[a, 4]*d), x] - Simp[(1*ArcTanh[(Rt[a, 4]^2 + Sqrt[a + b*x^2])/(Sqrt[2]*Rt[a, 4]*(a + b*x^2)^(1/4))])/(Sqrt[2]*Rt[a, 4]*d), x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c - 2*a*d, 0] && PosQ[a]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[x^m/((a + b*x^2)^(1/4)*(c + d*x^2)), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c - 2*a*d, 0] && IntegerQ[m] && (PosQ[a] || IntegerQ[m/2])
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := -Simp[(b*ArcTan[(b + Rt[b^2/a, 4]^2*Sqrt[a + b*x^2])/(Rt[b^2/a, 4]^3*x*(a + b*x^2)^(1/4))])/(a*d*Rt[b^2/a, 4]^3), x] + Simp[(b*ArcTanh[(b - Rt[b^2/a, 4]^2*Sqrt[a + b*x^2])/(Rt[b^2/a, 4]^3*x*(a + b*x^2)^(1/4))])/(a*d*Rt[b^2/a, 4]^3), x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c - 2*a*d, 0] && PosQ[b^2/a]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := -Simp[(b*ArcTan[(Rt[-(b^2/a), 4]*x)/(Sqrt[2]*(a + b*x^2)^(1/4))])/(Sqrt[2]*a*d*Rt[-(b^2/a), 4]^3), x] + Simp[(b*ArcTanh[(Rt[-(b^2/a), 4]*x)/(Sqrt[2]*(a + b*x^2)^(1/4))])/(Sqrt[2]*a*d*Rt[-(b^2/a), 4]^3), x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c - 2*a*d, 0] && NegQ[b^2/a]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[x^m/((a + b*x^2)^(3/4)*(c + d*x^2)), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[b*c - 2*a*d, 0] && IntegerQ[m] && (PosQ[a] || IntegerQ[m/2])
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[(a + b*x)^p*(c + d*x)^q, x], x, x^n], x] /; FreeQ[{a, b, c, d, m, n, p, q}, x] && NeQ[b*c - a*d, 0] && EqQ[m - n + 1, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m + n*(p + q))*(b + a/x^n)^p*(d + c/x^n)^q, x] /; FreeQ[{a, b, c, d, m, n}, x] && NeQ[b*c - a*d, 0] && IntegersQ[p, q] && NegQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[x^(Simplify[(m + 1)/n] - 1)*(a + b*x)^p*(c + d*x)^q, x], x, x^n], x] /; FreeQ[{a, b, c, d, m, n, p, q}, x] && NeQ[b*c - a*d, 0] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Pattern[e, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^IntPart[m]*(e*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, m, n, p, q}, x] && NeQ[b*c - a*d, 0] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(e*x)^m*(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, m, n}, x] && NeQ[b*c - a*d, 0] && IGtQ[p, 0] && IGtQ[q, 0]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*(e*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*e*(m + 1)), x] /; FreeQ[{a, b, c, d, e, m, n, p}, x] && NeQ[b*c - a*d, 0] && EqQ[a*d*(m + 1) - b*c*(m + n*(p + 1) + 1), 0] && NeQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*(e*x)^(m + 1)*(a1 + b1*x^(n/2))^(p + 1)*(a2 + b2*x^(n/2))^(p + 1))/(a1*a2*e*(m + 1)), x] /; FreeQ[{a1, b1, a2, b2, c, d, e, m, n, p}, x] && EqQ[non2, n/2] && EqQ[a2*b1 + a1*b2, 0] && EqQ[a1*a2*d*(m + 1) - b1*b2*c*(m + n*(p + 1) + 1), 0] && NeQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*(e*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*e*(m + 1)), x] + Dist[d/e^n, Int[(e*x)^(m + n)*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, d, e, m, n, p}, x] && NeQ[b*c - a*d, 0] && EqQ[m + n*(p + 1) + 1, 0] && (IntegerQ[n] || GtQ[e, 0]) && ((GtQ[n, 0] && LtQ[m, -1]) || (LtQ[n, 0] && GtQ[m + n, -1]))
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*c - a*d)*(e*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*b*e*(m + 1)), x] + Dist[d/b, Int[(e*x)^m*(a + b*x^n)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, m, n, p}, x] && NeQ[b*c - a*d, 0] && EqQ[m + n*(p + 1) + 1, 0] && NeQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*(e*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*e*(m + 1)), x] + Dist[(a*d*(m + 1) - b*c*(m + n*(p + 1) + 1))/(a*e^n*(m + 1)), Int[(e*x)^(m + n)*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b*c - a*d, 0] && (IntegerQ[n] || GtQ[e, 0]) && ((GtQ[n, 0] && LtQ[m, -1]) || (LtQ[n, 0] && GtQ[m + n, -1])) && !ILtQ[p, -1]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*(e*x)^(m + 1)*(a1 + b1*x^(n/2))^(p + 1)*(a2 + b2*x^(n/2))^(p + 1))/(a1*a2*e*(m + 1)), x] + Dist[(a1*a2*d*(m + 1) - b1*b2*c*(m + n*(p + 1) + 1))/(a1*a2*e^n*(m + 1)), Int[(e*x)^(m + n)*(a1 + b1*x^(n/2))^p*(a2 + b2*x^(n/2))^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, d, e, p}, x] && EqQ[non2, n/2] && EqQ[a2*b1 + a1*b2, 0] && (IntegerQ[n] || GtQ[e, 0]) && ((GtQ[n, 0] && LtQ[m, -1]) || (LtQ[n, 0] && GtQ[m + n, -1])) && !ILtQ[p, -1]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]]], Pattern[x, Blank[Symbol]]] := Simp[((-a)^(m/2 - 1)*(b*c - a*d)*x*(a + b*x^2)^(p + 1))/(2*b^(m/2 + 1)*(p + 1)), x] + Dist[1/(2*b^(m/2 + 1)*(p + 1)), Int[(a + b*x^2)^(p + 1)*ExpandToSum[2*b*(p + 1)*x^2*Together[(b^(m/2)*x^(m - 2)*(c + d*x^2) - (-a)^(m/2 - 1)*(b*c - a*d))/(a + b*x^2)] - (-a)^(m/2 - 1)*(b*c - a*d), x], x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && IGtQ[m/2, 0] && (IntegerQ[p] || EqQ[m + 2*p + 1, 0])
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]]], Pattern[x, Blank[Symbol]]] := Simp[((-a)^(m/2 - 1)*(b*c - a*d)*x*(a + b*x^2)^(p + 1))/(2*b^(m/2 + 1)*(p + 1)), x] + Dist[1/(2*b^(m/2 + 1)*(p + 1)), Int[x^m*(a + b*x^2)^(p + 1)*ExpandToSum[2*b*(p + 1)*Together[(b^(m/2)*(c + d*x^2) - (-a)^(m/2 - 1)*(b*c - a*d)*x^(-m + 2))/(a + b*x^2)] - ((-a)^(m/2 - 1)*(b*c - a*d))/x^m, x], x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && ILtQ[m/2, 0] && (IntegerQ[p] || EqQ[m + 2*p + 1, 0])
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*c - a*d)*(e*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*b*e*n*(p + 1)), x] - Dist[(a*d*(m + 1) - b*c*(m + n*(p + 1) + 1))/(a*b*n*(p + 1)), Int[(e*x)^m*(a + b*x^n)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, m, n}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && (( !IntegerQ[p + 1/2] && NeQ[p, -5/4]) || !RationalQ[m] || (IGtQ[n, 0] && ILtQ[p + 1/2, 0] && LeQ[-1, m, -(n*(p + 1))]))
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b1*b2*c - a1*a2*d)*(e*x)^(m + 1)*(a1 + b1*x^(n/2))^(p + 1)*(a2 + b2*x^(n/2))^(p + 1))/(a1*a2*b1*b2*e*n*(p + 1)), x] - Dist[(a1*a2*d*(m + 1) - b1*b2*c*(m + n*(p + 1) + 1))/(a1*a2*b1*b2*n*(p + 1)), Int[(e*x)^m*(a1 + b1*x^(n/2))^(p + 1)*(a2 + b2*x^(n/2))^(p + 1), x], x] /; FreeQ[{a1, b1, a2, b2, c, d, e, m, n}, x] && EqQ[non2, n/2] && EqQ[a2*b1 + a1*b2, 0] && LtQ[p, -1] && (( !IntegerQ[p + 1/2] && NeQ[p, -5/4]) || !RationalQ[m] || (IGtQ[n, 0] && ILtQ[p + 1/2, 0] && LeQ[-1, m, -(n*(p + 1))]))
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(e*x)^(m + 1)*(a + b*x^n)^(p + 1))/(b*e*(m + n*(p + 1) + 1)), x] - Dist[(a*d*(m + 1) - b*c*(m + n*(p + 1) + 1))/(b*(m + n*(p + 1) + 1)), Int[(e*x)^m*(a + b*x^n)^p, x], x] /; FreeQ[{a, b, c, d, e, m, n, p}, x] && NeQ[b*c - a*d, 0] && NeQ[m + n*(p + 1) + 1, 0]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(e*x)^(m + 1)*(a1 + b1*x^(n/2))^(p + 1)*(a2 + b2*x^(n/2))^(p + 1))/(b1*b2*e*(m + n*(p + 1) + 1)), x] - Dist[(a1*a2*d*(m + 1) - b1*b2*c*(m + n*(p + 1) + 1))/(b1*b2*(m + n*(p + 1) + 1)), Int[(e*x)^m*(a1 + b1*x^(n/2))^p*(a2 + b2*x^(n/2))^p, x], x] /; FreeQ[{a1, b1, a2, b2, c, d, e, m, n, p}, x] && EqQ[non2, n/2] && EqQ[a2*b1 + a1*b2, 0] && NeQ[m + n*(p + 1) + 1, 0]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[((e*x)^m*(a + b*x^n)^p)/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && IGtQ[p, 0] && (IntegerQ[m] || IGtQ[2*(m + 1), 0] || !RationalQ[m])
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], 2]], Pattern[x, Blank[Symbol]]] := Simp[(c^2*(e*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*e*(m + 1)), x] - Dist[1/(a*e^n*(m + 1)), Int[(e*x)^(m + n)*(a + b*x^n)^p*Simp[b*c^2*n*(p + 1) + c*(b*c - 2*a*d)*(m + 1) - a*(m + 1)*d^2*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[m, -1] && GtQ[n, 0]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], 2]], Pattern[x, Blank[Symbol]]] := -Simp[((b*c - a*d)^2*(e*x)^(m + 1)*(a + b*x^n)^(p + 1))/(a*b^2*e*n*(p + 1)), x] + Dist[1/(a*b^2*n*(p + 1)), Int[(e*x)^m*(a + b*x^n)^(p + 1)*Simp[(b*c - a*d)^2*(m + 1) + b^2*c^2*n*(p + 1) + a*b*d^2*n*(p + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m, n}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[p, -1]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], 2]], Pattern[x, Blank[Symbol]]] := Simp[(d^2*(e*x)^(m + n + 1)*(a + b*x^n)^(p + 1))/(b*e^(n + 1)*(m + n*(p + 2) + 1)), x] + Dist[1/(b*(m + n*(p + 2) + 1)), Int[(e*x)^m*(a + b*x^n)^p*Simp[b*c^2*(m + n*(p + 2) + 1) + d*((2*b*c - a*d)*(m + n + 1) + 2*b*c*n*(p + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m, n, p}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && NeQ[m + n*(p + 2) + 1, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = GCD[m + 1, n]}, Dist[1/k, Subst[Int[x^((m + 1)/k - 1)*(a + b*x^(n/k))^p*(c + d*x^(n/k))^q, x], x, x^k], x] /; k != 1] /; FreeQ[{a, b, c, d, p, q}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, Dist[k/e, Subst[Int[x^(k*(m + 1) - 1)*(a + (b*x^(k*n))/e^n)^p*(c + (d*x^(k*n))/e^n)^q, x], x, (e*x)^(1/k)], x]] /; FreeQ[{a, b, c, d, e, p, q}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && FractionQ[m] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^(n - 1)*(e*x)^(m - n + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(b*n*(p + 1)), x] - Dist[e^n/(b*n*(p + 1)), Int[(e*x)^(m - n)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1)*Simp[c*(m - n + 1) + d*(m + n*(q - 1) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[p, -1] && GtQ[q, 0] && GtQ[m - n + 1, 0] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*b - a*d)*(e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1))/(a*b*e*n*(p + 1)), x] + Dist[1/(a*b*n*(p + 1)), Int[(e*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 2)*Simp[c*(c*b*n*(p + 1) + (c*b - a*d)*(m + 1)) + d*(c*b*n*(p + 1) + (c*b - a*d)*(m + n*(q - 1) + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[p, -1] && GtQ[q, 1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(a*e*n*(p + 1)), x] + Dist[1/(a*n*(p + 1)), Int[(e*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1)*Simp[c*(m + n*(p + 1) + 1) + d*(m + n*(p + q + 1) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[p, -1] && LtQ[0, q, 1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(a*e^(2*n - 1)*(e*x)^(m - 2*n + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(b*n*(b*c - a*d)*(p + 1)), x] + Dist[e^(2*n)/(b*n*(b*c - a*d)*(p + 1)), Int[(e*x)^(m - 2*n)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q*Simp[a*c*(m - 2*n + 1) + (a*d*(m - n + n*q + 1) + b*c*n*(p + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, q}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[p, -1] && GtQ[m - n + 1, n] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^(n - 1)*(e*x)^(m - n + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(n*(b*c - a*d)*(p + 1)), x] - Dist[e^n/(n*(b*c - a*d)*(p + 1)), Int[(e*x)^(m - n)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q*Simp[c*(m - n + 1) + d*(m + n*(p + q + 1) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, q}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[p, -1] && GeQ[n, m - n + 1] && GtQ[m - n + 1, 0] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(b*(e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*e*n*(b*c - a*d)*(p + 1)), x] + Dist[1/(a*n*(b*c - a*d)*(p + 1)), Int[(e*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^q*Simp[c*b*(m + 1) + n*(b*c - a*d)*(p + 1) + d*b*(m + n*(p + q + 2) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m, q}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[p, -1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((e*x)^(m + 1)*(a + b*x^n)^p*(c + d*x^n)^q)/(e*(m + 1)), x] - Dist[n/(e^n*(m + 1)), Int[(e*x)^(m + n)*(a + b*x^n)^(p - 1)*(c + d*x^n)^(q - 1)*Simp[b*c*p + a*d*q + b*d*(p + q)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && GtQ[q, 0] && LtQ[m, -1] && GtQ[p, 0] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*(e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1))/(a*e*(m + 1)), x] - Dist[1/(a*e^n*(m + 1)), Int[(e*x)^(m + n)*(a + b*x^n)^p*(c + d*x^n)^(q - 2)*Simp[c*(c*b - a*d)*(m + 1) + c*n*(b*c*(p + 1) + a*d*(q - 1)) + d*((c*b - a*d)*(m + 1) + c*b*n*(p + q))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && GtQ[q, 1] && LtQ[m, -1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(a*e*(m + 1)), x] - Dist[1/(a*e^n*(m + 1)), Int[(e*x)^(m + n)*(a + b*x^n)^p*(c + d*x^n)^(q - 1)*Simp[c*b*(m + 1) + n*(b*c*(p + 1) + a*d*q) + d*(b*(m + 1) + b*n*(p + q + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[0, q, 1] && LtQ[m, -1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((e*x)^(m + 1)*(a + b*x^n)^p*(c + d*x^n)^q)/(e*(m + n*(p + q) + 1)), x] + Dist[n/(m + n*(p + q) + 1), Int[(e*x)^m*(a + b*x^n)^(p - 1)*(c + d*x^n)^(q - 1)*Simp[a*c*(p + q) + (q*(b*c - a*d) + a*d*(p + q))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && GtQ[q, 0] && GtQ[p, 0] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1))/(b*e*(m + n*(p + q) + 1)), x] + Dist[1/(b*(m + n*(p + q) + 1)), Int[(e*x)^m*(a + b*x^n)^p*(c + d*x^n)^(q - 2)*Simp[c*((c*b - a*d)*(m + 1) + c*b*n*(p + q)) + (d*(c*b - a*d)*(m + 1) + d*n*(q - 1)*(b*c - a*d) + c*b*d*n*(p + q))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && GtQ[q, 1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^(n - 1)*(e*x)^(m - n + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(b*(m + n*(p + q) + 1)), x] - Dist[e^n/(b*(m + n*(p + q) + 1)), Int[(e*x)^(m - n)*(a + b*x^n)^p*(c + d*x^n)^(q - 1)*Simp[a*c*(m - n + 1) + (a*d*(m - n + 1) - n*q*(b*c - a*d))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && GtQ[q, 0] && GtQ[m - n + 1, 0] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^(2*n - 1)*(e*x)^(m - 2*n + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(b*d*(m + n*(p + q) + 1)), x] - Dist[e^(2*n)/(b*d*(m + n*(p + q) + 1)), Int[(e*x)^(m - 2*n)*(a + b*x^n)^p*(c + d*x^n)^q*Simp[a*c*(m - 2*n + 1) + (a*d*(m + n*(q - 1) + 1) + b*c*(m + n*(p - 1) + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, p, q}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && GtQ[m - n + 1, n] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*c*e*(m + 1)), x] - Dist[1/(a*c*e^n*(m + 1)), Int[(e*x)^(m + n)*(a + b*x^n)^p*(c + d*x^n)^q*Simp[(b*c + a*d)*(m + n + 1) + n*(b*c*p + a*d*q) + b*d*(m + n*(p + q + 2) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, p, q}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LtQ[m, -1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := -Dist[(a*e^n)/(b*c - a*d), Int[(e*x)^(m - n)/(a + b*x^n), x], x] + Dist[(c*e^n)/(b*c - a*d), Int[(e*x)^(m - n)/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LeQ[n, m, 2*n - 1]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[(e*x)^m/(a + b*x^n), x], x] - Dist[d/(b*c - a*d), Int[(e*x)^m/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[e^n/b, Int[(e*x)^(m - n)*(c + d*x^n)^q, x], x] - Dist[(a*e^n)/b, Int[((e*x)^(m - n)*(c + d*x^n)^q)/(a + b*x^n), x], x] /; FreeQ[{a, b, c, d, e, m, q}, x] && NeQ[b*c - a*d, 0] && IGtQ[n, 0] && LeQ[n, m, 2*n - 1] && IntBinomialQ[a, b, c, d, e, m, n, -1, q, x]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[d/c, 3]}, Simp[(q*ArcTanh[Sqrt[c + d*x^3]/Rt[c, 2]])/(9*2^(2/3)*b*Rt[c, 2]), x] + (-Simp[(q*ArcTanh[(Rt[c, 2]*(1 - 2^(1/3)*q*x))/Sqrt[c + d*x^3]])/(3*2^(2/3)*b*Rt[c, 2]), x] + Simp[(q*ArcTan[Sqrt[c + d*x^3]/(Sqrt[3]*Rt[c, 2])])/(3*2^(2/3)*Sqrt[3]*b*Rt[c, 2]), x] - Simp[(q*ArcTan[(Sqrt[3]*Rt[c, 2]*(1 + 2^(1/3)*q*x))/Sqrt[c + d*x^3]])/(3*2^(2/3)*Sqrt[3]*b*Rt[c, 2]), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[4*b*c - a*d, 0] && PosQ[c]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[d/c, 3]}, -Simp[(q*ArcTan[Sqrt[c + d*x^3]/Rt[-c, 2]])/(9*2^(2/3)*b*Rt[-c, 2]), x] + (-Simp[(q*ArcTan[(Rt[-c, 2]*(1 - 2^(1/3)*q*x))/Sqrt[c + d*x^3]])/(3*2^(2/3)*b*Rt[-c, 2]), x] - Simp[(q*ArcTanh[Sqrt[c + d*x^3]/(Sqrt[3]*Rt[-c, 2])])/(3*2^(2/3)*Sqrt[3]*b*Rt[-c, 2]), x] - Simp[(q*ArcTanh[(Sqrt[3]*Rt[-c, 2]*(1 + 2^(1/3)*q*x))/Sqrt[c + d*x^3]])/(3*2^(2/3)*Sqrt[3]*b*Rt[-c, 2]), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[4*b*c - a*d, 0] && NegQ[c]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[d/c, 3]}, Dist[(d*q)/(4*b), Int[x^2/((8*c - d*x^3)*Sqrt[c + d*x^3]), x], x] + (-Dist[q^2/(12*b), Int[(1 + q*x)/((2 - q*x)*Sqrt[c + d*x^3]), x], x] + Dist[1/(12*b*c), Int[(2*c*q^2 - 2*d*x - d*q*x^2)/((4 + 2*q*x + q^2*x^2)*Sqrt[c + d*x^3]), x], x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[8*b*c + a*d, 0]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 3]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b/a, 3], r = Simplify[(b*c - 10*a*d)/(6*a*d)]}, -Simp[(q*(2 - r)*ArcTan[((1 - r)*Sqrt[a + b*x^3])/(Sqrt[2]*Rt[a, 2]*r^(3/2))])/(3*Sqrt[2]*Rt[a, 2]*d*r^(3/2)), x] + (-Simp[(q*(2 - r)*ArcTan[(Rt[a, 2]*Sqrt[r]*(1 + r)*(1 + q*x))/(Sqrt[2]*Sqrt[a + b*x^3])])/(2*Sqrt[2]*Rt[a, 2]*d*r^(3/2)), x] - Simp[(q*(2 - r)*ArcTanh[(Rt[a, 2]*Sqrt[r]*(1 + r - 2*q*x))/(Sqrt[2]*Sqrt[a + b*x^3])])/(3*Sqrt[2]*Rt[a, 2]*d*Sqrt[r]), x] - Simp[(q*(2 - r)*ArcTanh[(Rt[a, 2]*(1 - r)*Sqrt[r]*(1 + q*x))/(Sqrt[2]*Sqrt[a + b*x^3])])/(6*Sqrt[2]*Rt[a, 2]*d*Sqrt[r]), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[b^2*c^2 - 20*a*b*c*d - 8*a^2*d^2, 0] && PosQ[a]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 3]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b/a, 3], r = Simplify[(b*c - 10*a*d)/(6*a*d)]}, Simp[(q*(2 - r)*ArcTanh[((1 - r)*Sqrt[a + b*x^3])/(Sqrt[2]*Rt[-a, 2]*r^(3/2))])/(3*Sqrt[2]*Rt[-a, 2]*d*r^(3/2)), x] + (-Simp[(q*(2 - r)*ArcTanh[(Rt[-a, 2]*Sqrt[r]*(1 + r)*(1 + q*x))/(Sqrt[2]*Sqrt[a + b*x^3])])/(2*Sqrt[2]*Rt[-a, 2]*d*r^(3/2)), x] - Simp[(q*(2 - r)*ArcTan[(Rt[-a, 2]*Sqrt[r]*(1 + r - 2*q*x))/(Sqrt[2]*Sqrt[a + b*x^3])])/(3*Sqrt[2]*Rt[-a, 2]*d*Sqrt[r]), x] - Simp[(q*(2 - r)*ArcTan[(Rt[-a, 2]*(1 - r)*Sqrt[r]*(1 + q*x))/(Sqrt[2]*Sqrt[a + b*x^3])])/(6*Sqrt[2]*Rt[-a, 2]*d*Sqrt[r]), x])] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && EqQ[b^2*c^2 - 20*a*b*c*d - 8*a^2*d^2, 0] && NegQ[a]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 3]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/d, Int[x/Sqrt[a + b*x^3], x], x] - Dist[(b*c - a*d)/d, Int[x/((c + d*x^3)*Sqrt[a + b*x^3]), x], x] /; FreeQ[{c, d, a, b}, x] && NeQ[b*c - a*d, 0] && (EqQ[b*c - 4*a*d, 0] || EqQ[b*c + 8*a*d, 0] || EqQ[b^2*c^2 - 20*a*b*c*d - 8*a^2*d^2, 0])
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{r = Numerator[Rt[-(a/b), 2]], s = Denominator[Rt[-(a/b), 2]]}, Dist[s/(2*b), Int[1/((r + s*x^2)*Sqrt[c + d*x^4]), x], x] - Dist[s/(2*b), Int[1/((r - s*x^2)*Sqrt[c + d*x^4]), x], x]] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[d/b, Int[x^2/Sqrt[c + d*x^4], x], x] + Dist[(b*c - a*d)/b, Int[x^2/((a + b*x^4)*Sqrt[c + d*x^4]), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(x*Sqrt[a + b*x^2])/(b*Sqrt[c + d*x^2]), x] - Dist[c/b, Int[Sqrt[a + b*x^2]/(c + d*x^2)^(3/2), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && PosQ[b/a] && PosQ[d/c] && !SimplerSqrtQ[b/a, d/c]
Int[Times[Power[Pattern[x, Blank[]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[1/b, Int[Sqrt[a + b*x^n]/Sqrt[c + d*x^n], x], x] - Dist[a/b, Int[1/(Sqrt[a + b*x^n]*Sqrt[c + d*x^n]), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b*c - a*d, 0] && (EqQ[n, 2] || EqQ[n, 4]) && !(EqQ[n, 2] && SimplerSqrtQ[-(b/a), -(d/c)])
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[p]}, Dist[(k*a^(p + (m + 1)/n))/n, Subst[Int[(x^((k*(m + 1))/n - 1)*(c - (b*c - a*d)*x^k)^q)/(1 - b*x^k)^(p + q + (m + 1)/n + 1), x], x, x^(n/k)/(a + b*x^n)^(1/k)], x]] /; FreeQ[{a, b, c, d}, x] && IGtQ[n, 0] && RationalQ[m, p] && IntegersQ[p + (m + 1)/n, q] && LtQ[-1, p, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[((a + b/x^n)^p*(c + d/x^n)^q)/x^(m + 2), x], x, 1/x] /; FreeQ[{a, b, c, d, p, q}, x] && NeQ[b*c - a*d, 0] && ILtQ[n, 0] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{g = Denominator[m]}, -Dist[g/e, Subst[Int[((a + b/(e^n*x^(g*n)))^p*(c + d/(e^n*x^(g*n)))^q)/x^(g*(m + 1) + 1), x], x, 1/(e*x)^(1/g)], x]] /; FreeQ[{a, b, c, d, e, p, q}, x] && ILtQ[n, 0] && FractionQ[m]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Dist[(e*x)^m*(x^(-1))^m, Subst[Int[((a + b/x^n)^p*(c + d/x^n)^q)/x^(m + 2), x], x, 1/x], x] /; FreeQ[{a, b, c, d, e, m, p, q}, x] && NeQ[b*c - a*d, 0] && ILtQ[n, 0] && !RationalQ[m]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{g = Denominator[n]}, Dist[g, Subst[Int[x^(g*(m + 1) - 1)*(a + b*x^(g*n))^p*(c + d*x^(g*n))^q, x], x, x^(1/g)], x]] /; FreeQ[{a, b, c, d, m, p, q}, x] && NeQ[b*c - a*d, 0] && FractionQ[n]
Int[Times[Power[Times[Pattern[e, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^IntPart[m]*(e*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, m, p, q}, x] && NeQ[b*c - a*d, 0] && FractionQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(m + 1), Subst[Int[(a + b*x^Simplify[n/(m + 1)])^p*(c + d*x^Simplify[n/(m + 1)])^q, x], x, x^(m + 1)], x] /; FreeQ[{a, b, c, d, m, n, p, q}, x] && NeQ[b*c - a*d, 0] && IntegerQ[Simplify[n/(m + 1)]] && !IntegerQ[n]
Int[Times[Power[Times[Pattern[e, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^IntPart[m]*(e*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, m, n, p, q}, x] && NeQ[b*c - a*d, 0] && IntegerQ[Simplify[n/(m + 1)]] && !IntegerQ[n]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*b - a*d)*(e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1))/(a*b*e*n*(p + 1)), x] + Dist[1/(a*b*n*(p + 1)), Int[(e*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 2)*Simp[c*(c*b*n*(p + 1) + (c*b - a*d)*(m + 1)) + d*(c*b*n*(p + 1) + (c*b - a*d)*(m + n*(q - 1) + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m, n}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && GtQ[q, 1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(a*e*n*(p + 1)), x] + Dist[1/(a*n*(p + 1)), Int[(e*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1)*Simp[c*(m + n*(p + 1) + 1) + d*(m + n*(p + q + 1) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m, n}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && LtQ[0, q, 1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(b*(e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*e*n*(b*c - a*d)*(p + 1)), x] + Dist[1/(a*n*(b*c - a*d)*(p + 1)), Int[(e*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^q*Simp[c*b*(m + 1) + n*(b*c - a*d)*(p + 1) + d*b*(m + n*(p + q + 2) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m, n, q}, x] && NeQ[b*c - a*d, 0] && LtQ[p, -1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((e*x)^(m + 1)*(a + b*x^n)^p*(c + d*x^n)^q)/(e*(m + n*(p + q) + 1)), x] + Dist[n/(m + n*(p + q) + 1), Int[(e*x)^m*(a + b*x^n)^(p - 1)*(c + d*x^n)^(q - 1)*Simp[a*c*(p + q) + (q*(b*c - a*d) + a*d*(p + q))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m, n}, x] && NeQ[b*c - a*d, 0] && GtQ[q, 0] && GtQ[p, 0] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(e*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1))/(b*e*(m + n*(p + q) + 1)), x] + Dist[1/(b*(m + n*(p + q) + 1)), Int[(e*x)^m*(a + b*x^n)^p*(c + d*x^n)^(q - 2)*Simp[c*((c*b - a*d)*(m + 1) + c*b*n*(p + q)) + (d*(c*b - a*d)*(m + 1) + d*n*(q - 1)*(b*c - a*d) + c*b*d*n*(p + q))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, m, n, p}, x] && NeQ[b*c - a*d, 0] && GtQ[q, 1] && IntBinomialQ[a, b, c, d, e, m, n, p, q, x]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := -Dist[a/(b*c - a*d), Int[x^(m - n)/(a + b*x^n), x], x] + Dist[c/(b*c - a*d), Int[x^(m - n)/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, m, n}, x] && NeQ[b*c - a*d, 0] && (EqQ[m, n] || EqQ[m, 2*n - 1])
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[(e*x)^m/(a + b*x^n), x], x] - Dist[d/(b*c - a*d), Int[(e*x)^m/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, e, n, m}, x] && NeQ[b*c - a*d, 0]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(e*x)^m*(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b*c - a*d, 0] && IGtQ[p, -2] && (IGtQ[q, -2] || (EqQ[q, -3] && IntegerQ[(m - 1)/2]))
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(a^p*c^q*(e*x)^(m + 1)*AppellF1[(m + 1)/n, -p, -q, 1 + (m + 1)/n, -((b*x^n)/a), -((d*x^n)/c)])/(e*(m + 1)), x] /; FreeQ[{a, b, c, d, e, m, n, p, q}, x] && NeQ[b*c - a*d, 0] && NeQ[m, -1] && NeQ[m, n - 1] && (IntegerQ[p] || GtQ[a, 0]) && (IntegerQ[q] || GtQ[c, 0])
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^n)^FracPart[p])/(1 + (b*x^n)/a)^FracPart[p], Int[(e*x)^m*(1 + (b*x^n)/a)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, m, n, p, q}, x] && NeQ[b*c - a*d, 0] && NeQ[m, -1] && NeQ[m, n - 1] && !(IntegerQ[p] || GtQ[a, 0])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[v, x, 1]^(m + 1), Subst[Int[SimplifyIntegrand[(x - Coefficient[v, x, 0])^m*(a + b*x^n)^p*(c + d*x^n)^q, x], x], x, v], x] /; FreeQ[{a, b, c, d, n, p, q}, x] && LinearQ[v, x] && IntegerQ[m] && NeQ[v, x]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[u^m/(Coefficient[v, x, 1]*v^m), Subst[Int[x^m*(a + b*x^n)^p*(c + d*x^n)^q, x], x, v], x] /; FreeQ[{a, b, c, d, m, n, p, q}, x] && LinearPairQ[u, v, x]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m - n*q)*(a + b*x^n)^p*(d + c*x^n)^q, x] /; FreeQ[{a, b, c, d, m, n, p}, x] && EqQ[mn, -n] && IntegerQ[q] && (PosQ[n] || !IntegerQ[p])
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(x^(n*FracPart[q])*(c + d/x^n)^FracPart[q])/(d + c*x^n)^FracPart[q], Int[x^(m - n*q)*(a + b*x^n)^p*(d + c*x^n)^q, x], x] /; FreeQ[{a, b, c, d, m, n, p, q}, x] && EqQ[mn, -n] && !IntegerQ[q] && !IntegerQ[p]
Int[Times[Power[Times[Pattern[e, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^IntPart[m]*(e*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p*(c + d/x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, m, n, p, q}, x] && EqQ[mn, -n]
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[u*(a1*a2 + b1*b2*x^n)^p*(c + d*x^n)^q, x] /; FreeQ[{a1, b1, a2, b2, c, d, n, p, q}, x] && EqQ[non2, n/2] && EqQ[a2*b1 + a1*b2, 0] && (IntegerQ[p] || (GtQ[a1, 0] && GtQ[a2, 0]))
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[u*(a1*a2 + b1*b2*x^n)^p*(c + d*x^n + e*x^(2*n))^q, x] /; FreeQ[{a1, b1, a2, b2, c, d, e, n, p, q}, x] && EqQ[non2, n/2] && EqQ[n2, 2*n] && EqQ[a2*b1 + a1*b2, 0] && (IntegerQ[p] || (GtQ[a1, 0] && GtQ[a2, 0]))
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((a1 + b1*x^(n/2))^FracPart[p]*(a2 + b2*x^(n/2))^FracPart[p])/(a1*a2 + b1*b2*x^n)^FracPart[p], Int[u*(a1*a2 + b1*b2*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a1, b1, a2, b2, c, d, n, p, q}, x] && EqQ[non2, n/2] && EqQ[a2*b1 + a1*b2, 0] && !(EqQ[n, 2] && IGtQ[q, 0])
Int[Times[Optional[Pattern[u, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a1, Blank[]], Times[Optional[Pattern[b1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[a2, Blank[]], Times[Optional[Pattern[b2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[((a1 + b1*x^(n/2))^FracPart[p]*(a2 + b2*x^(n/2))^FracPart[p])/(a1*a2 + b1*b2*x^n)^FracPart[p], Int[u*(a1*a2 + b1*b2*x^n)^p*(c + d*x^n + e*x^(2*n))^q, x], x] /; FreeQ[{a1, b1, a2, b2, c, d, e, n, p, q}, x] && EqQ[non2, n/2] && EqQ[n2, 2*n] && EqQ[a2*b1 + a1*b2, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e, f, n}, x] && IGtQ[p, 0] && IGtQ[q, 0] && IGtQ[r, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Dist[(b*e - a*f)/(b*c - a*d), Int[1/(a + b*x^n), x], x] - Dist[(d*e - c*f)/(b*c - a*d), Int[1/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, e, f, n}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Rational[-1, 2]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Dist[f/b, Int[1/Sqrt[c + d*x^n], x], x] + Dist[(b*e - a*f)/b, Int[1/((a + b*x^n)*Sqrt[c + d*x^n]), x], x] /; FreeQ[{a, b, c, d, e, f, n}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Rational[-1, 2]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Dist[f/b, Int[Sqrt[a + b*x^n]/Sqrt[c + d*x^n], x], x] + Dist[(b*e - a*f)/b, Int[1/(Sqrt[a + b*x^n]*Sqrt[c + d*x^n]), x], x] /; FreeQ[{a, b, c, d, e, f, n}, x] && !(EqQ[n, 2] && ((PosQ[b/a] && PosQ[d/c]) || (NegQ[b/a] && (PosQ[d/c] || (GtQ[a, 0] && ( !GtQ[c, 0] || SimplerSqrtQ[-(b/a), -(d/c)]))))))
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 2]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]]], Pattern[x, Blank[Symbol]]] := Dist[(b*e - a*f)/(b*c - a*d), Int[1/(Sqrt[a + b*x^2]*Sqrt[c + d*x^2]), x], x] - Dist[(d*e - c*f)/(b*c - a*d), Int[Sqrt[a + b*x^2]/(c + d*x^2)^(3/2), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && PosQ[b/a] && PosQ[d/c]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e - a*f)*x*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(a*b*n*(p + 1)), x] + Dist[1/(a*b*n*(p + 1)), Int[(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1)*Simp[c*(b*e*n*(p + 1) + b*e - a*f) + d*(b*e*n*(p + 1) + (b*e - a*f)*(n*q + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, n}, x] && LtQ[p, -1] && GtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e - a*f)*x*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*n*(b*c - a*d)*(p + 1)), x] + Dist[1/(a*n*(b*c - a*d)*(p + 1)), Int[(a + b*x^n)^(p + 1)*(c + d*x^n)^q*Simp[c*(b*e - a*f) + e*n*(b*c - a*d)*(p + 1) + d*(b*e - a*f)*(n*(p + q + 2) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, n, q}, x] && LtQ[p, -1]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(f*x*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(b*(n*(p + q + 1) + 1)), x] + Dist[1/(b*(n*(p + q + 1) + 1)), Int[(a + b*x^n)^p*(c + d*x^n)^(q - 1)*Simp[c*(b*e - a*f + b*e*n*(p + q + 1)) + (d*(b*e - a*f) + f*n*q*(b*c - a*d) + b*d*e*n*(p + q + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, n, p}, x] && GtQ[q, 0] && NeQ[n*(p + q + 1) + 1, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-3, 4]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 4]]]], Pattern[x, Blank[Symbol]]] := Dist[(b*e - a*f)/(b*c - a*d), Int[1/(a + b*x^4)^(3/4), x], x] - Dist[(d*e - c*f)/(b*c - a*d), Int[(a + b*x^4)^(1/4)/(c + d*x^4), x], x] /; FreeQ[{a, b, c, d, e, f}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Dist[f/d, Int[(a + b*x^n)^p, x], x] + Dist[(d*e - c*f)/d, Int[(a + b*x^n)^p/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, e, f, p, n}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Dist[e, Int[(a + b*x^n)^p*(c + d*x^n)^q, x], x] + Dist[f, Int[x^n*(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, f, n, p, q}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[1/((a + b*x^2)*Sqrt[e + f*x^2]), x], x] - Dist[d/(b*c - a*d), Int[1/((c + d*x^2)*Sqrt[e + f*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f}, x]
Int[Times[Power[Pattern[x, Blank[]], -2], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[1/c, Int[1/(x^2*Sqrt[e + f*x^2]), x], x] - Dist[d/c, Int[1/((c + d*x^2)*Sqrt[e + f*x^2]), x], x] /; FreeQ[{c, d, e, f}, x] && NeQ[d*e - c*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[d/b, Int[Sqrt[e + f*x^2]/Sqrt[c + d*x^2], x], x] + Dist[(b*c - a*d)/b, Int[Sqrt[e + f*x^2]/((a + b*x^2)*Sqrt[c + d*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && GtQ[d/c, 0] && GtQ[f/e, 0] && !SimplerSqrtQ[d/c, f/e]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[d/b, Int[Sqrt[e + f*x^2]/Sqrt[c + d*x^2], x], x] + Dist[(b*c - a*d)/b, Int[Sqrt[e + f*x^2]/((a + b*x^2)*Sqrt[c + d*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && !SimplerSqrtQ[-(f/e), -(d/c)]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Dist[f/(b*e - a*f), Int[1/(Sqrt[c + d*x^2]*Sqrt[e + f*x^2]), x], x] + Dist[b/(b*e - a*f), Int[Sqrt[e + f*x^2]/((a + b*x^2)*Sqrt[c + d*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && GtQ[d/c, 0] && GtQ[f/e, 0] && !SimplerSqrtQ[d/c, f/e]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(1*EllipticPi[(b*c)/(a*d), ArcSin[Rt[-(d/c), 2]*x], (c*f)/(d*e)])/(a*Sqrt[c]*Sqrt[e]*Rt[-(d/c), 2]), x] /; FreeQ[{a, b, c, d, e, f}, x] && !GtQ[d/c, 0] && GtQ[c, 0] && GtQ[e, 0] && !( !GtQ[f/e, 0] && SimplerSqrtQ[-(f/e), -(d/c)])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[1 + (d*x^2)/c]/Sqrt[c + d*x^2], Int[1/((a + b*x^2)*Sqrt[1 + (d*x^2)/c]*Sqrt[e + f*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && !GtQ[c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(c*Sqrt[e + f*x^2]*EllipticPi[1 - (b*c)/(a*d), ArcTan[Rt[d/c, 2]*x], 1 - (c*f)/(d*e)])/(a*e*Rt[d/c, 2]*Sqrt[c + d*x^2]*Sqrt[(c*(e + f*x^2))/(e*(c + d*x^2))]), x] /; FreeQ[{a, b, c, d, e, f}, x] && PosQ[d/c]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[d/b, Int[1/(Sqrt[c + d*x^2]*Sqrt[e + f*x^2]), x], x] + Dist[(b*c - a*d)/b, Int[1/((a + b*x^2)*Sqrt[c + d*x^2]*Sqrt[e + f*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NegQ[d/c]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[Sqrt[e + f*x^2]/((a + b*x^2)*Sqrt[c + d*x^2]), x], x] - Dist[d/(b*c - a*d), Int[Sqrt[e + f*x^2]/(c + d*x^2)^(3/2), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && PosQ[d/c] && PosQ[f/e]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[3, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(b*e - a*f)/(b*c - a*d), Int[Sqrt[e + f*x^2]/((a + b*x^2)*Sqrt[c + d*x^2]), x], x] - Dist[(d*e - c*f)/(b*c - a*d), Int[Sqrt[e + f*x^2]/(c + d*x^2)^(3/2), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && PosQ[d/c] && PosQ[f/e]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[3, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(b*c - a*d)^2/b^2, Int[Sqrt[e + f*x^2]/((a + b*x^2)*Sqrt[c + d*x^2]), x], x] + Dist[d/b^2, Int[((2*b*c - a*d + b*d*x^2)*Sqrt[e + f*x^2])/Sqrt[c + d*x^2], x], x] /; FreeQ[{a, b, c, d, e, f}, x] && PosQ[d/c] && PosQ[f/e]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[r, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(b*(b*e - a*f))/(b*c - a*d)^2, Int[((c + d*x^2)^(q + 2)*(e + f*x^2)^(r - 1))/(a + b*x^2), x], x] - Dist[1/(b*c - a*d)^2, Int[(c + d*x^2)^q*(e + f*x^2)^(r - 1)*(2*b*c*d*e - a*d^2*e - b*c^2*f + d^2*(b*e - a*f)*x^2), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && LtQ[q, -1] && GtQ[r, 1]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[r, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[d/b, Int[(c + d*x^2)^(q - 1)*(e + f*x^2)^r, x], x] + Dist[(b*c - a*d)/b, Int[((c + d*x^2)^(q - 1)*(e + f*x^2)^r)/(a + b*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, r}, x] && GtQ[q, 1]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[r, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[b^2/(b*c - a*d)^2, Int[((c + d*x^2)^(q + 2)*(e + f*x^2)^r)/(a + b*x^2), x], x] - Dist[d/(b*c - a*d)^2, Int[(c + d*x^2)^q*(e + f*x^2)^r*(2*b*c - a*d + b*d*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, r}, x] && LtQ[q, -1]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[r, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Dist[d/(b*c - a*d), Int[(c + d*x^2)^q*(e + f*x^2)^r, x], x] + Dist[b/(b*c - a*d), Int[((c + d*x^2)^(q + 1)*(e + f*x^2)^r)/(a + b*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, r}, x] && LeQ[q, -1]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -2], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(x*Sqrt[c + d*x^2]*Sqrt[e + f*x^2])/(2*a*(a + b*x^2)), x] + (Dist[(d*f)/(2*a*b^2), Int[(a - b*x^2)/(Sqrt[c + d*x^2]*Sqrt[e + f*x^2]), x], x] + Dist[(b^2*c*e - a^2*d*f)/(2*a*b^2), Int[1/((a + b*x^2)*Sqrt[c + d*x^2]*Sqrt[e + f*x^2]), x], x]) /; FreeQ[{a, b, c, d, e, f}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -2], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(b^2*x*Sqrt[c + d*x^2]*Sqrt[e + f*x^2])/(2*a*(b*c - a*d)*(b*e - a*f)*(a + b*x^2)), x] + (-Dist[(d*f)/(2*a*(b*c - a*d)*(b*e - a*f)), Int[(a + b*x^2)/(Sqrt[c + d*x^2]*Sqrt[e + f*x^2]), x], x] + Dist[(b^2*c*e + 3*a^2*d*f - 2*a*b*(d*e + c*f))/(2*a*(b*c - a*d)*(b*e - a*f)), Int[1/((a + b*x^2)*Sqrt[c + d*x^2]*Sqrt[e + f*x^2]), x], x]) /; FreeQ[{a, b, c, d, e, f}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[r, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[d/b, Int[(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1)*(e + f*x^n)^r, x], x] + Dist[(b*c - a*d)/b, Int[(a + b*x^n)^p*(c + d*x^n)^(q - 1)*(e + f*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e, f, n, r}, x] && ILtQ[p, 0] && GtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[r, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[b/(b*c - a*d), Int[(a + b*x^n)^p*(c + d*x^n)^(q + 1)*(e + f*x^n)^r, x], x] - Dist[d/(b*c - a*d), Int[(a + b*x^n)^(p + 1)*(c + d*x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e, f, n, q}, x] && ILtQ[p, 0] && LeQ[q, -1]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[c + d*x^2]*Sqrt[(a*(e + f*x^2))/(e*(a + b*x^2))])/(c*Sqrt[e + f*x^2]*Sqrt[(a*(c + d*x^2))/(c*(a + b*x^2))]), Subst[Int[1/(Sqrt[1 - ((b*c - a*d)*x^2)/c]*Sqrt[1 - ((b*e - a*f)*x^2)/e]), x], x, x/Sqrt[a + b*x^2]], x] /; FreeQ[{a, b, c, d, e, f}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(a*Sqrt[c + d*x^2]*Sqrt[(a*(e + f*x^2))/(e*(a + b*x^2))])/(c*Sqrt[e + f*x^2]*Sqrt[(a*(c + d*x^2))/(c*(a + b*x^2))]), Subst[Int[1/((1 - b*x^2)*Sqrt[1 - ((b*c - a*d)*x^2)/c]*Sqrt[1 - ((b*e - a*f)*x^2)/e]), x], x, x/Sqrt[a + b*x^2]], x] /; FreeQ[{a, b, c, d, e, f}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[c + d*x^2]*Sqrt[(a*(e + f*x^2))/(e*(a + b*x^2))])/(a*Sqrt[e + f*x^2]*Sqrt[(a*(c + d*x^2))/(c*(a + b*x^2))]), Subst[Int[Sqrt[1 - ((b*c - a*d)*x^2)/c]/Sqrt[1 - ((b*e - a*f)*x^2)/e], x], x, x/Sqrt[a + b*x^2]], x] /; FreeQ[{a, b, c, d, e, f}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(d*x*Sqrt[a + b*x^2]*Sqrt[e + f*x^2])/(2*f*Sqrt[c + d*x^2]), x] + (-Dist[(c*(d*e - c*f))/(2*f), Int[Sqrt[a + b*x^2]/((c + d*x^2)^(3/2)*Sqrt[e + f*x^2]), x], x] + Dist[(b*c*(d*e - c*f))/(2*d*f), Int[1/(Sqrt[a + b*x^2]*Sqrt[c + d*x^2]*Sqrt[e + f*x^2]), x], x] - Dist[(b*d*e - b*c*f - a*d*f)/(2*d*f), Int[Sqrt[c + d*x^2]/(Sqrt[a + b*x^2]*Sqrt[e + f*x^2]), x], x]) /; FreeQ[{a, b, c, d, e, f}, x] && PosQ[(d*e - c*f)/c]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(x*Sqrt[a + b*x^2]*Sqrt[c + d*x^2])/(2*Sqrt[e + f*x^2]), x] + (Dist[(e*(b*e - a*f))/(2*f), Int[Sqrt[c + d*x^2]/(Sqrt[a + b*x^2]*(e + f*x^2)^(3/2)), x], x] + Dist[((b*e - a*f)*(d*e - 2*c*f))/(2*f^2), Int[1/(Sqrt[a + b*x^2]*Sqrt[c + d*x^2]*Sqrt[e + f*x^2]), x], x] - Dist[(b*d*e - b*c*f - a*d*f)/(2*f^2), Int[Sqrt[e + f*x^2]/(Sqrt[a + b*x^2]*Sqrt[c + d*x^2]), x], x]) /; FreeQ[{a, b, c, d, e, f}, x] && NegQ[(d*e - c*f)/c]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 2]]], Pattern[x, Blank[Symbol]]] := Dist[b/f, Int[Sqrt[c + d*x^2]/(Sqrt[a + b*x^2]*Sqrt[e + f*x^2]), x], x] - Dist[(b*e - a*f)/f, Int[Sqrt[c + d*x^2]/(Sqrt[a + b*x^2]*(e + f*x^2)^(3/2)), x], x] /; FreeQ[{a, b, c, d, e, f}, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[r, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{u = ExpandIntegrand[(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x]}, Int[u, x] /; SumQ[u]] /; FreeQ[{a, b, c, d, e, f, p, q, r}, x] && IGtQ[n, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[r, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[((a + b/x^n)^p*(c + d/x^n)^q*(e + f/x^n)^r)/x^2, x], x, 1/x] /; FreeQ[{a, b, c, d, e, f, p, q, r}, x] && ILtQ[n, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x] /; FreeQ[{a, b, c, d, e, f, n, p, q, r}, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[u, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Optional[Pattern[e, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[w, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x], x, u], x] /; FreeQ[{a, b, c, d, e, f, p, n, q, r}, x] && EqQ[u, v] && EqQ[u, w] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((a + b*x^n)^p*(d + c*x^n)^q*(e + f*x^n)^r)/x^(n*q), x] /; FreeQ[{a, b, c, d, e, f, n, p, r}, x] && EqQ[mn, -n] && IntegerQ[q]
Int[Times[Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(n*(p + r))*(b + a/x^n)^p*(c + d/x^n)^q*(f + e/x^n)^r, x] /; FreeQ[{a, b, c, d, e, f, n, q}, x] && EqQ[mn, -n] && IntegerQ[p] && IntegerQ[r]
Int[Times[Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Pattern[q, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(x^(n*FracPart[q])*(c + d/x^n)^FracPart[q])/(d + c*x^n)^FracPart[q], Int[((a + b*x^n)^p*(d + c*x^n)^q*(e + f*x^n)^r)/x^(n*q), x], x] /; FreeQ[{a, b, c, d, e, f, n, p, q, r}, x] && EqQ[mn, -n] && !IntegerQ[q]
Int[Times[Power[Plus[Pattern[e1, Blank[]], Times[Optional[Pattern[f1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[e2, Blank[]], Times[Optional[Pattern[f2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(a + b*x^n)^p*(c + d*x^n)^q*(e1*e2 + f1*f2*x^n)^r, x] /; FreeQ[{a, b, c, d, e1, f1, e2, f2, n, p, q, r}, x] && EqQ[n2, n/2] && EqQ[e2*f1 + e1*f2, 0] && (IntegerQ[r] || (GtQ[e1, 0] && GtQ[e2, 0]))
Int[Times[Power[Plus[Pattern[e1, Blank[]], Times[Optional[Pattern[f1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[e2, Blank[]], Times[Optional[Pattern[f2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[((e1 + f1*x^(n/2))^FracPart[r]*(e2 + f2*x^(n/2))^FracPart[r])/(e1*e2 + f1*f2*x^n)^FracPart[r], Int[(a + b*x^n)^p*(c + d*x^n)^q*(e1*e2 + f1*f2*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e1, f1, e2, f2, n, p, q, r}, x] && EqQ[n2, n/2] && EqQ[e2*f1 + e1*f2, 0]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[g^m/(n*b^(Simplify[(m + 1)/n] - 1)), Subst[Int[(b*x)^(p + Simplify[(m + 1)/n] - 1)*(c + d*x)^q*(e + f*x)^r, x], x, x^n], x] /; FreeQ[{b, c, d, e, f, g, m, n, p, q, r}, x] && (IntegerQ[m] || GtQ[g, 0]) && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(g^m*b^IntPart[p]*(b*x^n)^FracPart[p])/x^(n*FracPart[p]), Int[x^(m + n*p)*(c + d*x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{b, c, d, e, f, g, m, n, p, q, r}, x] && (IntegerQ[m] || GtQ[g, 0]) && !IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Pattern[g, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(g^IntPart[m]*(g*x)^FracPart[m])/x^FracPart[m], Int[x^m*(b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{b, c, d, e, f, g, m, n, p, q, r}, x] && !IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(g*x)^m*(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n}, x] && IGtQ[p, -2] && IGtQ[q, 0] && IGtQ[r, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[(a + b*x)^p*(c + d*x)^q*(e + f*x)^r, x], x, x^n], x] /; FreeQ[{a, b, c, d, e, f, m, n, p, q, r}, x] && EqQ[m - n + 1, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m + n*(p + q + r))*(b + a/x^n)^p*(d + c/x^n)^q*(f + e/x^n)^r, x] /; FreeQ[{a, b, c, d, e, f, m, n}, x] && IntegersQ[p, q, r] && NegQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[x^(Simplify[(m + 1)/n] - 1)*(a + b*x)^p*(c + d*x)^q*(e + f*x)^r, x], x, x^n], x] /; FreeQ[{a, b, c, d, e, f, m, n, p, q, r}, x] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Pattern[g, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(g^IntPart[m]*(g*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p, q, r}, x] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{k = GCD[m + 1, n]}, Dist[1/k, Subst[Int[x^((m + 1)/k - 1)*(a + b*x^(n/k))^p*(c + d*x^(n/k))^q*(e + f*x^(n/k))^r, x], x, x^k], x] /; k != 1] /; FreeQ[{a, b, c, d, e, f, p, q, r}, x] && IGtQ[n, 0] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[r, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, Dist[k/g, Subst[Int[x^(k*(m + 1) - 1)*(a + (b*x^(k*n))/g^n)^p*(c + (d*x^(k*n))/g^n)^q*(e + (f*x^(k*n))/g^n)^r, x], x, (g*x)^(1/k)], x]] /; FreeQ[{a, b, c, d, e, f, g, p, q, r}, x] && IGtQ[n, 0] && FractionQ[m]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e - a*f)*(g*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(a*b*g*n*(p + 1)), x] + Dist[1/(a*b*n*(p + 1)), Int[(g*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1)*Simp[c*(b*e*n*(p + 1) + (b*e - a*f)*(m + 1)) + d*(b*e*n*(p + 1) + (b*e - a*f)*(m + n*q + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && IGtQ[n, 0] && LtQ[p, -1] && GtQ[q, 0] && !(EqQ[q, 1] && SimplerQ[b*c - a*d, b*e - a*f])
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(g^(n - 1)*(b*e - a*f)*(g*x)^(m - n + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(b*n*(b*c - a*d)*(p + 1)), x] - Dist[g^n/(b*n*(b*c - a*d)*(p + 1)), Int[(g*x)^(m - n)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q*Simp[c*(b*e - a*f)*(m - n + 1) + (d*(b*e - a*f)*(m + n*q + 1) - b*n*(c*f - d*e)*(p + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, q}, x] && IGtQ[n, 0] && LtQ[p, -1] && GtQ[m - n + 1, 0]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e - a*f)*(g*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*g*n*(b*c - a*d)*(p + 1)), x] + Dist[1/(a*n*(b*c - a*d)*(p + 1)), Int[(g*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^q*Simp[c*(b*e - a*f)*(m + 1) + e*n*(b*c - a*d)*(p + 1) + d*(b*e - a*f)*(m + n*(p + q + 2) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m, q}, x] && IGtQ[n, 0] && LtQ[p, -1]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(g*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(a*g*(m + 1)), x] - Dist[1/(a*g^n*(m + 1)), Int[(g*x)^(m + n)*(a + b*x^n)^p*(c + d*x^n)^(q - 1)*Simp[c*(b*e - a*f)*(m + 1) + e*n*(b*c*(p + 1) + a*d*q) + d*((b*e - a*f)*(m + 1) + b*e*n*(p + q + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, p}, x] && IGtQ[n, 0] && GtQ[q, 0] && LtQ[m, -1] && !(EqQ[q, 1] && SimplerQ[e + f*x^n, c + d*x^n])
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(f*(g*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(b*g*(m + n*(p + q + 1) + 1)), x] + Dist[1/(b*(m + n*(p + q + 1) + 1)), Int[(g*x)^m*(a + b*x^n)^p*(c + d*x^n)^(q - 1)*Simp[c*((b*e - a*f)*(m + 1) + b*e*n*(p + q + 1)) + (d*(b*e - a*f)*(m + 1) + f*n*q*(b*c - a*d) + b*e*d*n*(p + q + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && IGtQ[n, 0] && GtQ[q, 0] && !(EqQ[q, 1] && SimplerQ[e + f*x^n, c + d*x^n])
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(f*g^(n - 1)*(g*x)^(m - n + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(b*d*(m + n*(p + q + 1) + 1)), x] - Dist[g^n/(b*d*(m + n*(p + q + 1) + 1)), Int[(g*x)^(m - n)*(a + b*x^n)^p*(c + d*x^n)^q*Simp[a*f*c*(m - n + 1) + (a*f*d*(m + n*q + 1) + b*(f*c*(m + n*p + 1) - e*d*(m + n*(p + q + 1) + 1)))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, p, q}, x] && IGtQ[n, 0] && GtQ[m, n - 1]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(g*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*c*g*(m + 1)), x] + Dist[1/(a*c*g^n*(m + 1)), Int[(g*x)^(m + n)*(a + b*x^n)^p*(c + d*x^n)^q*Simp[a*f*c*(m + 1) - e*(b*c + a*d)*(m + n + 1) - e*n*(b*c*p + a*d*q) - b*e*d*(m + n*(p + q + 2) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, p, q}, x] && IGtQ[n, 0] && LtQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[((g*x)^m*(a + b*x^n)^p*(e + f*x^n))/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && IGtQ[n, 0]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Dist[e, Int[(g*x)^m*(a + b*x^n)^p*(c + d*x^n)^q, x], x] + Dist[f/e^n, Int[(g*x)^(m + n)*(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p, q}, x] && IGtQ[n, 0]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[e, Int[(g*x)^m*(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^(r - 1), x], x] + Dist[f/e^n, Int[(g*x)^(m + n)*(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^(r - 1), x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p, q}, x] && IGtQ[n, 0] && IGtQ[r, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[((a + b/x^n)^p*(c + d/x^n)^q*(e + f/x^n)^r)/x^(m + 2), x], x, 1/x] /; FreeQ[{a, b, c, d, e, f, p, q, r}, x] && ILtQ[n, 0] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, -Dist[k/g, Subst[Int[((a + b/(g^n*x^(k*n)))^p*(c + d/(g^n*x^(k*n)))^q*(e + f/(g^n*x^(k*n)))^r)/x^(k*(m + 1) + 1), x], x, 1/(g*x)^(1/k)], x]] /; FreeQ[{a, b, c, d, e, f, g, p, q, r}, x] && ILtQ[n, 0] && FractionQ[m]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Dist[(g*x)^m*(x^(-1))^m, Subst[Int[((a + b/x^n)^p*(c + d/x^n)^q*(e + f/x^n)^r)/x^(m + 2), x], x, 1/x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p, q, r}, x] && ILtQ[n, 0] && !RationalQ[m]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[n]}, Dist[k, Subst[Int[x^(k*(m + 1) - 1)*(a + b*x^(k*n))^p*(c + d*x^(k*n))^q*(e + f*x^(k*n))^r, x], x, x^(1/k)], x]] /; FreeQ[{a, b, c, d, e, f, m, p, q, r}, x] && FractionQ[n]
Int[Times[Power[Times[Pattern[g, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(g^IntPart[m]*(g*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p, q, r}, x] && FractionQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(m + 1), Subst[Int[(a + b*x^Simplify[n/(m + 1)])^p*(c + d*x^Simplify[n/(m + 1)])^q*(e + f*x^Simplify[n/(m + 1)])^r, x], x, x^(m + 1)], x] /; FreeQ[{a, b, c, d, e, f, m, n, p, q, r}, x] && IntegerQ[Simplify[n/(m + 1)]]
Int[Times[Power[Times[Pattern[g, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(g^IntPart[m]*(g*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p, q, r}, x] && IntegerQ[Simplify[n/(m + 1)]]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e - a*f)*(g*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(a*b*g*n*(p + 1)), x] + Dist[1/(a*b*n*(p + 1)), Int[(g*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q - 1)*Simp[c*(b*e*n*(p + 1) + (b*e - a*f)*(m + 1)) + d*(b*e*n*(p + 1) + (b*e - a*f)*(m + n*q + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n}, x] && LtQ[p, -1] && GtQ[q, 0] && !(EqQ[q, 1] && SimplerQ[b*c - a*d, b*e - a*f])
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e - a*f)*(g*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^(q + 1))/(a*g*n*(b*c - a*d)*(p + 1)), x] + Dist[1/(a*n*(b*c - a*d)*(p + 1)), Int[(g*x)^m*(a + b*x^n)^(p + 1)*(c + d*x^n)^q*Simp[c*(b*e - a*f)*(m + 1) + e*n*(b*c - a*d)*(p + 1) + d*(b*e - a*f)*(m + n*(p + q + 2) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, q}, x] && LtQ[p, -1]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(f*(g*x)^(m + 1)*(a + b*x^n)^(p + 1)*(c + d*x^n)^q)/(b*g*(m + n*(p + q + 1) + 1)), x] + Dist[1/(b*(m + n*(p + q + 1) + 1)), Int[(g*x)^m*(a + b*x^n)^p*(c + d*x^n)^(q - 1)*Simp[c*((b*e - a*f)*(m + 1) + b*e*n*(p + q + 1)) + (d*(b*e - a*f)*(m + 1) + f*n*q*(b*c - a*d) + b*e*d*n*(p + q + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x] && GtQ[q, 0] && !(EqQ[q, 1] && SimplerQ[e + f*x^n, c + d*x^n])
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[((g*x)^m*(a + b*x^n)^p*(e + f*x^n))/(c + d*x^n), x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Dist[e, Int[(g*x)^m*(a + b*x^n)^p*(c + d*x^n)^q, x], x] + Dist[(f*(g*x)^m)/x^m, Int[x^(m + n)*(a + b*x^n)^p*(c + d*x^n)^q, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p, q}, x]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m - n*q)*(a + b*x^n)^p*(d + c*x^n)^q*(e + f*x^n)^r, x] /; FreeQ[{a, b, c, d, e, f, m, n, p, r}, x] && EqQ[mn, -n] && IntegerQ[q]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m + n*(p + r))*(b + a/x^n)^p*(c + d/x^n)^q*(f + e/x^n)^r, x] /; FreeQ[{a, b, c, d, e, f, m, n, q}, x] && EqQ[mn, -n] && IntegerQ[p] && IntegerQ[r]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Pattern[q, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(x^(n*FracPart[q])*(c + d/x^n)^FracPart[q])/(d + c*x^n)^FracPart[q], Int[x^(m - n*q)*(a + b*x^n)^p*(d + c*x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e, f, m, n, p, q, r}, x] && EqQ[mn, -n] && !IntegerQ[q]
Int[Times[Power[Times[Pattern[g, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(g^IntPart[m]*(g*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n)^p*(c + d/x^n)^q*(e + f*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p, q, r}, x] && EqQ[mn, -n]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(g*x)^m*(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p, q, r}, x]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[c, Blank[]]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[e, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[u^m/(Coefficient[v, x, 1]*v^m), Subst[Int[x^m*(a + b*x^n)^p*(c + d*x^n)^q*(e + f*x^n)^r, x], x, v], x] /; FreeQ[{a, b, c, d, e, f, m, n, p, q, r}, x] && LinearPairQ[u, v, x]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[e1, Blank[]], Times[Optional[Pattern[f1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[e2, Blank[]], Times[Optional[Pattern[f2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(g*x)^m*(a + b*x^n)^p*(c + d*x^n)^q*(e1*e2 + f1*f2*x^n)^r, x] /; FreeQ[{a, b, c, d, e1, f1, e2, f2, g, m, n, p, q, r}, x] && EqQ[n2, n/2] && EqQ[e2*f1 + e1*f2, 0] && (IntegerQ[r] || (GtQ[e1, 0] && GtQ[e2, 0]))
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[e1, Blank[]], Times[Optional[Pattern[f1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[e2, Blank[]], Times[Optional[Pattern[f2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[c, Blank[]], Times[Optional[Pattern[d, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[((e1 + f1*x^(n/2))^FracPart[r]*(e2 + f2*x^(n/2))^FracPart[r])/(e1*e2 + f1*f2*x^n)^FracPart[r], Int[(g*x)^m*(a + b*x^n)^p*(c + d*x^n)^q*(e1*e2 + f1*f2*x^n)^r, x], x] /; FreeQ[{a, b, c, d, e1, f1, e2, f2, g, m, n, p, q, r}, x] && EqQ[n2, n/2] && EqQ[e2*f1 + e1*f2, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Simp[(2*(a + b*x + c*x^2)^(p + 1))/((2*p + 1)*(b + 2*c*x)), x] /; FreeQ[{a, b, c, p}, x] && EqQ[b^2 - 4*a*c, 0] && LtQ[p, -1]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := Dist[(b/2 + c*x)/Sqrt[a + b*x + c*x^2], Int[1/(b/2 + c*x), x], x] /; FreeQ[{a, b, c}, x] && EqQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Simp[((b + 2*c*x)*(a + b*x + c*x^2)^p)/(2*c*(2*p + 1)), x] /; FreeQ[{a, b, c, p}, x] && EqQ[b^2 - 4*a*c, 0] && NeQ[p, -2^(-1)]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[1/c^p, Int[Simp[b/2 - q/2 + c*x, x]^p*Simp[b/2 + q/2 + c*x, x]^p, x], x]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0] && PerfectSquareQ[b^2 - 4*a*c]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0] && (EqQ[a, 0] || !PerfectSquareQ[b^2 - 4*a*c])
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Simp[((b + 2*c*x)*(a + b*x + c*x^2)^p)/(2*c*(2*p + 1)), x] - Dist[(p*(b^2 - 4*a*c))/(2*c*(2*p + 1)), Int[(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && IntegerQ[4*p]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 2]], Pattern[x, Blank[Symbol]]] := Simp[(-2*(b + 2*c*x))/((b^2 - 4*a*c)*Sqrt[a + b*x + c*x^2]), x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Simp[((b + 2*c*x)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(b^2 - 4*a*c)), x] - Dist[(2*c*(2*p + 3))/((p + 1)*(b^2 - 4*a*c)), Int[(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && NeQ[p, -3/2] && IntegerQ[4*p]
Int[Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := Simp[Log[x]/b, x] - Simp[Log[RemoveContent[b + c*x, x]]/b, x] /; FreeQ[{b, c}, x]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[c/q, Int[1/Simp[b/2 - q/2 + c*x, x], x], x] - Dist[c/q, Int[1/Simp[b/2 + q/2 + c*x, x], x], x]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[b^2 - 4*a*c] && PerfectSquareQ[b^2 - 4*a*c]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := With[{q = 1 - 4*Simplify[(a*c)/b^2]}, Dist[-2/b, Subst[Int[1/(q - x^2), x], x, 1 + (2*c*x)/b], x] /; RationalQ[q] && (EqQ[q^2, 1] || !RationalQ[b^2 - 4*a*c])] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Pattern[x, Blank[Symbol]]] := Dist[-2, Subst[Int[1/Simp[b^2 - 4*a*c - x^2, x], x], x, b + 2*c*x], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[1/(2*c*((-4*c)/(b^2 - 4*a*c))^p), Subst[Int[Simp[1 - x^2/(b^2 - 4*a*c), x]^p, x], x, b + 2*c*x], x] /; FreeQ[{a, b, c, p}, x] && GtQ[4*a - b^2/c, 0]
Int[Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := Dist[2, Subst[Int[1/(1 - c*x^2), x], x, x/Sqrt[b*x + c*x^2]], x] /; FreeQ[{b, c}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := Dist[2, Subst[Int[1/(4*c - x^2), x], x, (b + 2*c*x)/Sqrt[a + b*x + c*x^2]], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(b*x + c*x^2)^p/(-((c*(b*x + c*x^2))/b^2))^p, Int[(-((c*x)/b) - (c^2*x^2)/b^2)^p, x], x] /; FreeQ[{b, c}, x] && RationalQ[p] && 3 <= Denominator[p] <= 4
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := With[{d = Denominator[p]}, Dist[(d*Sqrt[(b + 2*c*x)^2])/(b + 2*c*x), Subst[Int[x^(d*(p + 1) - 1)/Sqrt[b^2 - 4*a*c + 4*c*x^d], x], x, (a + b*x + c*x^2)^(1/d)], x] /; 3 <= d <= 4] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && RationalQ[p]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, -Simp[((a + b*x + c*x^2)^(p + 1)*Hypergeometric2F1[-p, p + 1, p + 2, (b + q + 2*c*x)/(2*q)])/(q*(p + 1)*((q - b - 2*c*x)/(2*q))^(p + 1)), x]] /; FreeQ[{a, b, c, p}, x] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[4*p]
Int[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x + c*x^2)^p, x], x, u], x] /; FreeQ[{a, b, c, p}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^(m + p)*(a/d + (c*x)/e)^p, x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^(m + p)*(a/d + (c*x)/e)^p, x] /; FreeQ[{a, c, d, e, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && (IntegerQ[p] || (GtQ[a, 0] && GtQ[d, 0] && IntegerQ[m + p]))
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(d*Log[RemoveContent[a + b*x + c*x^2, x]])/b, x] /; FreeQ[{a, b, c, d, e}, x] && EqQ[2*c*d - b*e, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(a + b*x + c*x^2)^(p + 1))/(b*(p + 1)), x] /; FreeQ[{a, b, c, d, e, p}, x] && EqQ[2*c*d - b*e, 0] && NeQ[p, -1]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^(p + 1)*(a/d + (c*x)/e)^p, x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[2*c*d - b*e, 0] && IGtQ[p, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[2*c*d - b*e, 0] && IntegerQ[p] && (GtQ[p, 0] || EqQ[a, 0])
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(c*d - e*(b/2 - q/2))/q, Int[1/(b/2 - q/2 + c*x), x], x] - Dist[(c*d - e*(b/2 + q/2))/q, Int[1/(b/2 + q/2 + c*x), x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[2*c*d - b*e, 0] && NeQ[b^2 - 4*a*c, 0] && NiceSqrtQ[b^2 - 4*a*c]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Dist[e/2 + (c*d)/(2*q), Int[1/(-q + c*x), x], x] + Dist[e/2 - (c*d)/(2*q), Int[1/(q + c*x), x], x]] /; FreeQ[{a, c, d, e}, x] && NiceSqrtQ[-(a*c)]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(2*c*d - b*e)/(2*c), Int[1/(a + b*x + c*x^2), x], x] + Dist[e/(2*c), Int[(b + 2*c*x)/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[2*c*d - b*e, 0] && NeQ[b^2 - 4*a*c, 0] && !NiceSqrtQ[b^2 - 4*a*c]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[d, Int[1/(a + c*x^2), x], x] + Dist[e, Int[x/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e}, x] && !NiceSqrtQ[-(a*c)]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(-2*(b*d - 2*a*e + (2*c*d - b*e)*x))/((b^2 - 4*a*c)*Sqrt[a + b*x + c*x^2]), x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[2*c*d - b*e, 0] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(-(a*e) + c*d*x)/(a*c*Sqrt[a + c*x^2]), x] /; FreeQ[{a, c, d, e}, x]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*d - 2*a*e + (2*c*d - b*e)*x)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(b^2 - 4*a*c)), x] - Dist[((2*p + 3)*(2*c*d - b*e))/((p + 1)*(b^2 - 4*a*c)), Int[(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[2*c*d - b*e, 0] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && NeQ[p, -3/2]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a*e - c*d*x)*(a + c*x^2)^(p + 1))/(2*a*c*(p + 1)), x] + Dist[(d*(2*p + 3))/(2*a*(p + 1)), Int[(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e}, x] && LtQ[p, -1] && NeQ[p, -3/2]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(a + b*x + c*x^2)^(p + 1))/(2*c*(p + 1)), x] + Dist[(2*c*d - b*e)/(2*c), Int[(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[2*c*d - b*e, 0] && NeQ[p, -1]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(a + c*x^2)^(p + 1))/(2*c*(p + 1)), x] + Dist[d, Int[(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, p}, x] && NeQ[p, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[e^m/c^(m/2), Int[(a + b*x + c*x^2)^(p + m/2), x], x] /; FreeQ[{a, b, c, d, e, p}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && EqQ[2*c*d - b*e, 0] && IntegerQ[m/2]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[e^(m - 1)/c^((m - 1)/2), Int[(d + e*x)*(a + b*x + c*x^2)^(p + (m - 1)/2), x], x] /; FreeQ[{a, b, c, d, e, p}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && EqQ[2*c*d - b*e, 0] && IntegerQ[(m - 1)/2]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^p/(d + e*x)^(2*p), Int[(d + e*x)^(m + 2*p), x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && EqQ[2*c*d - b*e, 0] && !IntegerQ[m]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/(c^IntPart[p]*(b/2 + c*x)^(2*FracPart[p])), Int[ExpandLinearProduct[(b/2 + c*x)^(2*p), (d + e*x)^m, b/2, c, x], x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && NeQ[2*c*d - b*e, 0] && IGtQ[m, 0] && EqQ[m - 2*p + 1, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/(c^IntPart[p]*(b/2 + c*x)^(2*FracPart[p])), Int[(d + e*x)^m*(b/2 + c*x)^(2*p), x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && NeQ[2*c*d - b*e, 0]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/e^p, Int[(e*x)^(m + p)*(b + c*x)^p, x], x] /; FreeQ[{b, c, e, m}, x] && IntegerQ[p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1))/(c*(p + 1)), x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1))/(c*(p + 1)), x] /; FreeQ[{a, c, d, e, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(2*c*d - b*e)), x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + 2*p + 2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^m*(a + c*x^2)^(p + 1))/(2*c*d*(p + 1)), x] /; FreeQ[{a, c, d, e, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + 2*p + 2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], 2], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)*(a + b*x + c*x^2)^(p + 1))/(c*(p + 1)), x] - Dist[(e^2*(p + 2))/(c*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && LtQ[p, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)*(a + c*x^2)^(p + 1))/(c*(p + 1)), x] - Dist[(e^2*(p + 2))/(c*(p + 1)), Int[(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e, p}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && LtQ[p, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(a + b*x + c*x^2)^(m + p)/(a/d + (c*x)/e)^m, x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && IntegerQ[m] && RationalQ[p] && (LtQ[0, -m, p] || LtQ[p, -m, 0]) && NeQ[m, 2] && NeQ[m, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[d^(2*m)/a^m, Int[(a + c*x^2)^(m + p)/(d - e*x)^m, x], x] /; FreeQ[{a, c, d, e, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && IntegerQ[m] && RationalQ[p] && (LtQ[0, -m, p] || LtQ[p, -m, 0]) && NeQ[m, 2] && NeQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1))/(c*(m + 2*p + 1)), x] + Dist[(Simplify[m + p]*(2*c*d - b*e))/(c*(m + 2*p + 1)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && IGtQ[Simplify[m + p], 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1))/(c*(m + 2*p + 1)), x] + Dist[(2*c*d*Simplify[m + p])/(c*(m + 2*p + 1)), Int[(d + e*x)^(m - 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && IGtQ[Simplify[m + p], 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/((m + p + 1)*(2*c*d - b*e)), x] + Dist[(c*Simplify[m + 2*p + 2])/((m + p + 1)*(2*c*d - b*e)), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && ILtQ[Simplify[m + 2*p + 2], 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e*(d + e*x)^m*(a + c*x^2)^(p + 1))/(2*c*d*(m + p + 1)), x] + Dist[Simplify[m + 2*p + 2]/(2*d*(m + p + 1)), Int[(d + e*x)^(m + 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && ILtQ[Simplify[m + 2*p + 2], 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[2*e, Subst[Int[1/(2*c*d - b*e + e^2*x^2), x], x, Sqrt[a + b*x + c*x^2]/Sqrt[d + e*x]], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[2*e, Subst[Int[1/(2*c*d + e^2*x^2), x], x, Sqrt[a + c*x^2]/Sqrt[d + e*x]], x] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + b*x + c*x^2)^p)/(e*(m + p + 1)), x] - Dist[(c*p)/(e^2*(m + p + 1)), Int[(d + e*x)^(m + 2)*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && GtQ[p, 0] && (LtQ[m, -2] || EqQ[m + 2*p + 1, 0]) && NeQ[m + p + 1, 0] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + c*x^2)^p)/(e*(m + p + 1)), x] - Dist[(c*p)/(e^2*(m + p + 1)), Int[(d + e*x)^(m + 2)*(a + c*x^2)^(p - 1), x], x] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 + a*e^2, 0] && GtQ[p, 0] && (LtQ[m, -2] || EqQ[m + 2*p + 1, 0]) && NeQ[m + p + 1, 0] && IntegerQ[2*p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + b*x + c*x^2)^p)/(e*(m + 2*p + 1)), x] - Dist[(p*(2*c*d - b*e))/(e^2*(m + 2*p + 1)), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && GtQ[p, 0] && (LeQ[-2, m, 0] || EqQ[m + p + 1, 0]) && NeQ[m + 2*p + 1, 0] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + c*x^2)^p)/(e*(m + 2*p + 1)), x] - Dist[(2*c*d*p)/(e^2*(m + 2*p + 1)), Int[(d + e*x)^(m + 1)*(a + c*x^2)^(p - 1), x], x] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 + a*e^2, 0] && GtQ[p, 0] && (LeQ[-2, m, 0] || EqQ[m + p + 1, 0]) && NeQ[m + 2*p + 1, 0] && IntegerQ[2*p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((2*c*d - b*e)*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/(e*(p + 1)*(b^2 - 4*a*c)), x] - Dist[((2*c*d - b*e)*(m + 2*p + 2))/((p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[p, -1] && LtQ[0, m, 1] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(d*(d + e*x)^m*(a + c*x^2)^(p + 1))/(2*a*e*(p + 1)), x] + Dist[(d*(m + 2*p + 2))/(2*a*(p + 1)), Int[(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && LtQ[0, m, 1] && IntegerQ[2*p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1))/(c*(p + 1)), x] - Dist[(e^2*(m + p))/(c*(p + 1)), Int[(d + e*x)^(m - 2)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 1] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1))/(c*(p + 1)), x] - Dist[(e^2*(m + p))/(c*(p + 1)), Int[(d + e*x)^(m - 2)*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 1] && IntegerQ[2*p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1))/(c*(m + 2*p + 1)), x] + Dist[((m + p)*(2*c*d - b*e))/(c*(m + 2*p + 1)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && GtQ[m, 1] && NeQ[m + 2*p + 1, 0] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1))/(c*(m + 2*p + 1)), x] + Dist[(2*c*d*(m + p))/(c*(m + 2*p + 1)), Int[(d + e*x)^(m - 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, p}, x] && EqQ[c*d^2 + a*e^2, 0] && GtQ[m, 1] && NeQ[m + 2*p + 1, 0] && IntegerQ[2*p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/((m + p + 1)*(2*c*d - b*e)), x] + Dist[(c*(m + 2*p + 2))/((m + p + 1)*(2*c*d - b*e)), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[m, 0] && NeQ[m + p + 1, 0] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e*(d + e*x)^m*(a + c*x^2)^(p + 1))/(2*c*d*(m + p + 1)), x] + Dist[(m + 2*p + 2)/(2*d*(m + p + 1)), Int[(d + e*x)^(m + 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, p}, x] && EqQ[c*d^2 + a*e^2, 0] && LtQ[m, 0] && NeQ[m + p + 1, 0] && IntegerQ[2*p]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((e*x)^m*(b*x + c*x^2)^p)/(x^(m + p)*(b + c*x)^p), Int[x^(m + p)*(b + c*x)^p, x], x] /; FreeQ[{b, c, e, m}, x] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^(m + p)*(a/d + (c*x)/e)^p, x] /; FreeQ[{a, c, d, e, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && GtQ[a, 0] && GtQ[d, 0] && !IGtQ[m, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^(p + 1)*d^(m - 1)*((d - e*x)/d)^(p + 1))/(a/d + (c*x)/e)^(p + 1), Int[(1 + (e*x)/d)^(m + p)*(a/d + (c*x)/e)^p, x], x] /; FreeQ[{a, c, d, e, m}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && (IntegerQ[m] || GtQ[d, 0]) && GtQ[a, 0] && !(IGtQ[m, 0] && (IntegerQ[3*p] || IntegerQ[4*p]))
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(d^m*(a + b*x + c*x^2)^FracPart[p])/((1 + (e*x)/d)^FracPart[p]*(a/d + (c*x)/e)^FracPart[p]), Int[(1 + (e*x)/d)^(m + p)*(a/d + (c*x)/e)^p, x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && (IntegerQ[m] || GtQ[d, 0]) && !(IGtQ[m, 0] && (IntegerQ[3*p] || IntegerQ[4*p]))
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(d^(m - 1)*(a + c*x^2)^(p + 1))/((1 + (e*x)/d)^(p + 1)*(a/d + (c*x)/e)^(p + 1)), Int[(1 + (e*x)/d)^(m + p)*(a/d + (c*x)/e)^p, x], x] /; FreeQ[{a, c, d, e, m}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && (IntegerQ[m] || GtQ[d, 0]) && !(IGtQ[m, 0] && (IntegerQ[3*p] || IntegerQ[4*p]))
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(d^IntPart[m]*(d + e*x)^FracPart[m])/(1 + (e*x)/d)^FracPart[m], Int[(1 + (e*x)/d)^m*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && !(IntegerQ[m] || GtQ[d, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(d^IntPart[m]*(d + e*x)^FracPart[m])/(1 + (e*x)/d)^FracPart[m], Int[(1 + (e*x)/d)^m*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, m}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && !(IntegerQ[m] || GtQ[d, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(-4*b*c)/(d*(b^2 - 4*a*c)), Int[1/(b + 2*c*x), x], x] + Dist[b^2/(d^2*(b^2 - 4*a*c)), Int[(d + e*x)/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(2*c*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/(e*(p + 1)*(b^2 - 4*a*c)), x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && EqQ[m + 2*p + 3, 0] && NeQ[p, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && IGtQ[p, 0] && !(EqQ[m, 3] && NeQ[p, 1])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + b*x + c*x^2)^p)/(e*(m + 1)), x] - Dist[(b*p)/(d*e*(m + 1)), Int[(d + e*x)^(m + 2)*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && NeQ[m + 2*p + 3, 0] && GtQ[p, 0] && LtQ[m, -1] && !(IntegerQ[m/2] && LtQ[m + 2*p + 3, 0]) && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + b*x + c*x^2)^p)/(e*(m + 2*p + 1)), x] - Dist[(d*p*(b^2 - 4*a*c))/(b*e*(m + 2*p + 1)), Int[(d + e*x)^m*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && NeQ[m + 2*p + 3, 0] && GtQ[p, 0] && !LtQ[m, -1] && !(IGtQ[(m - 1)/2, 0] && ( !IntegerQ[p] || LtQ[m, 2*p])) && RationalQ[m] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1))/(b*(p + 1)), x] - Dist[(d*e*(m - 1))/(b*(p + 1)), Int[(d + e*x)^(m - 2)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && NeQ[m + 2*p + 3, 0] && LtQ[p, -1] && GtQ[m, 1] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(2*c*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/(e*(p + 1)*(b^2 - 4*a*c)), x] - Dist[(2*c*e*(m + 2*p + 3))/(e*(p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^m*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && NeQ[m + 2*p + 3, 0] && LtQ[p, -1] && !GtQ[m, 1] && RationalQ[m] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[4*c, Subst[Int[1/(b^2*e - 4*a*c*e + 4*c*e*x^2), x], x, Sqrt[a + b*x + c*x^2]], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(4*Sqrt[-(c/(b^2 - 4*a*c))])/e, Subst[Int[1/Sqrt[Simp[1 - (b^2*x^4)/(d^2*(b^2 - 4*a*c)), x]], x], x, Sqrt[d + e*x]], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && LtQ[c/(b^2 - 4*a*c), 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(4*Sqrt[-(c/(b^2 - 4*a*c))])/e, Subst[Int[x^2/Sqrt[Simp[1 - (b^2*x^4)/(d^2*(b^2 - 4*a*c)), x]], x], x, Sqrt[d + e*x]], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && LtQ[c/(b^2 - 4*a*c), 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[-((c*(a + b*x + c*x^2))/(b^2 - 4*a*c))]/Sqrt[a + b*x + c*x^2], Int[(d + e*x)^m/Sqrt[-((a*c)/(b^2 - 4*a*c)) - (b*c*x)/(b^2 - 4*a*c) - (c^2*x^2)/(b^2 - 4*a*c)], x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && EqQ[m^2, 1/4]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(2*d*(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1))/(b*(m + 2*p + 1)), x] + Dist[(d^2*(m - 1)*(b^2 - 4*a*c))/(b^2*(m + 2*p + 1)), Int[(d + e*x)^(m - 2)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && NeQ[m + 2*p + 3, 0] && GtQ[m, 1] && NeQ[m + 2*p + 1, 0] && (IntegerQ[2*p] || (IntegerQ[m] && RationalQ[p]) || OddQ[m])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(-2*b*d*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/(d^2*(m + 1)*(b^2 - 4*a*c)), x] + Dist[(b^2*(m + 2*p + 3))/(d^2*(m + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m + 2)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0] && NeQ[m + 2*p + 3, 0] && LtQ[m, -1] && (IntegerQ[2*p] || (IntegerQ[m] && RationalQ[p]) || IntegerQ[(m + 2*p + 3)/2])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/e, Subst[Int[x^m*(a - b^2/(4*c) + (c*x^2)/e^2)^p, x], x, d + e*x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Simp[(1*ArcTan[(-1 - (c*x^2)/a)^(1/4)/(1 - (c*d*x)/(2*a*e) - Sqrt[-1 - (c*x^2)/a])])/(2*(-a)^(1/4)*e), x] + Simp[(1*Log[(1 - (c*d*x)/(2*a*e) + Sqrt[-1 - (c*x^2)/a] - (-1 - (c*x^2)/a)^(1/4))/(1 - (c*d*x)/(2*a*e) + Sqrt[-1 - (c*x^2)/a] + (-1 - (c*x^2)/a)^(1/4))])/(4*(-a)^(1/4)*e), x] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 + 2*a*e^2, 0] && LtQ[a, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*m*d^(m - 1)*(a + c*x^2)^(p + 1))/(2*c*(p + 1)), x] + Int[((d + e*x)^m - e*m*d^(m - 1)*x)*(a + c*x^2)^p, x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p, 1] && IGtQ[m, 0] && LeQ[m, p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, m}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && IntegerQ[p] && (GtQ[p, 0] || (EqQ[a, 0] && IntegerQ[m]))
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[2*e, Subst[Int[x^2/(c*d^2 - b*d*e + a*e^2 - (2*c*d - b*e)*x^2 + c*x^4), x], x, Sqrt[d + e*x]], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[2*e, Subst[Int[x^2/(c*d^2 + a*e^2 - 2*c*d*x^2 + c*x^4), x], x, Sqrt[d + e*x]], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[PolynomialDivide[(d + e*x)^m, a + b*x + c*x^2, x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && IGtQ[m, 1] && (NeQ[d, 0] || GtQ[m, 2])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[PolynomialDivide[(d + e*x)^m, a + c*x^2, x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[m, 1] && (NeQ[d, 0] || GtQ[m, 2])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1))/(c*(m - 1)), x] + Dist[1/c, Int[((d + e*x)^(m - 2)*Simp[c*d^2 - a*e^2 + e*(2*c*d - b*e)*x, x])/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && GtQ[m, 1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1))/(c*(m - 1)), x] + Dist[1/c, Int[((d + e*x)^(m - 2)*Simp[c*d^2 - a*e^2 + 2*c*d*e*x, x])/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && GtQ[m, 1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[e^2/(c*d^2 - b*d*e + a*e^2), Int[1/(d + e*x), x], x] + Dist[1/(c*d^2 - b*d*e + a*e^2), Int[(c*d - b*e - c*e*x)/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[e^2/(c*d^2 + a*e^2), Int[1/(d + e*x), x], x] + Dist[1/(c*d^2 + a*e^2), Int[(c*d - c*e*x)/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[2*e, Subst[Int[1/(c*d^2 - b*d*e + a*e^2 - (2*c*d - b*e)*x^2 + c*x^4), x], x, Sqrt[d + e*x]], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[2*e, Subst[Int[1/(c*d^2 + a*e^2 - 2*c*d*x^2 + c*x^4), x], x, Sqrt[d + e*x]], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m + 1))/((m + 1)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/(c*d^2 - b*d*e + a*e^2), Int[((d + e*x)^(m + 1)*Simp[c*d - b*e - c*e*x, x])/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && LtQ[m, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m + 1))/((m + 1)*(c*d^2 + a*e^2)), x] + Dist[c/(c*d^2 + a*e^2), Int[((d + e*x)^(m + 1)*(d - e*x))/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, m}, x] && NeQ[c*d^2 + a*e^2, 0] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m, 1/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && !IntegerQ[m]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m, 1/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, m}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[m]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((d + e*x)^FracPart[p]*(a + b*x + c*x^2)^FracPart[p])/(a*d + c*e*x^3)^FracPart[p], Int[(d + e*x)^(m - p)*(a*d + c*e*x^3)^p, x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && EqQ[b*d + a*e, 0] && EqQ[c*d + b*e, 0] && IGtQ[m - p + 1, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^m/(Sqrt[b*x]*Sqrt[1 + (c*x)/b]), x] /; FreeQ[{b, c, d, e}, x] && NeQ[c*d - b*e, 0] && NeQ[2*c*d - b*e, 0] && EqQ[m^2, 1/4] && LtQ[c, 0] && RationalQ[b]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[x]*Sqrt[b + c*x])/Sqrt[b*x + c*x^2], Int[(d + e*x)^m/(Sqrt[x]*Sqrt[b + c*x]), x], x] /; FreeQ[{b, c, d, e}, x] && NeQ[c*d - b*e, 0] && NeQ[2*c*d - b*e, 0] && EqQ[m^2, 1/4]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[2, Subst[Int[x^(2*m + 1)/Sqrt[a + b*x^2 + c*x^4], x], x, Sqrt[x]], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[m^2, 1/4]
Int[Times[Power[Times[Pattern[e, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(e*x)^m/x^m, Int[x^m/Sqrt[a + b*x + c*x^2], x], x] /; FreeQ[{a, b, c, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[m^2, 1/4]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(2*Rt[b^2 - 4*a*c, 2]*(d + e*x)^m*Sqrt[-((c*(a + b*x + c*x^2))/(b^2 - 4*a*c))])/(c*Sqrt[a + b*x + c*x^2]*((2*c*(d + e*x))/(2*c*d - b*e - e*Rt[b^2 - 4*a*c, 2]))^m), Subst[Int[(1 + (2*e*Rt[b^2 - 4*a*c, 2]*x^2)/(2*c*d - b*e - e*Rt[b^2 - 4*a*c, 2]))^m/Sqrt[1 - x^2], x], x, Sqrt[(b + Rt[b^2 - 4*a*c, 2] + 2*c*x)/(2*Rt[b^2 - 4*a*c, 2])]], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && EqQ[m^2, 1/4]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(2*a*Rt[-(c/a), 2]*(d + e*x)^m*Sqrt[1 + (c*x^2)/a])/(c*Sqrt[a + c*x^2]*((c*(d + e*x))/(c*d - a*e*Rt[-(c/a), 2]))^m), Subst[Int[(1 + (2*a*e*Rt[-(c/a), 2]*x^2)/(c*d - a*e*Rt[-(c/a), 2]))^m/Sqrt[1 - x^2], x], x, Sqrt[(1 - Rt[-(c/a), 2]*x)/2]], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && EqQ[m^2, 1/4]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^(m + 1)*(d*b - 2*a*e + (2*c*d - b*e)*x)*(a + b*x + c*x^2)^p)/(2*(m + 1)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[(p*(b^2 - 4*a*c))/(2*(m + 1)*(c*d^2 - b*d*e + a*e^2)), Int[(d + e*x)^(m + 2)*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && EqQ[m + 2*p + 2, 0] && GtQ[p, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^(m + 1)*(-2*a*e + (2*c*d)*x)*(a + c*x^2)^p)/(2*(m + 1)*(c*d^2 + a*e^2)), x] - Dist[(4*a*c*p)/(2*(m + 1)*(c*d^2 + a*e^2)), Int[(d + e*x)^(m + 2)*(a + c*x^2)^(p - 1), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && EqQ[m + 2*p + 2, 0] && GtQ[p, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m - 1)*(d*b - 2*a*e + (2*c*d - b*e)*x)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(b^2 - 4*a*c)), x] - Dist[(2*(2*p + 3)*(c*d^2 - b*d*e + a*e^2))/((p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m - 2)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && EqQ[m + 2*p + 2, 0] && LtQ[p, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m - 1)*(a*e - c*d*x)*(a + c*x^2)^(p + 1))/(2*a*c*(p + 1)), x] + Dist[((2*p + 3)*(c*d^2 + a*e^2))/(2*a*c*(p + 1)), Int[(d + e*x)^(m - 2)*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && EqQ[m + 2*p + 2, 0] && LtQ[p, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2, Subst[Int[1/(4*c*d^2 - 4*b*d*e + 4*a*e^2 - x^2), x], x, (2*a*e - b*d - (2*c*d - b*e)*x)/Sqrt[a + b*x + c*x^2]], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[1/(c*d^2 + a*e^2 - x^2), x], x, (a*e - c*d*x)/Sqrt[a + c*x^2]] /; FreeQ[{a, c, d, e}, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b - Rt[b^2 - 4*a*c, 2] + 2*c*x)*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p*Hypergeometric2F1[m + 1, -p, m + 2, (-4*c*Rt[b^2 - 4*a*c, 2]*(d + e*x))/((2*c*d - b*e - e*Rt[b^2 - 4*a*c, 2])*(b - Rt[b^2 - 4*a*c, 2] + 2*c*x))])/((m + 1)*(2*c*d - b*e + e*Rt[b^2 - 4*a*c, 2])*(((2*c*d - b*e + e*Rt[b^2 - 4*a*c, 2])*(b + Rt[b^2 - 4*a*c, 2] + 2*c*x))/((2*c*d - b*e - e*Rt[b^2 - 4*a*c, 2])*(b - Rt[b^2 - 4*a*c, 2] + 2*c*x)))^p), x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && !IntegerQ[p] && EqQ[m + 2*p + 2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((Rt[-(a*c), 2] - c*x)*(d + e*x)^(m + 1)*(a + c*x^2)^p*Hypergeometric2F1[m + 1, -p, m + 2, (2*c*Rt[-(a*c), 2]*(d + e*x))/((c*d - e*Rt[-(a*c), 2])*(Rt[-(a*c), 2] - c*x))])/((m + 1)*(c*d + e*Rt[-(a*c), 2])*(((c*d + e*Rt[-(a*c), 2])*(Rt[-(a*c), 2] + c*x))/((c*d - e*Rt[-(a*c), 2])*(-Rt[-(a*c), 2] + c*x)))^p), x] /; FreeQ[{a, c, d, e, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + 2*p + 2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^m*(b + 2*c*x)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(b^2 - 4*a*c)), x] + Dist[(m*(2*c*d - b*e))/((p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && EqQ[m + 2*p + 3, 0] && LtQ[p, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^m*(2*c*x)*(a + c*x^2)^(p + 1))/(4*a*c*(p + 1)), x] - Dist[(m*(2*c*d))/(4*a*c*(p + 1)), Int[(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && EqQ[m + 2*p + 3, 0] && LtQ[p, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/((m + 1)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[(2*c*d - b*e)/(2*(c*d^2 - b*d*e + a*e^2)), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && EqQ[m + 2*p + 3, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m + 1)*(a + c*x^2)^(p + 1))/((m + 1)*(c*d^2 + a*e^2)), x] + Dist[(c*d)/(c*d^2 + a*e^2), Int[(d + e*x)^(m + 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && EqQ[m + 2*p + 3, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + b*x + c*x^2)^p)/(e*(m + 1)), x] - Dist[p/(e*(m + 1)), Int[(d + e*x)^(m + 1)*(b + 2*c*x)*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && GtQ[p, 0] && (IntegerQ[p] || LtQ[m, -1]) && NeQ[m, -1] && !ILtQ[m + 2*p + 1, 0] && IntQuadraticQ[a, b, c, d, e, m, p, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + c*x^2)^p)/(e*(m + 1)), x] - Dist[(2*c*p)/(e*(m + 1)), Int[x*(d + e*x)^(m + 1)*(a + c*x^2)^(p - 1), x], x] /; FreeQ[{a, c, d, e, m}, x] && NeQ[c*d^2 + a*e^2, 0] && GtQ[p, 0] && (IntegerQ[p] || LtQ[m, -1]) && NeQ[m, -1] && !ILtQ[m + 2*p + 1, 0] && IntQuadraticQ[a, 0, c, d, e, m, p, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + b*x + c*x^2)^p)/(e*(m + 2*p + 1)), x] - Dist[p/(e*(m + 2*p + 1)), Int[(d + e*x)^m*Simp[b*d - 2*a*e + (2*c*d - b*e)*x, x]*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && GtQ[p, 0] && NeQ[m + 2*p + 1, 0] && ( !RationalQ[m] || LtQ[m, 1]) && !ILtQ[m + 2*p, 0] && IntQuadraticQ[a, b, c, d, e, m, p, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + c*x^2)^p)/(e*(m + 2*p + 1)), x] + Dist[(2*p)/(e*(m + 2*p + 1)), Int[(d + e*x)^m*Simp[a*e - c*d*x, x]*(a + c*x^2)^(p - 1), x], x] /; FreeQ[{a, c, d, e, m}, x] && NeQ[c*d^2 + a*e^2, 0] && GtQ[p, 0] && NeQ[m + 2*p + 1, 0] && ( !RationalQ[m] || LtQ[m, 1]) && !ILtQ[m + 2*p, 0] && IntQuadraticQ[a, 0, c, d, e, m, p, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^m*(b + 2*c*x)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(b^2 - 4*a*c)), x] - Dist[1/((p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m - 1)*(b*e*m + 2*c*d*(2*p + 3) + 2*c*e*(m + 2*p + 3)*x)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && LtQ[p, -1] && GtQ[m, 0] && (LtQ[m, 1] || (ILtQ[m + 2*p + 3, 0] && NeQ[m, 2])) && IntQuadraticQ[a, b, c, d, e, m, p, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(d + e*x)^m*(a + c*x^2)^(p + 1))/(2*a*(p + 1)), x] + Dist[1/(2*a*(p + 1)), Int[(d + e*x)^(m - 1)*(d*(2*p + 3) + e*(m + 2*p + 3)*x)*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 0] && (LtQ[m, 1] || (ILtQ[m + 2*p + 3, 0] && NeQ[m, 2])) && IntQuadraticQ[a, 0, c, d, e, m, p, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m - 1)*(d*b - 2*a*e + (2*c*d - b*e)*x)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(b^2 - 4*a*c)), x] + Dist[1/((p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m - 2)*Simp[e*(2*a*e*(m - 1) + b*d*(2*p - m + 4)) - 2*c*d^2*(2*p + 3) + e*(b*e - 2*d*c)*(m + 2*p + 2)*x, x]*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && LtQ[p, -1] && GtQ[m, 1] && IntQuadraticQ[a, b, c, d, e, m, p, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m - 1)*(a*e - c*d*x)*(a + c*x^2)^(p + 1))/(2*a*c*(p + 1)), x] + Dist[1/((p + 1)*(-2*a*c)), Int[(d + e*x)^(m - 2)*Simp[a*e^2*(m - 1) - c*d^2*(2*p + 3) - d*c*e*(m + 2*p + 2)*x, x]*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 1] && IntQuadraticQ[a, 0, c, d, e, m, p, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(b*c*d - b^2*e + 2*a*c*e + c*(2*c*d - b*e)*x)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(b^2 - 4*a*c)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/((p + 1)*(b^2 - 4*a*c)*(c*d^2 - b*d*e + a*e^2)), Int[(d + e*x)^m*Simp[b*c*d*e*(2*p - m + 2) + b^2*e^2*(m + p + 2) - 2*c^2*d^2*(2*p + 3) - 2*a*c*e^2*(m + 2*p + 3) - c*e*(2*c*d - b*e)*(m + 2*p + 4)*x, x]*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && LtQ[p, -1] && IntQuadraticQ[a, b, c, d, e, m, p, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^(m + 1)*(a*e + c*d*x)*(a + c*x^2)^(p + 1))/(2*a*(p + 1)*(c*d^2 + a*e^2)), x] + Dist[1/(2*a*(p + 1)*(c*d^2 + a*e^2)), Int[(d + e*x)^m*Simp[c*d^2*(2*p + 3) + a*e^2*(m + 2*p + 3) + c*e*d*(m + 2*p + 4)*x, x]*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e, m}, x] && NeQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && IntQuadraticQ[a, 0, c, d, e, m, p, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1))/(c*(m + 2*p + 1)), x] + Dist[1/(c*(m + 2*p + 1)), Int[(d + e*x)^(m - 2)*Simp[c*d^2*(m + 2*p + 1) - e*(a*e*(m - 1) + b*d*(p + 1)) + e*(2*c*d - b*e)*(m + p)*x, x]*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && If[RationalQ[m], GtQ[m, 1], SumSimplerQ[m, -2]] && NeQ[m + 2*p + 1, 0] && IntQuadraticQ[a, b, c, d, e, m, p, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1))/(c*(m + 2*p + 1)), x] + Dist[1/(c*(m + 2*p + 1)), Int[(d + e*x)^(m - 2)*Simp[c*d^2*(m + 2*p + 1) - a*e^2*(m - 1) + 2*c*d*e*(m + p)*x, x]*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && If[RationalQ[m], GtQ[m, 1], SumSimplerQ[m, -2]] && NeQ[m + 2*p + 1, 0] && IntQuadraticQ[a, 0, c, d, e, m, p, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/((m + 1)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/((m + 1)*(c*d^2 - b*d*e + a*e^2)), Int[(d + e*x)^(m + 1)*Simp[c*d*(m + 1) - b*e*(m + p + 2) - c*e*(m + 2*p + 3)*x, x]*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && NeQ[m, -1] && ((LtQ[m, -1] && IntQuadraticQ[a, b, c, d, e, m, p, x]) || (SumSimplerQ[m, 1] && IntegerQ[p]) || ILtQ[Simplify[m + 2*p + 3], 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m + 1)*(a + c*x^2)^(p + 1))/((m + 1)*(c*d^2 + a*e^2)), x] + Dist[c/((m + 1)*(c*d^2 + a*e^2)), Int[(d + e*x)^(m + 1)*Simp[d*(m + 1) - e*(m + 2*p + 3)*x, x]*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && NeQ[m, -1] && ((LtQ[m, -1] && IntQuadraticQ[a, 0, c, d, e, m, p, x]) || (SumSimplerQ[m, 1] && IntegerQ[p]) || ILtQ[Simplify[m + 2*p + 3], 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 4]]], Pattern[x, Blank[Symbol]]] := Dist[d, Int[1/((d^2 - e^2*x^2)*(a + c*x^2)^(1/4)), x], x] - Dist[e, Int[x/((d^2 - e^2*x^2)*(a + c*x^2)^(1/4)), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-3, 4]]], Pattern[x, Blank[Symbol]]] := Dist[d, Int[1/((d^2 - e^2*x^2)*(a + c*x^2)^(3/4)), x], x] - Dist[e, Int[x/((d^2 - e^2*x^2)*(a + c*x^2)^(3/4)), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/((-4*c)/(b^2 - 4*a*c))^p, Subst[Int[Simp[1 - x^2/(b^2 - 4*a*c), x]^p/Simp[2*c*d - b*e + e*x, x], x], x, b + 2*c*x], x] /; FreeQ[{a, b, c, d, e, p}, x] && GtQ[4*a - b^2/c, 0] && IntegerQ[4*p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^p/(-((c*(a + b*x + c*x^2))/(b^2 - 4*a*c)))^p, Int[(-((a*c)/(b^2 - 4*a*c)) - (b*c*x)/(b^2 - 4*a*c) - (c^2*x^2)/(b^2 - 4*a*c))^p/(d + e*x), x], x] /; FreeQ[{a, b, c, d, e, p}, x] && !GtQ[4*a - b^2/c, 0] && IntegerQ[4*p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[3*c*e^2*(2*c*d - b*e), 3]}, -Simp[(Sqrt[3]*c*e*ArcTan[1/Sqrt[3] + (2*(c*d - b*e - c*e*x))/(Sqrt[3]*q*(a + b*x + c*x^2)^(1/3))])/q^2, x] + (-Simp[(3*c*e*Log[d + e*x])/(2*q^2), x] + Simp[(3*c*e*Log[c*d - b*e - c*e*x - q*(a + b*x + c*x^2)^(1/3)])/(2*q^2), x])] /; FreeQ[{a, b, c, d, e}, x] && NeQ[2*c*d - b*e, 0] && EqQ[c^2*d^2 - b*c*d*e + b^2*e^2 - 3*a*c*e^2, 0] && PosQ[c*e^2*(2*c*d - b*e)]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(6*c^2*e^2)/d^2, 3]}, -Simp[(Sqrt[3]*c*e*ArcTan[1/Sqrt[3] + (2*c*(d - e*x))/(Sqrt[3]*d*q*(a + c*x^2)^(1/3))])/(d^2*q^2), x] + (-Simp[(3*c*e*Log[d + e*x])/(2*d^2*q^2), x] + Simp[(3*c*e*Log[c*d - c*e*x - d*q*(a + c*x^2)^(1/3)])/(2*d^2*q^2), x])] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 - 3*a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-3*c*e^2*(2*c*d - b*e), 3]}, -Simp[(Sqrt[3]*c*e*ArcTan[1/Sqrt[3] - (2*(c*d - b*e - c*e*x))/(Sqrt[3]*q*(a + b*x + c*x^2)^(1/3))])/q^2, x] + (-Simp[(3*c*e*Log[d + e*x])/(2*q^2), x] + Simp[(3*c*e*Log[c*d - b*e - c*e*x + q*(a + b*x + c*x^2)^(1/3)])/(2*q^2), x])] /; FreeQ[{a, b, c, d, e}, x] && NeQ[2*c*d - b*e, 0] && EqQ[c^2*d^2 - b*c*d*e + b^2*e^2 - 3*a*c*e^2, 0] && NegQ[c*e^2*(2*c*d - b*e)]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := Dist[a^(1/3), Int[1/((d + e*x)*(1 - (3*e*x)/d)^(1/3)*(1 + (3*e*x)/d)^(1/3)), x], x] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 + 9*a*e^2, 0] && GtQ[a, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := Dist[(1 + (c*x^2)/a)^(1/3)/(a + c*x^2)^(1/3), Int[1/((d + e*x)*(1 + (c*x^2)/a)^(1/3)), x], x] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 + 9*a*e^2, 0] && !GtQ[a, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[((b + q + 2*c*x)^(1/3)*(b - q + 2*c*x)^(1/3))/(a + b*x + c*x^2)^(1/3), Int[1/((d + e*x)*(b + q + 2*c*x)^(1/3)*(b - q + 2*c*x)^(1/3)), x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c^2*d^2 - b*c*d*e - 2*b^2*e^2 + 9*a*c*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^m*(Rt[a, 2] + Rt[-c, 2]*x)^p*(Rt[a, 2] - Rt[-c, 2]*x)^p, x] /; FreeQ[{a, c, d, e, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && GtQ[a, 0] && LtQ[c, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + c*x^2)^p, (d/(d^2 - e^2*x^2) - (e*x)/(d^2 - e^2*x^2))^(-m), x], x] /; FreeQ[{a, c, d, e, p}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && ILtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, -Dist[((1/(d + e*x))^(2*p)*(a + b*x + c*x^2)^p)/(e*((e*(b - q + 2*c*x))/(2*c*(d + e*x)))^p*((e*(b + q + 2*c*x))/(2*c*(d + e*x)))^p), Subst[Int[x^(-m - 2*(p + 1))*Simp[1 - (d - (e*(b - q))/(2*c))*x, x]^p*Simp[1 - (d - (e*(b + q))/(2*c))*x, x]^p, x], x, 1/(d + e*x)], x]] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && !IntegerQ[p] && ILtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(a + b*x + c*x^2)^p/(e*(1 - (d + e*x)/(d - (e*(b - q))/(2*c)))^p*(1 - (d + e*x)/(d - (e*(b + q))/(2*c)))^p), Subst[Int[x^m*Simp[1 - x/(d - (e*(b - q))/(2*c)), x]^p*Simp[1 - x/(d - (e*(b + q))/(2*c)), x]^p, x], x, d + e*x], x]] /; FreeQ[{a, b, c, d, e, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[2*c*d - b*e, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Dist[(a + c*x^2)^p/(e*(1 - (d + e*x)/(d + (e*q)/c))^p*(1 - (d + e*x)/(d - (e*q)/c))^p), Subst[Int[x^m*Simp[1 - x/(d + (e*q)/c), x]^p*Simp[1 - x/(d - (e*q)/c), x]^p, x], x, d + e*x], x]] /; FreeQ[{a, c, d, e, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(d + e*x)^m*(a + b*x + c*x^2)^p, x], x, u], x] /; FreeQ[{a, b, c, d, e, m, p}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(d + e*x)^m*(a + c*x^2)^p, x], x, u], x] /; FreeQ[{a, c, d, e, m, p}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(g*(e*x)^m*(b*x + c*x^2)^(p + 1))/(c*(m + 2*p + 2)), x] /; FreeQ[{b, c, e, f, g, m, p}, x] && EqQ[b*g*(m + p + 1) - c*f*(m + 2*p + 2), 0] && NeQ[m + 2*p + 2, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[f, Int[x^m*(a + c*x^2)^p, x], x] + Dist[g, Int[x^(m + 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, f, g, p}, x] && IntegerQ[m] && !IntegerQ[2*p]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(e*x)^m*(f + g*x)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, e, f, g, m}, x] && IntegerQ[p] && (GtQ[p, 0] || (EqQ[a, 0] && IntegerQ[m]))
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(e*x)^m*(f + g*x)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, e, f, g, m}, x] && IGtQ[p, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[(f*g*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/(b*(p + 1)*(e*f - d*g)), x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && EqQ[b^2 - 4*a*c, 0] && EqQ[m + 2*p + 3, 0] && EqQ[2*c*f - b*g, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(g*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/(2*c*(p + 1)), x] - Dist[(e*g*m)/(2*c*(p + 1)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && EqQ[2*c*f - b*g, 0] && LtQ[p, -1] && GtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(-2*c*(e*f - d*g)*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(2*c*d - b*e)^2), x] + Dist[(2*c*f - b*g)/(2*c*d - b*e), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && EqQ[b^2 - 4*a*c, 0] && EqQ[m + 2*p + 3, 0] && NeQ[2*c*f - b*g, 0] && NeQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/(c^IntPart[p]*(b/2 + c*x)^(2*FracPart[p])), Int[(d + e*x)^m*(f + g*x)*(b/2 + c*x)^(2*p), x], x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && EqQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && NeQ[b^2 - 4*a*c, 0] && IntegerQ[p] && (GtQ[p, 0] || (EqQ[a, 0] && IntegerQ[m]))
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m}, x] && IGtQ[p, 0]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(e*g*x)/c, x] + Dist[1/c, Int[(c*d*f - a*e*g + (c*e*f + c*d*g - b*e*g)*x)/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(e*g*x)/c, x] + Dist[1/c, Int[(c*d*f - a*e*g + c*(e*f + d*g)*x)/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g}, x]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e*g*(p + 2) - c*(e*f + d*g)*(2*p + 3) - 2*c*e*g*(p + 1)*x)*(a + b*x + c*x^2)^(p + 1))/(2*c^2*(p + 1)*(2*p + 3)), x] /; FreeQ[{a, b, c, d, e, f, g, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[b^2*e*g*(p + 2) - 2*a*c*e*g + c*(2*c*d*f - b*(e*f + d*g))*(2*p + 3), 0] && NeQ[p, -1]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(((e*f + d*g)*(2*p + 3) + 2*e*g*(p + 1)*x)*(a + c*x^2)^(p + 1))/(2*c*(p + 1)*(2*p + 3)), x] /; FreeQ[{a, c, d, e, f, g, p}, x] && EqQ[a*e*g - c*d*f*(2*p + 3), 0] && NeQ[p, -1]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((2*a*c*(e*f + d*g) - b*(c*d*f + a*e*g) - (b^2*e*g - b*c*(e*f + d*g) + 2*c*(c*d*f - a*e*g))*x)*(a + b*x + c*x^2)^(p + 1))/(c*(p + 1)*(b^2 - 4*a*c)), x] - Dist[(b^2*e*g*(p + 2) - 2*a*c*e*g + c*(2*c*d*f - b*(e*f + d*g))*(2*p + 3))/(c*(p + 1)*(b^2 - 4*a*c)), Int[(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a*(e*f + d*g) - (c*d*f - a*e*g)*x)*(a + c*x^2)^(p + 1))/(2*a*c*(p + 1)), x] - Dist[(a*e*g - c*d*f*(2*p + 3))/(2*a*c*(p + 1)), Int[(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && LtQ[p, -1]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((b*e*g*(p + 2) - c*(e*f + d*g)*(2*p + 3) - 2*c*e*g*(p + 1)*x)*(a + b*x + c*x^2)^(p + 1))/(2*c^2*(p + 1)*(2*p + 3)), x] + Dist[(b^2*e*g*(p + 2) - 2*a*c*e*g + c*(2*c*d*f - b*(e*f + d*g))*(2*p + 3))/(2*c^2*(2*p + 3)), Int[(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, p}, x] && NeQ[b^2 - 4*a*c, 0] && !LeQ[p, -1]
Int[Times[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(((e*f + d*g)*(2*p + 3) + 2*e*g*(p + 1)*x)*(a + c*x^2)^(p + 1))/(2*c*(p + 1)*(2*p + 3)), x] - Dist[(a*e*g - c*d*f*(2*p + 3))/(c*(2*p + 3)), Int[(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, p}, x] && !LeQ[p, -1]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/e^p, Int[(e*x)^(m + p)*(f + g*x)*(b + c*x)^p, x], x] /; FreeQ[{b, c, e, f, g, m}, x] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^(m + p)*(f + g*x)*(a/d + (c*x)/e)^p, x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^(m + p)*(f + g*x)*(a/d + (c*x)/e)^p, x] /; FreeQ[{a, c, d, e, f, g, m}, x] && EqQ[c*d^2 + a*e^2, 0] && (IntegerQ[p] || (GtQ[a, 0] && GtQ[d, 0] && EqQ[m + p, 0]))
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[d^m*e^m, Int[((f + g*x)*(a + b*x + c*x^2)^(m + p))/(a*e + c*d*x)^m, x], x] /; FreeQ[{a, b, c, d, e, f, g, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[2*p] && ILtQ[m, 0]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[d^m*e^m, Int[(x*(a + c*x^2)^(m + p))/(a*e + c*d*x)^m, x], x] /; FreeQ[{a, c, d, e, p}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && ILtQ[m, 0] && EqQ[m, -1] && !ILtQ[p - 1/2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(g*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/(c*(m + 2*p + 2)), x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && EqQ[m*(g*(c*d - b*e) + c*e*f) + e*(p + 1)*(2*c*f - b*g), 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(g*(d + e*x)^m*(a + c*x^2)^(p + 1))/(c*(m + 2*p + 2)), x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && EqQ[m*(d*g + e*f) + 2*e*f*(p + 1), 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((g*(c*d - b*e) + c*e*f)*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/(c*(p + 1)*(2*c*d - b*e)), x] - Dist[(e*(m*(g*(c*d - b*e) + c*e*f) + e*(p + 1)*(2*c*f - b*g)))/(c*(p + 1)*(2*c*d - b*e)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*g + e*f)*(d + e*x)^m*(a + c*x^2)^(p + 1))/(2*c*d*(p + 1)), x] - Dist[(e*(m*(d*g + e*f) + 2*e*f*(p + 1)))/(2*c*d*(p + 1)), Int[(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && EqQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((g*(c*d - b*e) + c*e*f)*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/(c*(p + 1)*(2*c*d - b*e)), x] - Dist[(e*(m*(g*(c*d - b*e) + c*e*f) + e*(p + 1)*(2*c*f - b*g)))/(c*(p + 1)*(2*c*d - b*e)), Int[(d + e*x)^Simplify[m - 1]*(a + b*x + c*x^2)^Simplify[p + 1], x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && SumSimplerQ[p, 1] && SumSimplerQ[m, -1] && NeQ[p, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*g + e*f)*(d + e*x)^m*(a + c*x^2)^(p + 1))/(2*c*d*(p + 1)), x] - Dist[(e*(m*(d*g + e*f) + 2*e*f*(p + 1)))/(2*c*d*(p + 1)), Int[(d + e*x)^Simplify[m - 1]*(a + c*x^2)^Simplify[p + 1], x], x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && SumSimplerQ[p, 1] && SumSimplerQ[m, -1] && NeQ[p, -1] && !IGtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*g - e*f)*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/((2*c*d - b*e)*(m + p + 1)), x] + Dist[(m*(g*(c*d - b*e) + c*e*f) + e*(p + 1)*(2*c*f - b*g))/(e*(2*c*d - b*e)*(m + p + 1)), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && ((LtQ[m, -1] && !IGtQ[m + p + 1, 0]) || (LtQ[m, 0] && LtQ[p, -1]) || EqQ[m + 2*p + 2, 0]) && NeQ[m + p + 1, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*g - e*f)*(d + e*x)^m*(a + c*x^2)^(p + 1))/(2*c*d*(m + p + 1)), x] + Dist[(m*(g*c*d + c*e*f) + 2*e*c*f*(p + 1))/(e*(2*c*d)*(m + p + 1)), Int[(d + e*x)^(m + 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && ((LtQ[m, -1] && !IGtQ[m + p + 1, 0]) || (LtQ[m, 0] && LtQ[p, -1]) || EqQ[m + 2*p + 2, 0]) && NeQ[m + p + 1, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(g*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/(c*(m + 2*p + 2)), x] + Dist[(m*(g*(c*d - b*e) + c*e*f) + e*(p + 1)*(2*c*f - b*g))/(c*e*(m + 2*p + 2)), Int[(d + e*x)^m*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[m + 2*p + 2, 0] && (NeQ[m, 2] || EqQ[d, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(g*(d + e*x)^m*(a + c*x^2)^(p + 1))/(c*(m + 2*p + 2)), x] + Dist[(m*(d*g + e*f) + 2*e*f*(p + 1))/(e*(m + 2*p + 2)), Int[(d + e*x)^m*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && EqQ[c*d^2 + a*e^2, 0] && NeQ[m + 2*p + 2, 0] && NeQ[m, 2]
Int[Times[Power[Pattern[x, Blank[]], 2], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x^2*(a*g - c*f*x)*(a + c*x^2)^(p + 1))/(2*a*c*(p + 1)), x] - Dist[1/(2*a*c*(p + 1)), Int[x*Simp[2*a*g - c*f*(2*p + 5)*x, x]*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, f, g}, x] && EqQ[a*g^2 + f^2*c, 0] && LtQ[p, -2]
Int[Times[Power[Pattern[x, Blank[]], 2], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/c, Int[(f + g*x)*(a + c*x^2)^(p + 1), x], x] - Dist[a/c, Int[(f + g*x)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, f, g, p}, x] && EqQ[a*g^2 + f^2*c, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^m*(f + g*x)^(p + 1)*(a/f + (c*x)/g)^p, x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*f^2 - b*f*g + a*g^2, 0] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^m*(f + g*x)^(p + 1)*(a/f + (c*x)/g)^p, x] /; FreeQ[{a, c, d, e, f, g, m}, x] && EqQ[c*f^2 + a*g^2, 0] && (IntegerQ[p] || (GtQ[a, 0] && GtQ[f, 0] && EqQ[p, -1]))
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[((d + e*x)^m*(f + g*x))/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[m]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[((d + e*x)^m*(f + g*x))/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[m]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((e*f - d*g)*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/(2*(p + 1)*(c*d^2 - b*d*e + a*e^2)), x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && EqQ[Simplify[m + 2*p + 3], 0] && EqQ[b*(e*f + d*g) - 2*(c*d*f + a*e*g), 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((e*f - d*g)*(d + e*x)^(m + 1)*(a + c*x^2)^(p + 1))/(2*(p + 1)*(c*d^2 + a*e^2)), x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && EqQ[Simplify[m + 2*p + 3], 0] && EqQ[c*d*f + a*e*g, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^m*(a + b*x + c*x^2)^(p + 1)*(b*f - 2*a*g + (2*c*f - b*g)*x))/((p + 1)*(b^2 - 4*a*c)), x] - Dist[(m*(b*(e*f + d*g) - 2*(c*d*f + a*e*g)))/((p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && EqQ[Simplify[m + 2*p + 3], 0] && LtQ[p, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^m*(a + c*x^2)^(p + 1)*(a*g - c*f*x))/(2*a*c*(p + 1)), x] - Dist[(m*(c*d*f + a*e*g))/(2*a*c*(p + 1)), Int[(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && EqQ[Simplify[m + 2*p + 3], 0] && LtQ[p, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((e*f - d*g)*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/(2*(p + 1)*(c*d^2 - b*d*e + a*e^2)), x] - Dist[(b*(e*f + d*g) - 2*(c*d*f + a*e*g))/(2*(c*d^2 - b*d*e + a*e^2)), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && EqQ[Simplify[m + 2*p + 3], 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((e*f - d*g)*(d + e*x)^(m + 1)*(a + c*x^2)^(p + 1))/(2*(p + 1)*(c*d^2 + a*e^2)), x] + Dist[(c*d*f + a*e*g)/(c*d^2 + a*e^2), Int[(d + e*x)^(m + 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && EqQ[Simplify[m + 2*p + 3], 0]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[f, Int[(e*x)^m*(a + c*x^2)^p, x], x] + Dist[g/e, Int[(e*x)^(m + 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, e, f, g, p}, x] && !RationalQ[m] && !IGtQ[p, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((d + e*x)^FracPart[p]*(a + b*x + c*x^2)^FracPart[p])/(a*d + c*e*x^3)^FracPart[p], Int[(f + g*x)*(a*d + c*e*x^3)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && EqQ[m, p] && EqQ[b*d + a*e, 0] && EqQ[c*d + b*e, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^(m + 1)*(a + b*x + c*x^2)^p*((d*g - e*f*(m + 2))*(c*d^2 - b*d*e + a*e^2) - d*p*(2*c*d - b*e)*(e*f - d*g) - e*(g*(m + 1)*(c*d^2 - b*d*e + a*e^2) + p*(2*c*d - b*e)*(e*f - d*g))*x))/(e^2*(m + 1)*(m + 2)*(c*d^2 - b*d*e + a*e^2)), x] - Dist[p/(e^2*(m + 1)*(m + 2)*(c*d^2 - b*d*e + a*e^2)), Int[(d + e*x)^(m + 2)*(a + b*x + c*x^2)^(p - 1)*Simp[2*a*c*e*(e*f - d*g)*(m + 2) + b^2*e*(d*g*(p + 1) - e*f*(m + p + 2)) + b*(a*e^2*g*(m + 1) - c*d*(d*g*(2*p + 1) - e*f*(m + 2*p + 2))) - c*(2*c*d*(d*g*(2*p + 1) - e*f*(m + 2*p + 2)) - e*(2*a*e*g*(m + 1) - b*(d*g*(m - 2*p) + e*f*(m + 2*p + 2))))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && GtQ[p, 0] && LtQ[m, -2] && LtQ[m + 2*p, 0] && !ILtQ[m + 2*p + 3, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^(m + 1)*(a + c*x^2)^p*((d*g - e*f*(m + 2))*(c*d^2 + a*e^2) - 2*c*d^2*p*(e*f - d*g) - e*(g*(m + 1)*(c*d^2 + a*e^2) + 2*c*d*p*(e*f - d*g))*x))/(e^2*(m + 1)*(m + 2)*(c*d^2 + a*e^2)), x] - Dist[p/(e^2*(m + 1)*(m + 2)*(c*d^2 + a*e^2)), Int[(d + e*x)^(m + 2)*(a + c*x^2)^(p - 1)*Simp[2*a*c*e*(e*f - d*g)*(m + 2) - c*(2*c*d*(d*g*(2*p + 1) - e*f*(m + 2*p + 2)) - 2*a*e^2*g*(m + 1))*x, x], x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && GtQ[p, 0] && LtQ[m, -2] && LtQ[m + 2*p, 0] && !ILtQ[m + 2*p + 3, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(e*f*(m + 2*p + 2) - d*g*(2*p + 1) + e*g*(m + 1)*x)*(a + b*x + c*x^2)^p)/(e^2*(m + 1)*(m + 2*p + 2)), x] + Dist[p/(e^2*(m + 1)*(m + 2*p + 2)), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p - 1)*Simp[g*(b*d + 2*a*e + 2*a*e*m + 2*b*d*p) - f*b*e*(m + 2*p + 2) + (g*(2*c*d + b*e + b*e*m + 4*c*d*p) - 2*c*e*f*(m + 2*p + 2))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && RationalQ[p] && p > 0 && (LtQ[m, -1] || EqQ[p, 1] || (IntegerQ[p] && !RationalQ[m])) && NeQ[m, -1] && !ILtQ[m + 2*p + 1, 0] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(e*f*(m + 2*p + 2) - d*g*(2*p + 1) + e*g*(m + 1)*x)*(a + c*x^2)^p)/(e^2*(m + 1)*(m + 2*p + 2)), x] + Dist[p/(e^2*(m + 1)*(m + 2*p + 2)), Int[(d + e*x)^(m + 1)*(a + c*x^2)^(p - 1)*Simp[g*(2*a*e + 2*a*e*m) + (g*(2*c*d + 4*c*d*p) - 2*c*e*f*(m + 2*p + 2))*x, x], x], x] /; FreeQ[{a, c, d, e, f, g, m}, x] && NeQ[c*d^2 + a*e^2, 0] && RationalQ[p] && p > 0 && (LtQ[m, -1] || EqQ[p, 1] || (IntegerQ[p] && !RationalQ[m])) && NeQ[m, -1] && !ILtQ[m + 2*p + 1, 0] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(c*e*f*(m + 2*p + 2) - g*(c*d + 2*c*d*p - b*e*p) + g*c*e*(m + 2*p + 1)*x)*(a + b*x + c*x^2)^p)/(c*e^2*(m + 2*p + 1)*(m + 2*p + 2)), x] - Dist[p/(c*e^2*(m + 2*p + 1)*(m + 2*p + 2)), Int[(d + e*x)^m*(a + b*x + c*x^2)^(p - 1)*Simp[c*e*f*(b*d - 2*a*e)*(m + 2*p + 2) + g*(a*e*(b*e - 2*c*d*m + b*e*m) + b*d*(b*e*p - c*d - 2*c*d*p)) + (c*e*f*(2*c*d - b*e)*(m + 2*p + 2) + g*(b^2*e^2*(p + m + 1) - 2*c^2*d^2*(1 + 2*p) - c*e*(b*d*(m - 2*p) + 2*a*e*(m + 2*p + 1))))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && GtQ[p, 0] && (IntegerQ[p] || !RationalQ[m] || (GeQ[m, -1] && LtQ[m, 0])) && !ILtQ[m + 2*p, 0] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(c*e*f*(m + 2*p + 2) - g*c*d*(2*p + 1) + g*c*e*(m + 2*p + 1)*x)*(a + c*x^2)^p)/(c*e^2*(m + 2*p + 1)*(m + 2*p + 2)), x] + Dist[(2*p)/(c*e^2*(m + 2*p + 1)*(m + 2*p + 2)), Int[(d + e*x)^m*(a + c*x^2)^(p - 1)*Simp[f*a*c*e^2*(m + 2*p + 2) + a*c*d*e*g*m - (c^2*f*d*e*(m + 2*p + 2) - g*(c^2*d^2*(2*p + 1) + a*c*e^2*(m + 2*p + 1)))*x, x], x], x] /; FreeQ[{a, c, d, e, f, g, m}, x] && NeQ[c*d^2 + a*e^2, 0] && GtQ[p, 0] && (IntegerQ[p] || !RationalQ[m] || (GeQ[m, -1] && LtQ[m, 0])) && !ILtQ[m + 2*p, 0] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(a + b*x + c*x^2)^p*ExpandIntegrand[(d + e*x)^m*(f + g*x), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && ILtQ[p, -1] && IGtQ[m, 0] && RationalQ[a, b, c, d, e, f, g]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(a + c*x^2)^p*ExpandIntegrand[(d + e*x)^m*(f + g*x), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && ILtQ[p, -1] && IGtQ[m, 0] && RationalQ[a, c, d, e, f, g]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1)*(2*a*c*(e*f + d*g) - b*(c*d*f + a*e*g) - (2*c^2*d*f + b^2*e*g - c*(b*e*f + b*d*g + 2*a*e*g))*x))/(c*(p + 1)*(b^2 - 4*a*c)), x] - Dist[1/(c*(p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m - 2)*(a + b*x + c*x^2)^(p + 1)*Simp[2*c^2*d^2*f*(2*p + 3) + b*e*g*(a*e*(m - 1) + b*d*(p + 2)) - c*(2*a*e*(e*f*(m - 1) + d*g*m) + b*d*(d*g*(2*p + 3) - e*f*(m - 2*p - 4))) + e*(b^2*e*g*(m + p + 1) + 2*c^2*d*f*(m + 2*p + 2) - c*(2*a*e*g*m + b*(e*f + d*g)*(m + 2*p + 2)))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 1] && ((EqQ[m, 2] && EqQ[p, -3] && RationalQ[a, b, c, d, e, f, g]) || !ILtQ[m + 2*p + 3, 0])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m - 1)*(a + c*x^2)^(p + 1)*(a*(e*f + d*g) - (c*d*f - a*e*g)*x))/(2*a*c*(p + 1)), x] - Dist[1/(2*a*c*(p + 1)), Int[(d + e*x)^(m - 2)*(a + c*x^2)^(p + 1)*Simp[a*e*(e*f*(m - 1) + d*g*m) - c*d^2*f*(2*p + 3) + e*(a*e*g*m - c*d*f*(m + 2*p + 2))*x, x], x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 1] && (EqQ[d, 0] || (EqQ[m, 2] && EqQ[p, -3] && RationalQ[a, c, d, e, f, g]) || !ILtQ[m + 2*p + 3, 0])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^m*(a + b*x + c*x^2)^(p + 1)*(f*b - 2*a*g + (2*c*f - b*g)*x))/((p + 1)*(b^2 - 4*a*c)), x] + Dist[1/((p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1)*Simp[g*(2*a*e*m + b*d*(2*p + 3)) - f*(b*e*m + 2*c*d*(2*p + 3)) - e*(2*c*f - b*g)*(m + 2*p + 3)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 0] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^m*(a + c*x^2)^(p + 1)*(a*g - c*f*x))/(2*a*c*(p + 1)), x] - Dist[1/(2*a*c*(p + 1)), Int[(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1)*Simp[a*e*g*m - c*d*f*(2*p + 3) - c*e*f*(m + 2*p + 3)*x, x], x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && GtQ[m, 0] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(f*(b*c*d - b^2*e + 2*a*c*e) - a*g*(2*c*d - b*e) + c*(f*(2*c*d - b*e) - g*(b*d - 2*a*e))*x)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(b^2 - 4*a*c)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/((p + 1)*(b^2 - 4*a*c)*(c*d^2 - b*d*e + a*e^2)), Int[(d + e*x)^m*(a + b*x + c*x^2)^(p + 1)*Simp[f*(b*c*d*e*(2*p - m + 2) + b^2*e^2*(p + m + 2) - 2*c^2*d^2*(2*p + 3) - 2*a*c*e^2*(m + 2*p + 3)) - g*(a*e*(b*e - 2*c*d*m + b*e*m) - b*d*(3*c*d - b*e + 2*c*d*p - b*e*p)) + c*e*(g*(b*d - 2*a*e) - f*(2*c*d - b*e))*(m + 2*p + 4)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[p, -1] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^(m + 1)*(f*a*c*e - a*g*c*d + c*(c*d*f + a*e*g)*x)*(a + c*x^2)^(p + 1))/(2*a*c*(p + 1)*(c*d^2 + a*e^2)), x] + Dist[1/(2*a*c*(p + 1)*(c*d^2 + a*e^2)), Int[(d + e*x)^m*(a + c*x^2)^(p + 1)*Simp[f*(c^2*d^2*(2*p + 3) + a*c*e^2*(m + 2*p + 3)) - a*c*d*e*g*m + c*e*(c*d*f + a*e*g)*(m + 2*p + 4)*x, x], x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(g*(d + e*x)^m)/(c*m), x] + Dist[1/c, Int[((d + e*x)^(m - 1)*Simp[c*d*f - a*e*g + (g*c*d - b*e*g + c*e*f)*x, x])/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && FractionQ[m] && GtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(g*(d + e*x)^m)/(c*m), x] + Dist[1/c, Int[((d + e*x)^(m - 1)*Simp[c*d*f - a*e*g + (g*c*d + c*e*f)*x, x])/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && FractionQ[m] && GtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[2, Subst[Int[(e*f - d*g + g*x^2)/(c*d^2 - b*d*e + a*e^2 - (2*c*d - b*e)*x^2 + c*x^4), x], x, Sqrt[d + e*x]], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[2, Subst[Int[(e*f - d*g + g*x^2)/(c*d^2 + a*e^2 - 2*c*d*x^2 + c*x^4), x], x, Sqrt[d + e*x]], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[((e*f - d*g)*(d + e*x)^(m + 1))/((m + 1)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/(c*d^2 - b*d*e + a*e^2), Int[((d + e*x)^(m + 1)*Simp[c*d*f - f*b*e + a*e*g - c*(e*f - d*g)*x, x])/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && FractionQ[m] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[((e*f - d*g)*(d + e*x)^(m + 1))/((m + 1)*(c*d^2 + a*e^2)), x] + Dist[1/(c*d^2 + a*e^2), Int[((d + e*x)^(m + 1)*Simp[c*d*f + a*e*g - c*(e*f - d*g)*x, x])/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g, m}, x] && NeQ[c*d^2 + a*e^2, 0] && FractionQ[m] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m, (f + g*x)/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !RationalQ[m]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m, (f + g*x)/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && !RationalQ[m]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(g*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/(c*(m + 2*p + 2)), x] + Dist[1/(c*(m + 2*p + 2)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^p*Simp[m*(c*d*f - a*e*g) + d*(2*c*f - b*g)*(p + 1) + (m*(c*e*f + c*d*g - b*e*g) + e*(p + 1)*(2*c*f - b*g))*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && GtQ[m, 0] && NeQ[m + 2*p + 2, 0] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p]) && !(IGtQ[m, 0] && EqQ[f, 0])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(g*(d + e*x)^m*(a + c*x^2)^(p + 1))/(c*(m + 2*p + 2)), x] + Dist[1/(c*(m + 2*p + 2)), Int[(d + e*x)^(m - 1)*(a + c*x^2)^p*Simp[c*d*f*(m + 2*p + 2) - a*e*g*m + c*(e*f*(m + 2*p + 2) + d*g*m)*x, x], x], x] /; FreeQ[{a, c, d, e, f, g, p}, x] && NeQ[c*d^2 + a*e^2, 0] && GtQ[m, 0] && NeQ[m + 2*p + 2, 0] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p]) && !(IGtQ[m, 0] && EqQ[f, 0])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((e*f - d*g)*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/((m + 1)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/((m + 1)*(c*d^2 - b*d*e + a*e^2)), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p*Simp[(c*d*f - f*b*e + a*e*g)*(m + 1) + b*(d*g - e*f)*(p + 1) - c*(e*f - d*g)*(m + 2*p + 3)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[m, -1] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((e*f - d*g)*(d + e*x)^(m + 1)*(a + c*x^2)^(p + 1))/((m + 1)*(c*d^2 + a*e^2)), x] + Dist[1/((m + 1)*(c*d^2 + a*e^2)), Int[(d + e*x)^(m + 1)*(a + c*x^2)^p*Simp[(c*d*f + a*e*g)*(m + 1) - c*(e*f - d*g)*(m + 2*p + 3)*x, x], x], x] /; FreeQ[{a, c, d, e, f, g, p}, x] && NeQ[c*d^2 + a*e^2, 0] && LtQ[m, -1] && (IntegerQ[m] || IntegerQ[p] || IntegersQ[2*m, 2*p])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((e*f - d*g)*(d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/((m + 1)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/((m + 1)*(c*d^2 - b*d*e + a*e^2)), Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p*Simp[(c*d*f - f*b*e + a*e*g)*(m + 1) + b*(d*g - e*f)*(p + 1) - c*(e*f - d*g)*(m + 2*p + 3)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && ILtQ[Simplify[m + 2*p + 3], 0] && NeQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((e*f - d*g)*(d + e*x)^(m + 1)*(a + c*x^2)^(p + 1))/((m + 1)*(c*d^2 + a*e^2)), x] + Dist[1/((m + 1)*(c*d^2 + a*e^2)), Int[(d + e*x)^(m + 1)*(a + c*x^2)^p*Simp[(c*d*f + a*e*g)*(m + 1) - c*(e*f - d*g)*(m + 2*p + 3)*x, x], x], x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && ILtQ[Simplify[m + 2*p + 3], 0] && NeQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(4*f*(a - d))/(b*d - a*e), Subst[Int[1/(4*(a - d) - x^2), x], x, (2*(a - d) + (b - e)*x)/Sqrt[a + b*x + c*x^2]], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && EqQ[4*c*(a - d) - (b - e)^2, 0] && EqQ[e*f*(b - e) - 2*g*(b*d - a*e), 0] && NeQ[b*d - a*e, 0]
Int[Times[Power[Pattern[x, Blank[]], Rational[-1, 2]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[2, Subst[Int[(f + g*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x, Sqrt[x]], x] /; FreeQ[{a, b, c, f, g}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Pattern[x, Blank[]], Rational[-1, 2]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[2, Subst[Int[(f + g*x^2)/Sqrt[a + c*x^4], x], x, Sqrt[x]], x] /; FreeQ[{a, c, f, g}, x]
Int[Times[Power[Times[Pattern[e, Blank[]], Pattern[x, Blank[]]], Rational[-1, 2]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[x]/Sqrt[e*x], Int[(f + g*x)/(Sqrt[x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Times[Pattern[e, Blank[]], Pattern[x, Blank[]]], Rational[-1, 2]], Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[x]/Sqrt[e*x], Int[(f + g*x)/(Sqrt[x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, e, f, g}, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[g/e, Int[(d + e*x)^(m + 1)*(a + b*x + c*x^2)^p, x], x] + Dist[(e*f - d*g)/e, Int[(d + e*x)^m*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IGtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[g/e, Int[(d + e*x)^(m + 1)*(a + c*x^2)^p, x], x] + Dist[(e*f - d*g)/e, Int[(d + e*x)^m*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && NeQ[c*d^2 + a*e^2, 0] && !IGtQ[m, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[n, Blank[]]]], Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*x^(m + 2)*(f + g*x)^(n + 1))/(g*(m + n + 3)), x] /; FreeQ[{b, c, f, g, m, n}, x] && EqQ[c*f*(m + 2) - b*g*(m + n + 3), 0] && NeQ[m + n + 3, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/(c^IntPart[p]*(b/2 + c*x)^(2*FracPart[p])), Int[(d + e*x)^m*(f + g*x)^n*(b/2 + c*x)^(2*p), x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n}, x] && NeQ[e*f - d*g, 0] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^(m + p)*(f + g*x)^n*(a/d + (c*x)/e)^p, x] /; FreeQ[{a, b, c, d, e, f, g, m, n}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[p] && !IGtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^(m + p)*(f + g*x)^n*(a/d + (c*x)/e)^p, x] /; FreeQ[{a, c, d, e, f, g, m, n}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && (IntegerQ[p] || (GtQ[a, 0] && GtQ[d, 0] && EqQ[m + p, 0]))
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[x^n*(a/d + (c*x)/e)*(a + b*x + c*x^2)^(p - 1), x] /; FreeQ[{a, b, c, d, e, n, p}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && ( !IntegerQ[n] || !IntegerQ[2*p] || IGtQ[n, 2] || (GtQ[p, 0] && NeQ[n, 2]))
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[x^n*(a/d + (c*x)/e)*(a + c*x^2)^(p - 1), x] /; FreeQ[{a, c, d, e, n, p}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && ( !IntegerQ[n] || !IntegerQ[2*p] || IGtQ[n, 2] || (GtQ[p, 0] && NeQ[n, 2]))
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[((f + g*x)^n*(a + b*x + c*x^2)^(m + p))/(a/d + (c*x)/e)^m, x] /; FreeQ[{a, b, c, d, e, f, g, n, p}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && ILtQ[m, 0] && IntegerQ[n] && (LtQ[n, 0] || GtQ[p, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[d^(2*m)/a^m, Int[((f + g*x)^n*(a + c*x^2)^(m + p))/(d - e*x)^m, x], x] /; FreeQ[{a, c, d, e, f, g, n, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[f, 0] && ILtQ[m, -1] && !(IGtQ[n, 0] && ILtQ[m + n, 0] && !GtQ[p, 1])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[d^(2*m)/a^m, Int[((f + g*x)^n*(a + c*x^2)^(m + p))/(d - e*x)^m, x], x] /; FreeQ[{a, c, d, e, f, g, n, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && ILtQ[m, 0] && IntegerQ[n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((2*c*d - b*e)*(f + g*x)^n*(a + b*x + c*x^2)^(p + 1))/(e*p*(b^2 - 4*a*c)*(d + e*x)), x] - Dist[1/(d*e*p*(b^2 - 4*a*c)), Int[(f + g*x)^(n - 1)*(a + b*x + c*x^2)^p*Simp[b*(a*e*g*n - c*d*f*(2*p + 1)) - 2*a*c*(d*g*n - e*f*(2*p + 1)) - c*g*(b*d - 2*a*e)*(n + 2*p + 1)*x, x], x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && IGtQ[n, 0] && ILtQ[n + 2*p, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(f + g*x)^n*(a + c*x^2)^(p + 1))/(2*a*e*p*(d + e*x)), x] - Dist[1/(2*d*e*p), Int[(f + g*x)^(n - 1)*(a + c*x^2)^p*Simp[d*g*n - e*f*(2*p + 1) - e*g*(n + 2*p + 1)*x, x], x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && IGtQ[n, 0] && ILtQ[n + 2*p, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((f + g*x)^(n + 1)*(a + b*x + c*x^2)^p*(c*d - b*e - c*e*x))/(p*(2*c*d - b*e)*(e*f - d*g)), x] + Dist[1/(p*(2*c*d - b*e)*(e*f - d*g)), Int[(f + g*x)^n*(a + b*x + c*x^2)^p*(b*e*g*(n + p + 1) + c*e*f*(2*p + 1) - c*d*g*(n + 2*p + 1) + c*e*g*(n + 2*p + 2)*x), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && ILtQ[n, 0] && ILtQ[n + 2*p, 0] && !IGtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(f + g*x)^(n + 1)*(a + c*x^2)^(p + 1))/(2*a*p*(e*f - d*g)*(d + e*x)), x] + Dist[1/(p*(2*c*d)*(e*f - d*g)), Int[(f + g*x)^n*(a + c*x^2)^p*(c*e*f*(2*p + 1) - c*d*g*(n + 2*p + 1) + c*e*g*(n + 2*p + 2)*x), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && ILtQ[n, 0] && ILtQ[n + 2*p, 0] && !IGtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e*(d + e*x)^(m - 1)*(f + g*x)^n*(a + b*x + c*x^2)^(p + 1))/(c*(m - n - 1)), x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && EqQ[c*e*f + c*d*g - b*e*g, 0] && NeQ[m - n - 1, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e*(d + e*x)^(m - 1)*(f + g*x)^n*(a + c*x^2)^(p + 1))/(c*(m - n - 1)), x] /; FreeQ[{a, c, d, e, f, g, m, n, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && EqQ[e*f + d*g, 0] && NeQ[m - n - 1, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e^2*(d + e*x)^(m - 1)*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^(p + 1))/((n + 1)*(c*e*f + c*d*g - b*e*g)), x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && EqQ[m - n - 2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e^2*(d + e*x)^(m - 1)*(f + g*x)^(n + 1)*(a + c*x^2)^(p + 1))/(c*(n + 1)*(e*f + d*g)), x] /; FreeQ[{a, c, d, e, f, g, m, n, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && EqQ[m - n - 2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^m*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^p)/(g*(n + 1)), x] + Dist[(c*m)/(e*g*(n + 1)), Int[(d + e*x)^(m + 1)*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && GtQ[p, 0] && LtQ[n, -1] && !(IntegerQ[n + p] && LeQ[n + p + 2, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^m*(f + g*x)^(n + 1)*(a + c*x^2)^p)/(g*(n + 1)), x] + Dist[(c*m)/(e*g*(n + 1)), Int[(d + e*x)^(m + 1)*(f + g*x)^(n + 1)*(a + c*x^2)^(p - 1), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && GtQ[p, 0] && LtQ[n, -1] && !(IntegerQ[n + p] && LeQ[n + p + 2, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^m*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^p)/(g*(m - n - 1)), x] - Dist[(m*(c*e*f + c*d*g - b*e*g))/(e^2*g*(m - n - 1)), Int[(d + e*x)^(m + 1)*(f + g*x)^n*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e, f, g, n}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && GtQ[p, 0] && NeQ[m - n - 1, 0] && !IGtQ[n, 0] && !(IntegerQ[n + p] && LtQ[n + p + 2, 0]) && RationalQ[n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d + e*x)^m*(f + g*x)^(n + 1)*(a + c*x^2)^p)/(g*(m - n - 1)), x] - Dist[(c*m*(e*f + d*g))/(e^2*g*(m - n - 1)), Int[(d + e*x)^(m + 1)*(f + g*x)^n*(a + c*x^2)^(p - 1), x], x] /; FreeQ[{a, c, d, e, f, g, n}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && GtQ[p, 0] && NeQ[m - n - 1, 0] && !IGtQ[n, 0] && !(IntegerQ[n + p] && LtQ[n + p + 2, 0]) && RationalQ[n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(f + g*x)^n*(a + b*x + c*x^2)^(p + 1))/(c*(p + 1)), x] - Dist[(e*g*n)/(c*(p + 1)), Int[(d + e*x)^(m - 1)*(f + g*x)^(n - 1)*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && LtQ[p, -1] && GtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m - 1)*(f + g*x)^n*(a + c*x^2)^(p + 1))/(c*(p + 1)), x] - Dist[(e*g*n)/(c*(p + 1)), Int[(d + e*x)^(m - 1)*(f + g*x)^(n - 1)*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && LtQ[p, -1] && GtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(d + e*x)^(m - 1)*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^(p + 1))/((p + 1)*(c*e*f + c*d*g - b*e*g)), x] + Dist[(e^2*g*(m - n - 2))/((p + 1)*(c*e*f + c*d*g - b*e*g)), Int[(d + e*x)^(m - 1)*(f + g*x)^n*(a + b*x + c*x^2)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, f, g, n}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && LtQ[p, -1] && RationalQ[n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(d + e*x)^(m - 1)*(f + g*x)^(n + 1)*(a + c*x^2)^(p + 1))/(c*(p + 1)*(e*f + d*g)), x] + Dist[(e^2*g*(m - n - 2))/(c*(p + 1)*(e*f + d*g)), Int[(d + e*x)^(m - 1)*(f + g*x)^n*(a + c*x^2)^(p + 1), x], x] /; FreeQ[{a, c, d, e, f, g, n}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && LtQ[p, -1] && RationalQ[n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e*(d + e*x)^(m - 1)*(f + g*x)^n*(a + b*x + c*x^2)^(p + 1))/(c*(m - n - 1)), x] - Dist[(n*(c*e*f + c*d*g - b*e*g))/(c*e*(m - n - 1)), Int[(d + e*x)^m*(f + g*x)^(n - 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && GtQ[n, 0] && NeQ[m - n - 1, 0] && (IntegerQ[2*p] || IntegerQ[n])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e*(d + e*x)^(m - 1)*(f + g*x)^n*(a + c*x^2)^(p + 1))/(c*(m - n - 1)), x] - Dist[(n*(e*f + d*g))/(e*(m - n - 1)), Int[(d + e*x)^m*(f + g*x)^(n - 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && GtQ[n, 0] && NeQ[m - n - 1, 0] && (IntegerQ[2*p] || IntegerQ[n])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e^2*(d + e*x)^(m - 1)*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^(p + 1))/((n + 1)*(c*e*f + c*d*g - b*e*g)), x] - Dist[(c*e*(m - n - 2))/((n + 1)*(c*e*f + c*d*g - b*e*g)), Int[(d + e*x)^m*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && LtQ[n, -1] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(e^2*(d + e*x)^(m - 1)*(f + g*x)^(n + 1)*(a + c*x^2)^(p + 1))/((n + 1)*(c*e*f + c*d*g)), x] - Dist[(e*(m - n - 2))/((n + 1)*(e*f + d*g)), Int[(d + e*x)^m*(f + g*x)^(n + 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p, 0] && LtQ[n, -1] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[2*e^2, Subst[Int[1/(c*(e*f + d*g) - b*e*g + e^2*g*x^2), x], x, Sqrt[a + b*x + c*x^2]/Sqrt[d + e*x]], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[2*e^2, Subst[Int[1/(c*(e*f + d*g) + e^2*g*x^2), x], x, Sqrt[a + c*x^2]/Sqrt[d + e*x]], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(d + e*x)^(m - 2)*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^(p + 1))/(c*g*(n + p + 2)), x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p - 1, 0] && EqQ[b*e*g*(n + 1) + c*e*f*(p + 1) - c*d*g*(2*n + p + 3), 0] && NeQ[n + p + 2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(d + e*x)^(m - 2)*(f + g*x)^(n + 1)*(a + c*x^2)^(p + 1))/(c*g*(n + p + 2)), x] /; FreeQ[{a, c, d, e, f, g, m, n, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p - 1, 0] && EqQ[e*f*(p + 1) - d*g*(2*n + p + 3), 0] && NeQ[n + p + 2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(e*f - d*g)*(d + e*x)^(m - 2)*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^(p + 1))/(g*(n + 1)*(c*e*f + c*d*g - b*e*g)), x] - Dist[(e*(b*e*g*(n + 1) + c*e*f*(p + 1) - c*d*g*(2*n + p + 3)))/(g*(n + 1)*(c*e*f + c*d*g - b*e*g)), Int[(d + e*x)^(m - 1)*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, p}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p - 1, 0] && LtQ[n, -1] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(e*f - d*g)*(d + e*x)^(m - 2)*(f + g*x)^(n + 1)*(a + c*x^2)^(p + 1))/(c*g*(n + 1)*(e*f + d*g)), x] - Dist[(e*(e*f*(p + 1) - d*g*(2*n + p + 3)))/(g*(n + 1)*(e*f + d*g)), Int[(d + e*x)^(m - 1)*(f + g*x)^(n + 1)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p - 1, 0] && LtQ[n, -1] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(d + e*x)^(m - 2)*(f + g*x)^(n + 1)*(a + b*x + c*x^2)^(p + 1))/(c*g*(n + p + 2)), x] - Dist[(b*e*g*(n + 1) + c*e*f*(p + 1) - c*d*g*(2*n + p + 3))/(c*g*(n + p + 2)), Int[(d + e*x)^(m - 1)*(f + g*x)^n*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p - 1, 0] && !LtQ[n, -1] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(d + e*x)^(m - 2)*(f + g*x)^(n + 1)*(a + c*x^2)^(p + 1))/(c*g*(n + p + 2)), x] - Dist[(e*f*(p + 1) - d*g*(2*n + p + 3))/(g*(n + p + 2)), Int[(d + e*x)^(m - 1)*(f + g*x)^n*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, n, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + p - 1, 0] && !LtQ[n, -1] && IntegerQ[2*p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, n, p}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && ILtQ[m, 0] && (ILtQ[n, 0] || (IGtQ[n, 0] && ILtQ[p + 1/2, 0])) && !IGtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[1/Sqrt[a + c*x^2], (d + e*x)^m*(f + g*x)^n*(a + c*x^2)^(p + 1/2), x], x] /; FreeQ[{a, c, d, e, f, g, n, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && IntegerQ[p - 1/2] && ILtQ[m, 0] && ILtQ[n, 0] && !IGtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, n, p}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && ILtQ[m, 0] && (ILtQ[n, 0] || (IGtQ[n, 0] && ILtQ[p + 1/2, 0])) && !IGtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{Q = PolynomialQuotient[(f + g*x)^n, a*e + c*d*x, x], h = PolynomialRemainder[(f + g*x)^n, a*e + c*d*x, x]}, Simp[(h*(2*c*d - b*e)*(d + e*x)^m*(a + b*x + c*x^2)^(p + 1))/(e*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/((p + 1)*(b^2 - 4*a*c)), Int[(d + e*x)^(m - 1)*(a + b*x + c*x^2)^(p + 1)*ExpandToSum[d*e*(p + 1)*(b^2 - 4*a*c)*Q - h*(2*c*d - b*e)*(m + 2*p + 2), x], x], x]] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && ILtQ[p + 1/2, 0] && IGtQ[m, 0] && IGtQ[n, 0] && !IGtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{Q = PolynomialQuotient[(f + g*x)^n, a*e + c*d*x, x], h = PolynomialRemainder[(f + g*x)^n, a*e + c*d*x, x]}, -Simp[(d*h*(d + e*x)^m*(a + c*x^2)^(p + 1))/(2*a*e*(p + 1)), x] + Dist[d/(2*a*(p + 1)), Int[(d + e*x)^(m - 1)*(a + c*x^2)^(p + 1)*ExpandToSum[2*a*e*(p + 1)*Q + h*(m + 2*p + 2), x], x], x]] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && ILtQ[p + 1/2, 0] && IGtQ[m, 0] && IGtQ[n, 0] && !IGtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x + c*x^2)^p, (d + e*x)^m*(f + g*x)^n, x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && EqQ[m + n + 2*p + 1, 0] && ILtQ[m, 0] && ILtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + c*x^2)^p, (d + e*x)^m*(f + g*x)^n, x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && EqQ[m + n + 2*p + 1, 0] && ILtQ[m, 0] && ILtQ[n, 0]
Int[Times[Power[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((e*x)^m*(b*x + c*x^2)^p)/(x^(m + p)*(b + c*x)^p), Int[x^(m + p)*(f + g*x)^n*(b + c*x)^p, x], x] /; FreeQ[{b, c, e, f, g, m, n}, x] && !IntegerQ[p] && !IGtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x)^(m + p)*(f + g*x)^n*(a/d + (c*x)/e)^p, x] /; FreeQ[{a, c, d, e, f, g, m, n}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && GtQ[a, 0] && GtQ[d, 0] && !IGtQ[m, 0] && !IGtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/((d + e*x)^FracPart[p]*(a/d + (c*x)/e)^FracPart[p]), Int[(d + e*x)^(m + p)*(f + g*x)^n*(a/d + (c*x)/e)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p] && !IGtQ[m, 0] && !IGtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + c*x^2)^FracPart[p]/((d + e*x)^FracPart[p]*(a/d + (c*x)/e)^FracPart[p]), Int[(d + e*x)^(m + p)*(f + g*x)^n*(a/d + (c*x)/e)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, n}, x] && NeQ[e*f - d*g, 0] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && !IGtQ[m, 0] && !IGtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[p] && ((EqQ[p, 1] && IntegersQ[m, n]) || (ILtQ[m, 0] && ILtQ[n, 0]))
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[p] && ((EqQ[p, 1] && IntegersQ[m, n]) || (ILtQ[m, 0] && ILtQ[n, 0]))
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c*d^2 - b*d*e + a*e^2)/(e*(e*f - d*g)), Int[(a + b*x + c*x^2)^(p - 1)/(d + e*x), x], x] - Dist[1/(e*(e*f - d*g)), Int[(Simp[c*d*f - b*e*f + a*e*g - c*(e*f - d*g)*x, x]*(a + b*x + c*x^2)^(p - 1))/(f + g*x), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && FractionQ[p] && GtQ[p, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c*d^2 + a*e^2)/(e*(e*f - d*g)), Int[(a + c*x^2)^(p - 1)/(d + e*x), x], x] - Dist[1/(e*(e*f - d*g)), Int[(Simp[c*d*f + a*e*g - c*(e*f - d*g)*x, x]*(a + c*x^2)^(p - 1))/(f + g*x), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && FractionQ[p] && GtQ[p, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{q = Denominator[m]}, Dist[q/e, Subst[Int[x^(q*(m + 1) - 1)*((e*f - d*g)/e + (g*x^q)/e)^n*((c*d^2 - b*d*e + a*e^2)/e^2 - ((2*c*d - b*e)*x^q)/e^2 + (c*x^(2*q))/e^2)^p, x], x, (d + e*x)^(1/q)], x]] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegersQ[n, p] && FractionQ[m]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{q = Denominator[m]}, Dist[q/e, Subst[Int[x^(q*(m + 1) - 1)*((e*f - d*g)/e + (g*x^q)/e)^n*((c*d^2 + a*e^2)/e^2 - (2*c*d*x^q)/e^2 + (c*x^(2*q))/e^2)^p, x], x, (d + e*x)^(1/q)], x]] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegersQ[n, p] && FractionQ[m]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d*f + e*g*x^2)^m*(a + b*x + c*x^2)^p, x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x] && EqQ[m - n, 0] && EqQ[e*f + d*g, 0] && (IntegerQ[m] || (GtQ[d, 0] && GtQ[f, 0]))
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d*f + e*g*x^2)^m*(a + c*x^2)^p, x] /; FreeQ[{a, c, d, e, f, g, m, n, p}, x] && EqQ[m - n, 0] && EqQ[e*f + d*g, 0] && (IntegerQ[m] || (GtQ[d, 0] && GtQ[f, 0]))
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[((d + e*x)^FracPart[m]*(f + g*x)^FracPart[m])/(d*f + e*g*x^2)^FracPart[m], Int[(d*f + e*g*x^2)^m*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x] && EqQ[m - n, 0] && EqQ[e*f + d*g, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((d + e*x)^FracPart[m]*(f + g*x)^FracPart[m])/(d*f + e*g*x^2)^FracPart[m], Int[(d*f + e*g*x^2)^m*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g, m, n, p}, x] && EqQ[m - n, 0] && EqQ[e*f + d*g, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[g/c^2, Int[Simp[2*c*e*f + c*d*g - b*e*g + c*e*g*x, x]*(d + e*x)^(m - 1)*(f + g*x)^(n - 2), x], x] + Dist[1/c^2, Int[(Simp[c^2*d*f^2 - 2*a*c*e*f*g - a*c*d*g^2 + a*b*e*g^2 + (c^2*e*f^2 + 2*c^2*d*f*g - 2*b*c*e*f*g - b*c*d*g^2 + b^2*e*g^2 - a*c*e*g^2)*x, x]*(d + e*x)^(m - 1)*(f + g*x)^(n - 2))/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[m] && !IntegerQ[n] && GtQ[m, 0] && GtQ[n, 1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[g/c, Int[Simp[2*e*f + d*g + e*g*x, x]*(d + e*x)^(m - 1)*(f + g*x)^(n - 2), x], x] + Dist[1/c, Int[(Simp[c*d*f^2 - 2*a*e*f*g - a*d*g^2 + (c*e*f^2 + 2*c*d*f*g - a*e*g^2)*x, x]*(d + e*x)^(m - 1)*(f + g*x)^(n - 2))/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[m] && !IntegerQ[n] && GtQ[m, 0] && GtQ[n, 1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(e*g)/c, Int[(d + e*x)^(m - 1)*(f + g*x)^(n - 1), x], x] + Dist[1/c, Int[(Simp[c*d*f - a*e*g + (c*e*f + c*d*g - b*e*g)*x, x]*(d + e*x)^(m - 1)*(f + g*x)^(n - 1))/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[m] && !IntegerQ[n] && GtQ[m, 0] && GtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(e*g)/c, Int[(d + e*x)^(m - 1)*(f + g*x)^(n - 1), x], x] + Dist[1/c, Int[(Simp[c*d*f - a*e*g + (c*e*f + c*d*g)*x, x]*(d + e*x)^(m - 1)*(f + g*x)^(n - 1))/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[m] && !IntegerQ[n] && GtQ[m, 0] && GtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := -Dist[(g*(e*f - d*g))/(c*f^2 - b*f*g + a*g^2), Int[(d + e*x)^(m - 1)*(f + g*x)^n, x], x] + Dist[1/(c*f^2 - b*f*g + a*g^2), Int[(Simp[c*d*f - b*d*g + a*e*g + c*(e*f - d*g)*x, x]*(d + e*x)^(m - 1)*(f + g*x)^(n + 1))/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[m] && !IntegerQ[n] && GtQ[m, 0] && LtQ[n, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := -Dist[(g*(e*f - d*g))/(c*f^2 + a*g^2), Int[(d + e*x)^(m - 1)*(f + g*x)^n, x], x] + Dist[1/(c*f^2 + a*g^2), Int[(Simp[c*d*f + a*e*g + c*(e*f - d*g)*x, x]*(d + e*x)^(m - 1)*(f + g*x)^(n + 1))/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[m] && !IntegerQ[n] && GtQ[m, 0] && LtQ[n, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[1/(Sqrt[d + e*x]*Sqrt[f + g*x]), (d + e*x)^(m + 1/2)/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[m + 1/2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[1/(Sqrt[d + e*x]*Sqrt[f + g*x]), (d + e*x)^(m + 1/2)/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[m + 1/2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n, 1/(a + b*x + c*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, g, m, n}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[m] && !IntegerQ[n]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n, 1/(a + c*x^2), x], x] /; FreeQ[{a, c, d, e, f, g, m, n}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[m] && !IntegerQ[n]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + b*x + c*x^2)^(p + 1))/(c*e*(m + 2*p + 3)), x] /; FreeQ[{a, b, c, d, e, m, p}, x] && EqQ[b*e*(m + p + 2) + 2*c*d*(p + 1), 0] && EqQ[b*d*(p + 1) + a*e*(m + 1), 0] && NeQ[m + 2*p + 3, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*(a + c*x^2)^(p + 1))/(c*e*(m + 2*p + 3)), x] /; FreeQ[{a, c, d, e, m, p}, x] && EqQ[d*(p + 1), 0] && EqQ[a*(m + 1), 0] && NeQ[m + 2*p + 3, 0]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[((d + e*x)^FracPart[p]*(a + b*x + c*x^2)^FracPart[p])/(a*d + c*e*x^3)^FracPart[p], Int[(g*x)^n*(a*d + c*e*x^3)^p, x], x] /; FreeQ[{a, b, c, d, e, g, m, n, p}, x] && EqQ[m - p, 0] && EqQ[b*d + a*e, 0] && EqQ[c*d + b*e, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2])/(e*(m + 1)), x] - Dist[1/(2*e*(m + 1)), Int[((d + e*x)^(m + 1)*Simp[b*f + a*g + 2*(c*f + b*g)*x + 3*c*g*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[2*m] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + c*x^2])/(e*(m + 1)), x] - Dist[1/(2*e*(m + 1)), Int[((d + e*x)^(m + 1)*Simp[a*g + 2*c*f*x + 3*c*g*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[2*m] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*(d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2])/(e*(2*m + 5)), x] - Dist[1/(e*(2*m + 5)), Int[((d + e*x)^m*Simp[b*d*f - 3*a*e*f + a*d*g + 2*(c*d*f - b*e*f + b*d*g - a*e*g)*x - (c*e*f - 3*c*d*g + b*e*g)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g, m}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[2*m] && !LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*(d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + c*x^2])/(e*(2*m + 5)), x] + Dist[1/(e*(2*m + 5)), Int[((d + e*x)^m*Simp[3*a*e*f - a*d*g - 2*(c*d*f - a*e*g)*x + (c*e*f - 3*c*d*g)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g, m}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[2*m] && !LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*(d + e*x)^m*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2])/(g*(2*m + 3)), x] - Dist[1/(g*(2*m + 3)), Int[((d + e*x)^(m - 1)*Simp[b*d*f + 2*a*(e*f*m - d*g*(m + 1)) + (2*c*d*f - 2*a*e*g + b*(e*f - d*g)*(2*m + 1))*x - (b*e*g + 2*c*(d*g*m - e*f*(m + 1)))*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[2*m] && GtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*(d + e*x)^m*Sqrt[f + g*x]*Sqrt[a + c*x^2])/(g*(2*m + 3)), x] - Dist[1/(g*(2*m + 3)), Int[((d + e*x)^(m - 1)*Simp[2*a*(e*f*m - d*g*(m + 1)) + (2*c*d*f - 2*a*e*g)*x - (2*c*(d*g*m - e*f*(m + 1)))*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[2*m] && GtQ[m, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(c*d^2 - b*d*e + a*e^2)/e^2, Int[1/((d + e*x)*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] - Dist[1/e^2, Int[(c*d - b*e - c*e*x)/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(c*d^2 + a*e^2)/e^2, Int[1/((d + e*x)*Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] - Dist[1/e^2, Int[(c*d - c*e*x)/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2])/((m + 1)*(e*f - d*g)), x] - Dist[1/(2*(m + 1)*(e*f - d*g)), Int[((d + e*x)^(m + 1)*Simp[b*f + a*g*(2*m + 3) + 2*(c*f + b*g*(m + 2))*x + c*g*(2*m + 5)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[2*m] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[((d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + c*x^2])/((m + 1)*(e*f - d*g)), x] - Dist[1/(2*(m + 1)*(e*f - d*g)), Int[((d + e*x)^(m + 1)*Simp[a*g*(2*m + 3) + 2*(c*f)*x + c*g*(2*m + 5)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[2*m] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[(Sqrt[2]*Sqrt[2*c*f - g*(b + q)]*Sqrt[b - q + 2*c*x]*(d + e*x)*Sqrt[((e*f - d*g)*(b + q + 2*c*x))/((2*c*f - g*(b + q))*(d + e*x))]*Sqrt[((e*f - d*g)*(2*a + (b + q)*x))/((b*f + q*f - 2*a*g)*(d + e*x))]*EllipticPi[(e*(2*c*f - g*(b + q)))/(g*(2*c*d - e*(b + q))), ArcSin[(Sqrt[2*c*d - e*(b + q)]*Sqrt[f + g*x])/(Sqrt[2*c*f - g*(b + q)]*Sqrt[d + e*x])], ((b*d + q*d - 2*a*e)*(2*c*f - g*(b + q)))/((b*f + q*f - 2*a*g)*(2*c*d - e*(b + q)))])/(g*Sqrt[2*c*d - e*(b + q)]*Sqrt[(2*a*c)/(b + q) + c*x]*Sqrt[a + b*x + c*x^2]), x]] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-4*a*c, 2]}, Simp[(Sqrt[2]*Sqrt[2*c*f - g*q]*Sqrt[-q + 2*c*x]*(d + e*x)*Sqrt[((e*f - d*g)*(q + 2*c*x))/((2*c*f - g*q)*(d + e*x))]*Sqrt[((e*f - d*g)*(2*a + q*x))/((q*f - 2*a*g)*(d + e*x))]*EllipticPi[(e*(2*c*f - g*q))/(g*(2*c*d - e*q)), ArcSin[(Sqrt[2*c*d - e*q]*Sqrt[f + g*x])/(Sqrt[2*c*f - g*q]*Sqrt[d + e*x])], ((q*d - 2*a*e)*(2*c*f - g*q))/((q*f - 2*a*g)*(2*c*d - e*q))])/(g*Sqrt[2*c*d - e*q]*Sqrt[(2*a*c)/q + c*x]*Sqrt[a + c*x^2]), x]] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[3, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[e/g, Int[(Sqrt[d + e*x]*Sqrt[f + g*x])/Sqrt[a + b*x + c*x^2], x], x] - Dist[(e*f - d*g)/g, Int[Sqrt[d + e*x]/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[3, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[e/g, Int[(Sqrt[d + e*x]*Sqrt[f + g*x])/Sqrt[a + c*x^2], x], x] - Dist[(e*f - d*g)/g, Int[Sqrt[d + e*x]/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*e^2*(d + e*x)^(m - 2)*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2])/(c*g*(2*m - 1)), x] - Dist[1/(c*g*(2*m - 1)), Int[((d + e*x)^(m - 3)*Simp[b*d*e^2*f + a*e^2*(d*g + 2*e*f*(m - 2)) - c*d^3*g*(2*m - 1) + e*(e*(2*b*d*g + e*(b*f + a*g)*(2*m - 3)) + c*d*(2*e*f - 3*d*g*(2*m - 1)))*x + 2*e^2*(c*e*f - 3*c*d*g + b*e*g)*(m - 1)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[2*m] && GeQ[m, 2]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*e^2*(d + e*x)^(m - 2)*Sqrt[f + g*x]*Sqrt[a + c*x^2])/(c*g*(2*m - 1)), x] - Dist[1/(c*g*(2*m - 1)), Int[((d + e*x)^(m - 3)*Simp[a*e^2*(d*g + 2*e*f*(m - 2)) - c*d^3*g*(2*m - 1) + e*(e*(a*e*g*(2*m - 3)) + c*d*(2*e*f - 3*d*g*(2*m - 1)))*x + 2*e^2*(c*e*f - 3*c*d*g)*(m - 1)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[2*m] && GeQ[m, 2]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(c/a), 2]}, Dist[1/Sqrt[a], Int[1/((d + e*x)*Sqrt[f + g*x]*Sqrt[1 - q*x]*Sqrt[1 + q*x]), x], x]] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && GtQ[a, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(c/a), 2]}, Dist[Sqrt[1 + (c*x^2)/a]/Sqrt[a + c*x^2], Int[1/((d + e*x)*Sqrt[f + g*x]*Sqrt[1 - q*x]*Sqrt[1 + q*x]), x], x]] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && !GtQ[a, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(Sqrt[b - q + 2*c*x]*Sqrt[b + q + 2*c*x])/Sqrt[a + b*x + c*x^2], Int[1/((d + e*x)*Sqrt[f + g*x]*Sqrt[b - q + 2*c*x]*Sqrt[b + q + 2*c*x]), x], x]] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(-2*(d + e*x)*Sqrt[((e*f - d*g)^2*(a + b*x + c*x^2))/((c*f^2 - b*f*g + a*g^2)*(d + e*x)^2)])/((e*f - d*g)*Sqrt[a + b*x + c*x^2]), Subst[Int[1/Sqrt[1 - ((2*c*d*f - b*e*f - b*d*g + 2*a*e*g)*x^2)/(c*f^2 - b*f*g + a*g^2) + ((c*d^2 - b*d*e + a*e^2)*x^4)/(c*f^2 - b*f*g + a*g^2)], x], x, Sqrt[f + g*x]/Sqrt[d + e*x]], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(-2*(d + e*x)*Sqrt[((e*f - d*g)^2*(a + c*x^2))/((c*f^2 + a*g^2)*(d + e*x)^2)])/((e*f - d*g)*Sqrt[a + c*x^2]), Subst[Int[1/Sqrt[1 - ((2*c*d*f + 2*a*e*g)*x^2)/(c*f^2 + a*g^2) + ((c*d^2 + a*e^2)*x^4)/(c*f^2 + a*g^2)], x], x, Sqrt[f + g*x]/Sqrt[d + e*x]], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-3, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Dist[g/(e*f - d*g), Int[1/(Sqrt[d + e*x]*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] + Dist[e/(e*f - d*g), Int[Sqrt[f + g*x]/((d + e*x)^(3/2)*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Rational[-3, 2]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Dist[g/(e*f - d*g), Int[1/(Sqrt[d + e*x]*Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] + Dist[e/(e*f - d*g), Int[Sqrt[f + g*x]/((d + e*x)^(3/2)*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2])/((m + 1)*(e*f - d*g)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/(2*(m + 1)*(e*f - d*g)*(c*d^2 - b*d*e + a*e^2)), Int[((d + e*x)^(m + 1)*Simp[2*d*(c*e*f - c*d*g + b*e*g)*(m + 1) - e^2*(b*f + a*g)*(2*m + 3) + 2*e*(c*d*g*(m + 1) - e*(c*f + b*g)*(m + 2))*x - c*e^2*g*(2*m + 5)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[2*m] && LeQ[m, -2]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(e^2*(d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + c*x^2])/((m + 1)*(e*f - d*g)*(c*d^2 + a*e^2)), x] + Dist[1/(2*(m + 1)*(e*f - d*g)*(c*d^2 + a*e^2)), Int[((d + e*x)^(m + 1)*Simp[2*d*(c*e*f - c*d*g)*(m + 1) - a*e^2*g*(2*m + 3) + 2*e*(c*d*g*(m + 1) - c*e*f*(m + 2))*x - c*e^2*g*(2*m + 5)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[2*m] && LeQ[m, -2]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*e*(d + e*x)^(m - 1)*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2])/(c*(2*m + 1)), x] - Dist[1/(c*(2*m + 1)), Int[((d + e*x)^(m - 2)*Simp[e*(b*d*f + a*(d*g + 2*e*f*(m - 1))) - c*d^2*f*(2*m + 1) + (a*e^2*g*(2*m - 1) - c*d*(4*e*f*m + d*g*(2*m + 1)) + b*e*(2*d*g + e*f*(2*m - 1)))*x + e*(2*b*e*g*m - c*(e*f + d*g*(4*m - 1)))*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[2*m] && GtQ[m, 1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(2*e*(d + e*x)^(m - 1)*Sqrt[f + g*x]*Sqrt[a + c*x^2])/(c*(2*m + 1)), x] - Dist[1/(c*(2*m + 1)), Int[((d + e*x)^(m - 2)*Simp[a*e*(d*g + 2*e*f*(m - 1)) - c*d^2*f*(2*m + 1) + (a*e^2*g*(2*m - 1) - c*d*(4*e*f*m + d*g*(2*m + 1)))*x - c*e*(e*f + d*g*(4*m - 1))*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[2*m] && GtQ[m, 1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[g/e, Int[1/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] + Dist[(e*f - d*g)/e, Int[1/((d + e*x)*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[g/e, Int[1/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] + Dist[(e*f - d*g)/e, Int[1/((d + e*x)*Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2])/((m + 1)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/(2*(m + 1)*(c*d^2 - b*d*e + a*e^2)), Int[((d + e*x)^(m + 1)*Simp[2*c*d*f*(m + 1) - e*(a*g + b*f*(2*m + 3)) - 2*(b*e*g*(2 + m) - c*(d*g*(m + 1) - e*f*(m + 2)))*x - c*e*g*(2*m + 5)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[2*m] && LeQ[m, -2]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Rational[1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(d + e*x)^(m + 1)*Sqrt[f + g*x]*Sqrt[a + c*x^2])/((m + 1)*(c*d^2 + a*e^2)), x] + Dist[1/(2*(m + 1)*(c*d^2 + a*e^2)), Int[((d + e*x)^(m + 1)*Simp[2*c*d*f*(m + 1) - e*(a*g) + 2*c*(d*g*(m + 1) - e*f*(m + 2))*x - c*e*g*(2*m + 5)*x^2, x])/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[2*m] && LeQ[m, -2]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[p, 0] && (IGtQ[m, 0] || (EqQ[m, -2] && EqQ[p, 1] && EqQ[2*c*d - b*e, 0]))
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p, 0] && (IGtQ[m, 0] || (EqQ[m, -2] && EqQ[p, 1] && EqQ[d, 0]))
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{Qx = PolynomialQuotient[(a + b*x + c*x^2)^p, d + e*x, x], R = PolynomialRemainder[(a + b*x + c*x^2)^p, d + e*x, x]}, Simp[(R*(d + e*x)^(m + 1)*(f + g*x)^(n + 1))/((m + 1)*(e*f - d*g)), x] + Dist[1/((m + 1)*(e*f - d*g)), Int[(d + e*x)^(m + 1)*(f + g*x)^n*ExpandToSum[(m + 1)*(e*f - d*g)*Qx - g*R*(m + n + 2), x], x], x]] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[p, 0] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{Qx = PolynomialQuotient[(a + c*x^2)^p, d + e*x, x], R = PolynomialRemainder[(a + c*x^2)^p, d + e*x, x]}, Simp[(R*(d + e*x)^(m + 1)*(f + g*x)^(n + 1))/((m + 1)*(e*f - d*g)), x] + Dist[1/((m + 1)*(e*f - d*g)), Int[(d + e*x)^(m + 1)*(f + g*x)^n*ExpandToSum[(m + 1)*(e*f - d*g)*Qx - g*R*(m + n + 2), x], x], x]] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p, 0] && LtQ[m, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^p*(d + e*x)^(m + 2*p)*(f + g*x)^(n + 1))/(g*e^(2*p)*(m + n + 2*p + 1)), x] + Dist[1/(g*e^(2*p)*(m + n + 2*p + 1)), Int[(d + e*x)^m*(f + g*x)^n*ExpandToSum[g*(m + n + 2*p + 1)*(e^(2*p)*(a + b*x + c*x^2)^p - c^p*(d + e*x)^(2*p)) - c^p*(e*f - d*g)*(m + 2*p)*(d + e*x)^(2*p - 1), x], x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[p, 0] && NeQ[m + n + 2*p + 1, 0] && (IntegerQ[n] || !IntegerQ[m])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^p*(d + e*x)^(m + 2*p)*(f + g*x)^(n + 1))/(g*e^(2*p)*(m + n + 2*p + 1)), x] + Dist[1/(g*e^(2*p)*(m + n + 2*p + 1)), Int[(d + e*x)^m*(f + g*x)^n*ExpandToSum[g*(m + n + 2*p + 1)*(e^(2*p)*(a + c*x^2)^p - c^p*(d + e*x)^(2*p)) - c^p*(e*f - d*g)*(m + 2*p)*(d + e*x)^(2*p - 1), x], x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p, 0] && NeQ[m + n + 2*p + 1, 0] && (IntegerQ[n] || !IntegerQ[m])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c*d^2 - b*d*e + a*e^2)/(e*(e*f - d*g)), Int[((f + g*x)^(n + 1)*(a + b*x + c*x^2)^(p - 1))/(d + e*x), x], x] - Dist[1/(e*(e*f - d*g)), Int[(f + g*x)^n*(c*d*f - b*e*f + a*e*g - c*(e*f - d*g)*x)*(a + b*x + c*x^2)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[n] && !IntegerQ[p] && GtQ[p, 0] && LtQ[n, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c*d^2 + a*e^2)/(e*(e*f - d*g)), Int[((f + g*x)^(n + 1)*(a + c*x^2)^(p - 1))/(d + e*x), x], x] - Dist[1/(e*(e*f - d*g)), Int[(f + g*x)^n*(c*d*f + a*e*g - c*(e*f - d*g)*x)*(a + c*x^2)^(p - 1), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[n] && !IntegerQ[p] && GtQ[p, 0] && LtQ[n, -1]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(e*(e*f - d*g))/(c*d^2 - b*d*e + a*e^2), Int[((f + g*x)^(n - 1)*(a + b*x + c*x^2)^(p + 1))/(d + e*x), x], x] + Dist[1/(c*d^2 - b*d*e + a*e^2), Int[(f + g*x)^(n - 1)*(c*d*f - b*e*f + a*e*g - c*(e*f - d*g)*x)*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[n] && !IntegerQ[p] && LtQ[p, -1] && GtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(e*(e*f - d*g))/(c*d^2 + a*e^2), Int[((f + g*x)^(n - 1)*(a + c*x^2)^(p + 1))/(d + e*x), x], x] + Dist[1/(c*d^2 + a*e^2), Int[(f + g*x)^(n - 1)*(c*d*f + a*e*g - c*(e*f - d*g)*x)*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[n] && !IntegerQ[p] && LtQ[p, -1] && GtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[1/(Sqrt[f + g*x]*Sqrt[a + b*x + c*x^2]), (f + g*x)^(n + 1/2)/(d + e*x), x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[n + 1/2]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[1/(Sqrt[f + g*x]*Sqrt[a + c*x^2]), (f + g*x)^(n + 1/2)/(d + e*x), x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[n + 1/2]
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(d*(g*x)^n)/x^n, Int[(x^n*(a + c*x^2)^p)/(d^2 - e^2*x^2), x], x] - Dist[(e*(g*x)^n)/x^n, Int[(x^(n + 1)*(a + c*x^2)^p)/(d^2 - e^2*x^2), x], x] /; FreeQ[{a, c, d, e, g, n, p}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && !IntegersQ[n, 2*p]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n*(a + b*x + c*x^2)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && (IntegerQ[p] || (ILtQ[m, 0] && ILtQ[n, 0])) && !(IGtQ[m, 0] || IGtQ[n, 0])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x)^m*(f + g*x)^n*(a + c*x^2)^p, x], x] /; FreeQ[{a, c, d, e, f, g}, x] && NeQ[e*f - d*g, 0] && NeQ[c*d^2 + a*e^2, 0] && (IntegerQ[p] || (ILtQ[m, 0] && ILtQ[n, 0])) && !(IGtQ[m, 0] || IGtQ[n, 0])
Int[Times[Power[Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(g*x)^n/x^n, Int[ExpandIntegrand[x^n*(a + c*x^2)^p, (d/(d^2 - e^2*x^2) - (e*x)/(d^2 - e^2*x^2))^(-m), x], x], x] /; FreeQ[{a, c, d, e, g, n, p}, x] && NeQ[c*d^2 + a*e^2, 0] && ILtQ[m, 0] && !IntegerQ[p] && !IntegerQ[n]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(d + e*x)^m*(f + g*x)^n*(a + b*x + c*x^2)^p, x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x] && !(IGtQ[m, 0] || IGtQ[n, 0])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[x, Blank[]]]], Pattern[n, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(d + e*x)^m*(f + g*x)^n*(a + c*x^2)^p, x] /; FreeQ[{a, c, d, e, f, g, m, n, p}, x] && !(IGtQ[m, 0] || IGtQ[n, 0])
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(d + e*x)^m*(f + g*x)^n*(a + b*x + c*x^2)^p, x], x, u], x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[f, Blank[]]], Times[Optional[Pattern[g, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[n, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(d + e*x)^m*(f + g*x)^n*(a + c*x^2)^p, x], x, u], x] /; FreeQ[{a, c, d, e, f, g, m, n, p}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(c/f)^p, Int[(d + e*x + f*x^2)^(p + q), x], x] /; FreeQ[{a, b, c, d, e, f, p, q}, x] && EqQ[c*d - a*f, 0] && EqQ[b*d - a*e, 0] && (IntegerQ[p] || GtQ[c/f, 0]) && ( !IntegerQ[q] || LeafCount[d + e*x + f*x^2] <= LeafCount[a + b*x + c*x^2])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x + c*x^2)^FracPart[p])/(d^IntPart[p]*(d + e*x + f*x^2)^FracPart[p]), Int[(d + e*x + f*x^2)^(p + q), x], x] /; FreeQ[{a, b, c, d, e, f, p, q}, x] && EqQ[c*d - a*f, 0] && EqQ[b*d - a*e, 0] && !IntegerQ[p] && !IntegerQ[q] && !GtQ[c/f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/((4*c)^IntPart[p]*(b + 2*c*x)^(2*FracPart[p])), Int[(b + 2*c*x)^(2*p)*(d + e*x + f*x^2)^q, x], x] /; FreeQ[{a, b, c, d, e, f, p, q}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/((4*c)^IntPart[p]*(b + 2*c*x)^(2*FracPart[p])), Int[(b + 2*c*x)^(2*p)*(d + f*x^2)^q, x], x] /; FreeQ[{a, b, c, d, f, p, q}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b + 2*c*x)*(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q)/((b^2 - 4*a*c)*(p + 1)), x] - Dist[1/((b^2 - 4*a*c)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q - 1)*Simp[2*c*d*(2*p + 3) + b*e*q + (2*b*f*q + 2*c*e*(2*p + q + 3))*x + 2*c*f*(2*p + 2*q + 3)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && GtQ[q, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b + 2*c*x)*(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^q)/((b^2 - 4*a*c)*(p + 1)), x] - Dist[1/((b^2 - 4*a*c)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^(q - 1)*Simp[2*c*d*(2*p + 3) + (2*b*f*q)*x + 2*c*f*(2*p + 2*q + 3)*x^2, x], x], x] /; FreeQ[{a, b, c, d, f}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && GtQ[q, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((2*c*x)*(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q)/((-4*a*c)*(p + 1)), x] - Dist[1/((-4*a*c)*(p + 1)), Int[(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q - 1)*Simp[2*c*d*(2*p + 3) + (2*c*e*(2*p + q + 3))*x + 2*c*f*(2*p + 2*q + 3)*x^2, x], x], x] /; FreeQ[{a, c, d, e, f}, x] && NeQ[e^2 - 4*d*f] && LtQ[p, -1] && GtQ[q, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((2*a*c^2*e - b^2*c*e + b^3*f + b*c*(c*d - 3*a*f) + c*(2*c^2*d + b^2*f - c*(b*e + 2*a*f))*x)*(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q + 1))/((b^2 - 4*a*c)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1)), x] - Dist[1/((b^2 - 4*a*c)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q*Simp[2*c*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1) - (2*c^2*d + b^2*f - c*(b*e + 2*a*f))*(a*f*(p + 1) - c*d*(p + 2)) - e*(b^2*c*e - 2*a*c^2*e - b^3*f - b*c*(c*d - 3*a*f))*(p + q + 2) + (2*f*(2*a*c^2*e - b^2*c*e + b^3*f + b*c*(c*d - 3*a*f))*(p + q + 2) - (2*c^2*d + b^2*f - c*(b*e + 2*a*f))*(b*f*(p + 1) - c*e*(2*p + q + 4)))*x + c*f*(2*c^2*d + b^2*f - c*(b*e + 2*a*f))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && NeQ[(c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f), 0] && !( !IntegerQ[p] && ILtQ[q, -1]) && !IGtQ[q, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b^3*f + b*c*(c*d - 3*a*f) + c*(2*c^2*d + b^2*f - c*(2*a*f))*x)*(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^(q + 1))/((b^2 - 4*a*c)*(b^2*d*f + (c*d - a*f)^2)*(p + 1)), x] - Dist[1/((b^2 - 4*a*c)*(b^2*d*f + (c*d - a*f)^2)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^q*Simp[2*c*(b^2*d*f + (c*d - a*f)^2)*(p + 1) - (2*c^2*d + b^2*f - c*(2*a*f))*(a*f*(p + 1) - c*d*(p + 2)) + (2*f*(b^3*f + b*c*(c*d - 3*a*f))*(p + q + 2) - (2*c^2*d + b^2*f - c*(2*a*f))*(b*f*(p + 1)))*x + c*f*(2*c^2*d + b^2*f - c*(2*a*f))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, q}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && NeQ[b^2*d*f + (c*d - a*f)^2, 0] && !( !IntegerQ[p] && ILtQ[q, -1]) && !IGtQ[q, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((2*a*c^2*e + c*(2*c^2*d - c*(2*a*f))*x)*(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q + 1))/((-4*a*c)*(a*c*e^2 + (c*d - a*f)^2)*(p + 1)), x] - Dist[1/((-4*a*c)*(a*c*e^2 + (c*d - a*f)^2)*(p + 1)), Int[(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q*Simp[2*c*((c*d - a*f)^2 - (-(a*e))*(c*e))*(p + 1) - (2*c^2*d - c*(2*a*f))*(a*f*(p + 1) - c*d*(p + 2)) - e*(-2*a*c^2*e)*(p + q + 2) + (2*f*(2*a*c^2*e)*(p + q + 2) - (2*c^2*d - c*(2*a*f))*(-(c*e*(2*p + q + 4))))*x + c*f*(2*c^2*d - c*(2*a*f))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, q}, x] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && NeQ[a*c*e^2 + (c*d - a*f)^2, 0] && !( !IntegerQ[p] && ILtQ[q, -1]) && !IGtQ[q, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*f*(3*p + 2*q) - c*e*(2*p + q) + 2*c*f*(p + q)*x)*(a + b*x + c*x^2)^(p - 1)*(d + e*x + f*x^2)^(q + 1))/(2*f^2*(p + q)*(2*p + 2*q + 1)), x] - Dist[1/(2*f^2*(p + q)*(2*p + 2*q + 1)), Int[(a + b*x + c*x^2)^(p - 2)*(d + e*x + f*x^2)^q*Simp[(b*d - a*e)*(c*e - b*f)*(1 - p)*(2*p + q) - (p + q)*(b^2*d*f*(1 - p) - a*(f*(b*e - 2*a*f)*(2*p + 2*q + 1) + c*(2*d*f - e^2*(2*p + q)))) + (2*(c*d - a*f)*(c*e - b*f)*(1 - p)*(2*p + q) - (p + q)*((b^2 - 4*a*c)*e*f*(1 - p) + b*(c*(e^2 - 4*d*f)*(2*p + q) + f*(2*c*d - b*e + 2*a*f)*(2*p + 2*q + 1))))*x + ((c*e - b*f)^2*(1 - p)*p + c*(p + q)*(f*(b*e - 2*a*f)*(4*p + 2*q - 1) - c*(2*d*f*(1 - 2*p) + e^2*(3*p + q - 1))))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && GtQ[p, 1] && NeQ[p + q, 0] && NeQ[2*p + 2*q + 1, 0] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*(3*p + 2*q) + 2*c*(p + q)*x)*(a + b*x + c*x^2)^(p - 1)*(d + f*x^2)^(q + 1))/(2*f*(p + q)*(2*p + 2*q + 1)), x] - Dist[1/(2*f*(p + q)*(2*p + 2*q + 1)), Int[(a + b*x + c*x^2)^(p - 2)*(d + f*x^2)^q*Simp[b^2*d*(p - 1)*(2*p + q) - (p + q)*(b^2*d*(1 - p) - 2*a*(c*d - a*f*(2*p + 2*q + 1))) - (2*b*(c*d - a*f)*(1 - p)*(2*p + q) - 2*(p + q)*b*(2*c*d*(2*p + q) - (c*d + a*f)*(2*p + 2*q + 1)))*x + (b^2*f*p*(1 - p) + 2*c*(p + q)*(c*d*(2*p - 1) - a*f*(4*p + 2*q - 1)))*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, q}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 1] && NeQ[p + q, 0] && NeQ[2*p + 2*q + 1, 0] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(c*(e*(2*p + q) - 2*f*(p + q)*x)*(a + c*x^2)^(p - 1)*(d + e*x + f*x^2)^(q + 1))/(2*f^2*(p + q)*(2*p + 2*q + 1)), x] - Dist[1/(2*f^2*(p + q)*(2*p + 2*q + 1)), Int[(a + c*x^2)^(p - 2)*(d + e*x + f*x^2)^q*Simp[-(a*c*e^2*(1 - p)*(2*p + q)) + a*(p + q)*(-2*a*f^2*(2*p + 2*q + 1) + c*(2*d*f - e^2*(2*p + q))) + (2*(c*d - a*f)*(c*e)*(1 - p)*(2*p + q) + 4*a*c*e*f*(1 - p)*(p + q))*x + (p*c^2*e^2*(1 - p) - c*(p + q)*(2*a*f^2*(4*p + 2*q - 1) + c*(2*d*f*(1 - 2*p) + e^2*(3*p + q - 1))))*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, q}, x] && NeQ[e^2 - 4*d*f, 0] && GtQ[p, 1] && NeQ[p + q, 0] && NeQ[2*p + 2*q + 1, 0] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = c^2*d^2 - b*c*d*e + a*c*e^2 + b^2*d*f - 2*a*c*d*f - a*b*e*f + a^2*f^2}, Dist[1/q, Int[(c^2*d - b*c*e + b^2*f - a*c*f - (c^2*e - b*c*f)*x)/(a + b*x + c*x^2), x], x] + Dist[1/q, Int[(c*e^2 - c*d*f - b*e*f + a*f^2 + (c*e*f - b*f^2)*x)/(d + e*x + f*x^2), x], x] /; NeQ[q, 0]] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = c^2*d^2 + b^2*d*f - 2*a*c*d*f + a^2*f^2}, Dist[1/q, Int[(c^2*d + b^2*f - a*c*f + b*c*f*x)/(a + b*x + c*x^2), x], x] - Dist[1/q, Int[(c*d*f - a*f^2 + b*f^2*x)/(d + f*x^2), x], x] /; NeQ[q, 0]] /; FreeQ[{a, b, c, d, f}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2*e, Subst[Int[1/(e*(b*e - 4*a*f) - (b*d - a*e)*x^2), x], x, (e + 2*f*x)/Sqrt[d + e*x + f*x^2]], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && EqQ[c*e - b*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c)/q, Int[1/((b - q + 2*c*x)*Sqrt[d + e*x + f*x^2]), x], x] - Dist[(2*c)/q, Int[1/((b + q + 2*c*x)*Sqrt[d + e*x + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && NeQ[c*e - b*f, 0] && PosQ[b^2 - 4*a*c]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Int[1/((a - Rt[-(a*c), 2]*x)*Sqrt[d + e*x + f*x^2]), x], x] + Dist[1/2, Int[1/((a + Rt[-(a*c), 2]*x)*Sqrt[d + e*x + f*x^2]), x], x] /; FreeQ[{a, c, d, e, f}, x] && NeQ[e^2 - 4*d*f, 0] && PosQ[-(a*c)]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c)/q, Int[1/((b - q + 2*c*x)*Sqrt[d + f*x^2]), x], x] - Dist[(2*c)/q, Int[1/((b + q + 2*c*x)*Sqrt[d + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, f}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[b^2 - 4*a*c]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f), 2]}, Dist[1/(2*q), Int[(c*d - a*f + q + (c*e - b*f)*x)/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] - Dist[1/(2*q), Int[(c*d - a*f - q + (c*e - b*f)*x)/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && NeQ[c*e - b*f, 0] && NegQ[b^2 - 4*a*c]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(c*d - a*f)^2 + a*c*e^2, 2]}, Dist[1/(2*q), Int[(c*d - a*f + q + c*e*x)/((a + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] - Dist[1/(2*q), Int[(c*d - a*f - q + c*e*x)/((a + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x]] /; FreeQ[{a, c, d, e, f}, x] && NeQ[e^2 - 4*d*f, 0] && NegQ[-(a*c)]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(c*d - a*f)^2 + b^2*d*f, 2]}, Dist[1/(2*q), Int[(c*d - a*f + q + (-(b*f))*x)/((a + b*x + c*x^2)*Sqrt[d + f*x^2]), x], x] - Dist[1/(2*q), Int[(c*d - a*f - q + (-(b*f))*x)/((a + b*x + c*x^2)*Sqrt[d + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, f}, x] && NeQ[b^2 - 4*a*c, 0] && NegQ[b^2 - 4*a*c]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[c/f, Int[1/Sqrt[a + b*x + c*x^2], x], x] - Dist[1/f, Int[(c*d - a*f + (c*e - b*f)*x)/(Sqrt[a + b*x + c*x^2]*(d + e*x + f*x^2)), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[c/f, Int[1/Sqrt[a + b*x + c*x^2], x], x] - Dist[1/f, Int[(c*d - a*f - b*f*x)/(Sqrt[a + b*x + c*x^2]*(d + f*x^2)), x], x] /; FreeQ[{a, b, c, d, f}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[1, 2]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[c/f, Int[1/Sqrt[a + c*x^2], x], x] - Dist[1/f, Int[(c*d - a*f + c*e*x)/(Sqrt[a + c*x^2]*(d + e*x + f*x^2)), x], x] /; FreeQ[{a, c, d, e, f}, x] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[b^2 - 4*a*c, 2]}, Dist[(Sqrt[b + r + 2*c*x]*Sqrt[2*a + (b + r)*x])/Sqrt[a + b*x + c*x^2], Int[1/(Sqrt[b + r + 2*c*x]*Sqrt[2*a + (b + r)*x]*Sqrt[d + e*x + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[b^2 - 4*a*c, 2]}, Dist[(Sqrt[b + r + 2*c*x]*Sqrt[2*a + (b + r)*x])/Sqrt[a + b*x + c*x^2], Int[1/(Sqrt[b + r + 2*c*x]*Sqrt[2*a + (b + r)*x]*Sqrt[d + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, f}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^q, x] /; FreeQ[{a, b, c, d, e, f, p, q}, x] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(a + c*x^2)^p*(d + e*x + f*x^2)^q, x] /; FreeQ[{a, c, d, e, f, p, q}, x] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^q, x], x, u], x] /; FreeQ[{a, b, c, d, e, f, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + c*x^2)^p*(d + e*x + f*x^2)^q, x], x, u], x] /; FreeQ[{a, c, d, e, f, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(c/f)^p, Int[(g + h*x)^m*(d + e*x + f*x^2)^(p + q), x], x] /; FreeQ[{a, b, c, d, e, f, g, h, p, q}, x] && EqQ[c*d - a*f, 0] && EqQ[b*d - a*e, 0] && (IntegerQ[p] || GtQ[c/f, 0]) && ( !IntegerQ[q] || LeafCount[d + e*x + f*x^2] <= LeafCount[a + b*x + c*x^2])
Int[Times[Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x + c*x^2)^FracPart[p])/(d^IntPart[p]*(d + e*x + f*x^2)^FracPart[p]), Int[(g + h*x)^m*(d + e*x + f*x^2)^(p + q), x], x] /; FreeQ[{a, b, c, d, e, f, g, h, p, q}, x] && EqQ[c*d - a*f, 0] && EqQ[b*d - a*e, 0] && !IntegerQ[p] && !IntegerQ[q] && !GtQ[c/f, 0]
Int[Times[Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/((4*c)^IntPart[p]*(b + 2*c*x)^(2*FracPart[p])), Int[(g + h*x)^m*(b + 2*c*x)^(2*p)*(d + e*x + f*x^2)^q, x], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, p, q}, x] && EqQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/((4*c)^IntPart[p]*(b + 2*c*x)^(2*FracPart[p])), Int[(g + h*x)^m*(b + 2*c*x)^(2*p)*(d + f*x^2)^q, x], x] /; FreeQ[{a, b, c, d, f, g, h, m, p, q}, x] && EqQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((d*g)/a + (f*h*x)/c)^m*(a + b*x + c*x^2)^(m + p), x] /; FreeQ[{a, b, c, d, e, f, g, h, p}, x] && EqQ[c*g^2 - b*g*h + a*h^2, 0] && EqQ[c^2*d*g^2 - a*c*e*g*h + a^2*f*h^2, 0] && IntegerQ[m]
Int[Times[Power[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((d*g)/a + (f*h*x)/c)^m*(a + c*x^2)^(m + p), x] /; FreeQ[{a, c, d, e, f, g, h, p}, x] && EqQ[c*g^2 + a*h^2, 0] && EqQ[c^2*d*g^2 - a*c*e*g*h + a^2*f*h^2, 0] && IntegerQ[m]
Int[Times[Power[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((d*g)/a + (f*h*x)/c)^m*(a + b*x + c*x^2)^(m + p), x] /; FreeQ[{a, b, c, d, f, g, h, p}, x] && EqQ[c*g^2 - b*g*h + a*h^2, 0] && EqQ[c^2*d*g^2 + a^2*f*h^2, 0] && IntegerQ[m]
Int[Times[Power[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((d*g)/a + (f*h*x)/c)^m*(a + c*x^2)^(m + p), x] /; FreeQ[{a, c, d, f, g, h, p}, x] && EqQ[c*g^2 + a*h^2, 0] && EqQ[c^2*d*g^2 + a^2*f*h^2, 0] && IntegerQ[m]
Int[Times[Power[Pattern[x, Blank[]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(a/e + (c*x)/f)^p*(e*x + f*x^2)^(p + q), x] /; FreeQ[{a, b, c, e, f, q}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*e^2 - b*e*f + a*f^2, 0] && IntegerQ[p]
Int[Times[Power[Pattern[x, Blank[]], Pattern[p, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(a/e + (c*x)/f)^p*(e*x + f*x^2)^(p + q), x] /; FreeQ[{a, c, e, f, q}, x] && EqQ[c*e^2 + a*f^2, 0] && IntegerQ[p]
Int[Times[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(Sqrt[3]*h*ArcTan[1/Sqrt[3] - (2^(2/3)*(1 - (3*h*x)/g)^(2/3))/(Sqrt[3]*(1 + (3*h*x)/g)^(1/3))])/(2^(2/3)*a^(1/3)*f), x] + (-Simp[(3*h*Log[(1 - (3*h*x)/g)^(2/3) + 2^(1/3)*(1 + (3*h*x)/g)^(1/3)])/(2^(5/3)*a^(1/3)*f), x] + Simp[(h*Log[d + f*x^2])/(2^(5/3)*a^(1/3)*f), x]) /; FreeQ[{a, c, d, f, g, h}, x] && EqQ[c*d + 3*a*f, 0] && EqQ[c*g^2 + 9*a*h^2, 0] && GtQ[a, 0]
Int[Times[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(1 + (c*x^2)/a)^(1/3)/(a + c*x^2)^(1/3), Int[(g + h*x)/((1 + (c*x^2)/a)^(1/3)*(d + f*x^2)), x], x] /; FreeQ[{a, c, d, f, g, h}, x] && EqQ[c*d + 3*a*f, 0] && EqQ[c*g^2 + 9*a*h^2, 0] && !GtQ[a, 0]
Int[Times[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[g, Int[(a + c*x^2)^p*(d + f*x^2)^q, x], x] + Dist[h, Int[x*(a + c*x^2)^p*(d + f*x^2)^q, x], x] /; FreeQ[{a, c, d, f, g, h, p, q}, x]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^q*(g + h*x), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && IGtQ[p, 0] && IntegerQ[q]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + c*x^2)^p*(d + e*x + f*x^2)^q*(g + h*x), x], x] /; FreeQ[{a, c, d, e, f, g, h}, x] && NeQ[e^2 - 4*d*f, 0] && IntegersQ[p, q] && (GtQ[p, 0] || GtQ[q, 0])
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((g*b - 2*a*h - (b*h - 2*g*c)*x)*(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q)/((b^2 - 4*a*c)*(p + 1)), x] - Dist[1/((b^2 - 4*a*c)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q - 1)*Simp[e*q*(g*b - 2*a*h) - d*(b*h - 2*g*c)*(2*p + 3) + (2*f*q*(g*b - 2*a*h) - e*(b*h - 2*g*c)*(2*p + q + 3))*x - f*(b*h - 2*g*c)*(2*p + 2*q + 3)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && GtQ[q, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a*h - g*c*x)*(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q)/(2*a*c*(p + 1)), x] + Dist[2/(4*a*c*(p + 1)), Int[(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q - 1)*Simp[g*c*d*(2*p + 3) - a*(h*e*q) + (g*c*e*(2*p + q + 3) - a*(2*h*f*q))*x + g*c*f*(2*p + 2*q + 3)*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, g, h}, x] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && GtQ[q, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((g*b - 2*a*h - (b*h - 2*g*c)*x)*(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^q)/((b^2 - 4*a*c)*(p + 1)), x] - Dist[1/((b^2 - 4*a*c)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^(q - 1)*Simp[-(d*(b*h - 2*g*c)*(2*p + 3)) + (2*f*q*(g*b - 2*a*h))*x - f*(b*h - 2*g*c)*(2*p + 2*q + 3)*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && GtQ[q, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q + 1)*(g*c*(2*a*c*e - b*(c*d + a*f)) + (g*b - a*h)*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)) + c*(g*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)) - h*(b*c*d - 2*a*c*e + a*b*f))*x))/((b^2 - 4*a*c)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1)), x] + Dist[1/((b^2 - 4*a*c)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q*Simp[(b*h - 2*g*c)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1) + (b^2*(g*f) - b*(h*c*d + g*c*e + a*h*f) + 2*(g*c*(c*d - a*f) - a*(-(h*c*e))))*(a*f*(p + 1) - c*d*(p + 2)) - e*((g*c)*(2*a*c*e - b*(c*d + a*f)) + (g*b - a*h)*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)))*(p + q + 2) - (2*f*((g*c)*(2*a*c*e - b*(c*d + a*f)) + (g*b - a*h)*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)))*(p + q + 2) - (b^2*g*f - b*(h*c*d + g*c*e + a*h*f) + 2*(g*c*(c*d - a*f) - a*(-(h*c*e))))*(b*f*(p + 1) - c*e*(2*p + q + 4)))*x - c*f*(b^2*(g*f) - b*(h*c*d + g*c*e + a*h*f) + 2*(g*c*(c*d - a*f) + a*h*c*e))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && NeQ[(c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f), 0] && !( !IntegerQ[p] && ILtQ[q, -1])
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q + 1)*(g*c*(2*a*c*e) + (-(a*h))*(2*c^2*d - c*(2*a*f)) + c*(g*(2*c^2*d - c*(2*a*f)) - h*(-2*a*c*e))*x))/((-4*a*c)*(a*c*e^2 + (c*d - a*f)^2)*(p + 1)), x] + Dist[1/((-4*a*c)*(a*c*e^2 + (c*d - a*f)^2)*(p + 1)), Int[(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q*Simp[(-2*g*c)*((c*d - a*f)^2 - (-(a*e))*(c*e))*(p + 1) + (2*(g*c*(c*d - a*f) - a*(-(h*c*e))))*(a*f*(p + 1) - c*d*(p + 2)) - e*((g*c)*(2*a*c*e) + (-(a*h))*(2*c^2*d - c*((Plus[2])*a*f)))*(p + q + 2) - (2*f*((g*c)*(2*a*c*e) + (-(a*h))*(2*c^2*d - c*((Plus[2])*a*f)))*(p + q + 2) - (2*(g*c*(c*d - a*f) - a*(-(h*c*e))))*(-(c*e*(2*p + q + 4))))*x - c*f*(2*(g*c*(c*d - a*f) - a*(-(h*c*e))))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, g, h, q}, x] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && NeQ[a*c*e^2 + (c*d - a*f)^2, 0] && !( !IntegerQ[p] && ILtQ[q, -1])
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^(q + 1)*((g*c)*(-(b*(c*d + a*f))) + (g*b - a*h)*(2*c^2*d + b^2*f - c*(2*a*f)) + c*(g*(2*c^2*d + b^2*f - c*(2*a*f)) - h*(b*c*d + a*b*f))*x))/((b^2 - 4*a*c)*(b^2*d*f + (c*d - a*f)^2)*(p + 1)), x] + Dist[1/((b^2 - 4*a*c)*(b^2*d*f + (c*d - a*f)^2)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^q*Simp[(b*h - 2*g*c)*((c*d - a*f)^2 - (b*d)*(-(b*f)))*(p + 1) + (b^2*(g*f) - b*(h*c*d + a*h*f) + 2*(g*c*(c*d - a*f)))*(a*f*(p + 1) - c*d*(p + 2)) - (2*f*((g*c)*(-(b*(c*d + a*f))) + (g*b - a*h)*(2*c^2*d + b^2*f - c*(2*a*f)))*(p + q + 2) - (b^2*(g*f) - b*(h*c*d + a*h*f) + 2*(g*c*(c*d - a*f)))*(b*f*(p + 1)))*x - c*f*(b^2*(g*f) - b*(h*c*d + a*h*f) + 2*(g*c*(c*d - a*f)))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, g, h, q}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && NeQ[b^2*d*f + (c*d - a*f)^2, 0] && !( !IntegerQ[p] && ILtQ[q, -1])
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(h*(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^(q + 1))/(2*f*(p + q + 1)), x] - Dist[1/(2*f*(p + q + 1)), Int[(a + b*x + c*x^2)^(p - 1)*(d + e*x + f*x^2)^q*Simp[h*p*(b*d - a*e) + a*(h*e - 2*g*f)*(p + q + 1) + (2*h*p*(c*d - a*f) + b*(h*e - 2*g*f)*(p + q + 1))*x + (h*p*(c*e - b*f) + c*(h*e - 2*g*f)*(p + q + 1))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, g, h, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && GtQ[p, 0] && NeQ[p + q + 1, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(h*(a + c*x^2)^p*(d + e*x + f*x^2)^(q + 1))/(2*f*(p + q + 1)), x] + Dist[1/(2*f*(p + q + 1)), Int[(a + c*x^2)^(p - 1)*(d + e*x + f*x^2)^q*Simp[a*h*e*p - a*(h*e - 2*g*f)*(p + q + 1) - 2*h*p*(c*d - a*f)*x - (h*c*e*p + c*(h*e - 2*g*f)*(p + q + 1))*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, g, h, q}, x] && NeQ[e^2 - 4*d*f, 0] && GtQ[p, 0] && NeQ[p + q + 1, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(h*(a + b*x + c*x^2)^p*(d + f*x^2)^(q + 1))/(2*f*(p + q + 1)), x] - Dist[1/(2*f*(p + q + 1)), Int[(a + b*x + c*x^2)^(p - 1)*(d + f*x^2)^q*Simp[h*p*(b*d) + a*(-2*g*f)*(p + q + 1) + (2*h*p*(c*d - a*f) + b*(-2*g*f)*(p + q + 1))*x + (h*p*(-(b*f)) + c*(-2*g*f)*(p + q + 1))*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, g, h, q}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && NeQ[p + q + 1, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Simplify[c^2*d^2 - b*c*d*e + a*c*e^2 + b^2*d*f - 2*a*c*d*f - a*b*e*f + a^2*f^2]}, Dist[1/q, Int[Simp[g*c^2*d - g*b*c*e + a*h*c*e + g*b^2*f - a*b*h*f - a*g*c*f + c*(h*c*d - g*c*e + g*b*f - a*h*f)*x, x]/(a + b*x + c*x^2), x], x] + Dist[1/q, Int[Simp[-(h*c*d*e) + g*c*e^2 + b*h*d*f - g*c*d*f - g*b*e*f + a*g*f^2 - f*(h*c*d - g*c*e + g*b*f - a*h*f)*x, x]/(d + e*x + f*x^2), x], x] /; NeQ[q, 0]] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Simplify[c^2*d^2 + b^2*d*f - 2*a*c*d*f + a^2*f^2]}, Dist[1/q, Int[Simp[g*c^2*d + g*b^2*f - a*b*h*f - a*g*c*f + c*(h*c*d + g*b*f - a*h*f)*x, x]/(a + b*x + c*x^2), x], x] + Dist[1/q, Int[Simp[b*h*d*f - g*c*d*f + a*g*f^2 - f*(h*c*d + g*b*f - a*h*f)*x, x]/(d + f*x^2), x], x] /; NeQ[q, 0]] /; FreeQ[{a, b, c, d, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2*g, Subst[Int[1/(b*d - a*e - b*x^2), x], x, Sqrt[d + e*x + f*x^2]], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && EqQ[c*e - b*f, 0] && EqQ[h*e - 2*g*f, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Dist[(h*e - 2*g*f)/(2*f), Int[1/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] + Dist[h/(2*f), Int[(e + 2*f*x)/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && EqQ[c*e - b*f, 0] && NeQ[h*e - 2*g*f, 0]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2*e, Subst[Int[(1 - d*x^2)/(c*e - b*f - e*(2*c*d - b*e + 2*a*f)*x^2 + d^2*(c*e - b*f)*x^4), x], x, (1 + ((e + Sqrt[e^2 - 4*d*f])*x)/(2*d))/Sqrt[d + e*x + f*x^2]], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && EqQ[b*d - a*e, 0]
Int[Times[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[g, Subst[Int[1/(a + (c*d - a*f)*x^2), x], x, x/Sqrt[d + e*x + f*x^2]], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && EqQ[b*d - a*e, 0] && EqQ[2*h*d - g*e, 0]
Int[Times[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Dist[(2*h*d - g*e)/e, Int[1/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] + Dist[h/e, Int[(2*d + e*x)/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && EqQ[b*d - a*e, 0] && NeQ[2*h*d - g*e, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2*g*(g*b - 2*a*h), Subst[Int[1/Simp[g*(g*b - 2*a*h)*(b^2 - 4*a*c) - (b*d - a*e)*x^2, x], x], x, Simp[g*b - 2*a*h - (b*h - 2*g*c)*x, x]/Sqrt[d + e*x + f*x^2]], x] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && NeQ[b*d - a*e, 0] && EqQ[h^2*(b*d - a*e) - 2*g*h*(c*d - a*f) + g^2*(c*e - b*f), 0]
Int[Times[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2*a*g*h, Subst[Int[1/Simp[2*a^2*g*h*c + a*e*x^2, x], x], x, Simp[a*h - g*c*x, x]/Sqrt[d + e*x + f*x^2]], x] /; FreeQ[{a, c, d, e, f, g, h}, x] && EqQ[a*h^2*e + 2*g*h*(c*d - a*f) - g^2*c*e, 0]
Int[Times[Plus[Pattern[g, Blank[]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[-2*g*(g*b - 2*a*h), Subst[Int[1/Simp[g*(g*b - 2*a*h)*(b^2 - 4*a*c) - b*d*x^2, x], x], x, Simp[g*b - 2*a*h - (b*h - 2*g*c)*x, x]/Sqrt[d + f*x^2]], x] /; FreeQ[{a, b, c, d, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[b*h^2*d - 2*g*h*(c*d - a*f) - g^2*b*f, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c*g - h*(b - q))/q, Int[1/((b - q + 2*c*x)*Sqrt[d + e*x + f*x^2]), x], x] - Dist[(2*c*g - h*(b + q))/q, Int[1/((b + q + 2*c*x)*Sqrt[d + e*x + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && PosQ[b^2 - 4*a*c]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Dist[h/2 + (c*g)/(2*q), Int[1/((-q + c*x)*Sqrt[d + e*x + f*x^2]), x], x] + Dist[h/2 - (c*g)/(2*q), Int[1/((q + c*x)*Sqrt[d + e*x + f*x^2]), x], x]] /; FreeQ[{a, c, d, e, f, g, h}, x] && NeQ[e^2 - 4*d*f, 0] && PosQ[-(a*c)]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c*g - h*(b - q))/q, Int[1/((b - q + 2*c*x)*Sqrt[d + f*x^2]), x], x] - Dist[(2*c*g - h*(b + q))/q, Int[1/((b + q + 2*c*x)*Sqrt[d + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[b^2 - 4*a*c]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f), 2]}, Dist[1/(2*q), Int[Simp[h*(b*d - a*e) - g*(c*d - a*f - q) - (g*(c*e - b*f) - h*(c*d - a*f + q))*x, x]/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] - Dist[1/(2*q), Int[Simp[h*(b*d - a*e) - g*(c*d - a*f + q) - (g*(c*e - b*f) - h*(c*d - a*f - q))*x, x]/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && NeQ[b*d - a*e, 0] && NegQ[b^2 - 4*a*c]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(c*d - a*f)^2 + a*c*e^2, 2]}, Dist[1/(2*q), Int[Simp[-(a*h*e) - g*(c*d - a*f - q) + (h*(c*d - a*f + q) - g*c*e)*x, x]/((a + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] - Dist[1/(2*q), Int[Simp[-(a*h*e) - g*(c*d - a*f + q) + (h*(c*d - a*f - q) - g*c*e)*x, x]/((a + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x]] /; FreeQ[{a, c, d, e, f, g, h}, x] && NeQ[e^2 - 4*d*f, 0] && NegQ[-(a*c)]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(c*d - a*f)^2 + b^2*d*f, 2]}, Dist[1/(2*q), Int[Simp[h*b*d - g*(c*d - a*f - q) + (h*(c*d - a*f + q) + g*b*f)*x, x]/((a + b*x + c*x^2)*Sqrt[d + f*x^2]), x], x] - Dist[1/(2*q), Int[Simp[h*b*d - g*(c*d - a*f + q) + (h*(c*d - a*f - q) + g*b*f)*x, x]/((a + b*x + c*x^2)*Sqrt[d + f*x^2]), x], x]] /; FreeQ[{a, b, c, d, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NegQ[b^2 - 4*a*c]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{s = Rt[b^2 - 4*a*c, 2], t = Rt[e^2 - 4*d*f, 2]}, Dist[(Sqrt[b + s + 2*c*x]*Sqrt[2*a + (b + s)*x]*Sqrt[e + t + 2*f*x]*Sqrt[2*d + (e + t)*x])/(Sqrt[a + b*x + c*x^2]*Sqrt[d + e*x + f*x^2]), Int[(g + h*x)/(Sqrt[b + s + 2*c*x]*Sqrt[2*a + (b + s)*x]*Sqrt[e + t + 2*f*x]*Sqrt[2*d + (e + t)*x]), x], x]] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{s = Rt[b^2 - 4*a*c, 2], t = Rt[-4*d*f, 2]}, Dist[(Sqrt[b + s + 2*c*x]*Sqrt[2*a + (b + s)*x]*Sqrt[t + 2*f*x]*Sqrt[2*d + t*x])/(Sqrt[a + b*x + c*x^2]*Sqrt[d + f*x^2]), Int[(g + h*x)/(Sqrt[b + s + 2*c*x]*Sqrt[2*a + (b + s)*x]*Sqrt[t + 2*f*x]*Sqrt[2*d + t*x]), x], x]] /; FreeQ[{a, b, c, d, f, g, h}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = ((-9*c*h^2)/(2*c*g - b*h)^2)^(1/3)}, Simp[(Sqrt[3]*h*q*ArcTan[1/Sqrt[3] - (2^(2/3)*(1 - (3*h*(b + 2*c*x))/(2*c*g - b*h))^(2/3))/(Sqrt[3]*(1 + (3*h*(b + 2*c*x))/(2*c*g - b*h))^(1/3))])/f, x] + (-Simp[(3*h*q*Log[(1 - (3*h*(b + 2*c*x))/(2*c*g - b*h))^(2/3) + 2^(1/3)*(1 + (3*h*(b + 2*c*x))/(2*c*g - b*h))^(1/3)])/(2*f), x] + Simp[(h*q*Log[d + e*x + f*x^2])/(2*f), x])] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && EqQ[c*e - b*f, 0] && EqQ[c^2*d - f*(b^2 - 3*a*c), 0] && EqQ[c^2*g^2 - b*c*g*h - 2*b^2*h^2 + 9*a*c*h^2, 0] && GtQ[(-9*c*h^2)/(2*c*g - b*h)^2, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 3]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = -(c/(b^2 - 4*a*c))}, Dist[(q*(a + b*x + c*x^2))^(1/3)/(a + b*x + c*x^2)^(1/3), Int[(g + h*x)/((q*a + b*q*x + c*q*x^2)^(1/3)*(d + e*x + f*x^2)), x], x]] /; FreeQ[{a, b, c, d, e, f, g, h}, x] && EqQ[c*e - b*f, 0] && EqQ[c^2*d - f*(b^2 - 3*a*c), 0] && EqQ[c^2*g^2 - b*c*g*h - 2*b^2*h^2 + 9*a*c*h^2, 0] && !GtQ[4*a - b^2/c, 0]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(g + h*x)*(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^q, x] /; FreeQ[{a, b, c, d, e, f, g, h, p, q}, x]
Int[Times[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[x, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(g + h*x)*(a + c*x^2)^p*(d + e*x + f*x^2)^q, x] /; FreeQ[{a, c, d, e, f, g, h, p, q}, x]
Int[Times[Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(g + h*x)^m*(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^q, x], x, u], x] /; FreeQ[{a, b, c, d, e, f, g, h, m, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Optional[Pattern[g, Blank[]]], Times[Optional[Pattern[h, Blank[]]], Pattern[u, Blank[]]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(g + h*x)^m*(a + c*x^2)^p*(d + e*x + f*x^2)^q, x], x, u], x] /; FreeQ[{a, c, d, e, f, g, h, m, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(c/f)^p, Int[(d + e*x + f*x^2)^(p + q)*(A + B*x + C*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, A, B, C, p, q}, x] && EqQ[c*d - a*f, 0] && EqQ[b*d - a*e, 0] && (IntegerQ[p] || GtQ[c/f, 0]) && ( !IntegerQ[q] || LeafCount[d + e*x + f*x^2] <= LeafCount[a + b*x + c*x^2])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(c/f)^p, Int[(d + e*x + f*x^2)^(p + q)*(A + C*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, A, C, p, q}, x] && EqQ[c*d - a*f, 0] && EqQ[b*d - a*e, 0] && (IntegerQ[p] || GtQ[c/f, 0]) && ( !IntegerQ[q] || LeafCount[d + e*x + f*x^2] <= LeafCount[a + b*x + c*x^2])
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x + c*x^2)^FracPart[p])/(d^IntPart[p]*(d + e*x + f*x^2)^FracPart[p]), Int[(d + e*x + f*x^2)^(p + q)*(A + B*x + C*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, A, B, C, p, q}, x] && EqQ[c*d - a*f, 0] && EqQ[b*d - a*e, 0] && !IntegerQ[p] && !IntegerQ[q] && !GtQ[c/f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x + c*x^2)^FracPart[p])/(d^IntPart[p]*(d + e*x + f*x^2)^FracPart[p]), Int[(d + e*x + f*x^2)^(p + q)*(A + C*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, A, C, p, q}, x] && EqQ[c*d - a*f, 0] && EqQ[b*d - a*e, 0] && !IntegerQ[p] && !IntegerQ[q] && !GtQ[c/f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/((4*c)^IntPart[p]*(b + 2*c*x)^(2*FracPart[p])), Int[(b + 2*c*x)^(2*p)*(d + e*x + f*x^2)^q*(A + B*x + C*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, A, B, C, p, q}, x] && EqQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/((4*c)^IntPart[p]*(b + 2*c*x)^(2*FracPart[p])), Int[(b + 2*c*x)^(2*p)*(d + e*x + f*x^2)^q*(A + C*x^2), x], x] /; FreeQ[{a, b, c, d, e, f, A, C, p, q}, x] && EqQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/((4*c)^IntPart[p]*(b + 2*c*x)^(2*FracPart[p])), Int[(b + 2*c*x)^(2*p)*(d + f*x^2)^q*(A + B*x + C*x^2), x], x] /; FreeQ[{a, b, c, d, f, A, B, C, p, q}, x] && EqQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x + c*x^2)^FracPart[p]/((4*c)^IntPart[p]*(b + 2*c*x)^(2*FracPart[p])), Int[(b + 2*c*x)^(2*p)*(d + f*x^2)^q*(A + C*x^2), x], x] /; FreeQ[{a, b, c, d, f, A, C, p, q}, x] && EqQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((A*b*c - 2*a*B*c + a*b*C - (c*(b*B - 2*A*c) - C*(b^2 - 2*a*c))*x)*(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q)/(c*(b^2 - 4*a*c)*(p + 1)), x] - Dist[1/(c*(b^2 - 4*a*c)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q - 1)*Simp[e*q*(A*b*c - 2*a*B*c + a*b*C) - d*(c*(b*B - 2*A*c)*(2*p + 3) + C*(2*a*c - b^2*(p + 2))) + (2*f*q*(A*b*c - 2*a*B*c + a*b*C) - e*(c*(b*B - 2*A*c)*(2*p + q + 3) + C*(2*a*c*(q + 1) - b^2*(p + q + 2))))*x - f*(c*(b*B - 2*A*c)*(2*p + 2*q + 3) + C*(2*a*c*(2*q + 1) - b^2*(p + 2*q + 2)))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, A, B, C}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && GtQ[q, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((A*b*c + a*b*C + (2*A*c^2 + C*(b^2 - 2*a*c))*x)*(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q)/(c*(b^2 - 4*a*c)*(p + 1)), x] - Dist[1/(c*(b^2 - 4*a*c)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q - 1)*Simp[A*c*(2*c*d*(2*p + 3) + b*e*q) - C*(2*a*c*d - b^2*d*(p + 2) - a*b*e*q) + (C*(2*a*b*f*q - 2*a*c*e*(q + 1) + b^2*e*(p + q + 2)) + 2*A*c*(b*f*q + c*e*(2*p + q + 3)))*x - f*(-2*A*c^2*(2*p + 2*q + 3) + C*(2*a*c*(2*q + 1) - b^2*(p + 2*q + 2)))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, A, C}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && GtQ[q, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a*B - (A*c - a*C)*x)*(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q)/(2*a*c*(p + 1)), x] - Dist[2/((-4*a*c)*(p + 1)), Int[(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q - 1)*Simp[A*c*d*(2*p + 3) - a*(C*d + B*e*q) + (A*c*e*(2*p + q + 3) - a*(2*B*f*q + C*e*(q + 1)))*x - f*(a*C*(2*q + 1) - A*c*(2*p + 2*q + 3))*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, A, B, C}, x] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && GtQ[q, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((A*c - a*C)*x*(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q)/(2*a*c*(p + 1)), x] + Dist[2/(4*a*c*(p + 1)), Int[(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q - 1)*Simp[A*c*d*(2*p + 3) - a*C*d + (A*c*e*(2*p + q + 3) - a*C*e*(q + 1))*x - f*(a*C*(2*q + 1) - A*c*(2*p + 2*q + 3))*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, A, C}, x] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && GtQ[q, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((A*b*c - 2*a*B*c + a*b*C - (c*(b*B - 2*A*c) - C*(b^2 - 2*a*c))*x)*(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^q)/(c*(b^2 - 4*a*c)*(p + 1)), x] - Dist[1/(c*(b^2 - 4*a*c)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^(q - 1)*Simp[-(d*(c*(b*B - 2*A*c)*(2*p + 3) + C*(2*a*c - b^2*(p + 2)))) + (2*f*q*(A*b*c - 2*a*B*c + a*b*C))*x - f*(c*(b*B - 2*A*c)*(2*p + 2*q + 3) + C*(2*a*c*(2*q + 1) - b^2*(p + 2*q + 2)))*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, A, B, C}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && GtQ[q, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((A*b*c + a*b*C + (2*A*c^2 + C*(b^2 - 2*a*c))*x)*(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^q)/(c*(b^2 - 4*a*c)*(p + 1)), x] - Dist[1/(c*(b^2 - 4*a*c)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^(q - 1)*Simp[A*c*(2*c*d*(2*p + 3)) - C*(2*a*c*d - b^2*d*(p + 2)) + (C*(2*a*b*f*q) + 2*A*c*(b*f*q))*x - f*(-2*A*c^2*(2*p + 2*q + 3) + C*(2*a*c*(2*q + 1) - b^2*(p + 2*q + 2)))*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, A, C}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && GtQ[q, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q + 1)*((A*c - a*C)*(2*a*c*e - b*(c*d + a*f)) + (A*b - a*B)*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)) + c*(A*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)) - B*(b*c*d - 2*a*c*e + a*b*f) + C*(b^2*d - a*b*e - 2*a*(c*d - a*f)))*x))/((b^2 - 4*a*c)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1)), x] + Dist[1/((b^2 - 4*a*c)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q*Simp[(b*B - 2*A*c - 2*a*C)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1) + (b^2*(C*d + A*f) - b*(B*c*d + A*c*e + a*C*e + a*B*f) + 2*(A*c*(c*d - a*f) - a*(c*C*d - B*c*e - a*C*f)))*(a*f*(p + 1) - c*d*(p + 2)) - e*((A*c - a*C)*(2*a*c*e - b*(c*d + a*f)) + (A*b - a*B)*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)))*(p + q + 2) - (2*f*((A*c - a*C)*(2*a*c*e - b*(c*d + a*f)) + (A*b - a*B)*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)))*(p + q + 2) - (b^2*(C*d + A*f) - b*(B*c*d + A*c*e + a*C*e + a*B*f) + 2*(A*c*(c*d - a*f) - a*(c*C*d - B*c*e - a*C*f)))*(b*f*(p + 1) - c*e*(2*p + q + 4)))*x - c*f*(b^2*(C*d + A*f) - b*(B*c*d + A*c*e + a*C*e + a*B*f) + 2*(A*c*(c*d - a*f) - a*(c*C*d - B*c*e - a*C*f)))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, A, B, C, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && NeQ[(c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f), 0] && !( !IntegerQ[p] && ILtQ[q, -1]) && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q + 1)*((A*c - a*C)*(2*a*c*e - b*(c*d + a*f)) + (A*b)*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)) + c*(A*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)) + C*(b^2*d - a*b*e - 2*a*(c*d - a*f)))*x))/((b^2 - 4*a*c)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1)), x] + Dist[1/((b^2 - 4*a*c)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q*Simp[(-2*A*c - 2*a*C)*((c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f))*(p + 1) + (b^2*(C*d + A*f) - b*((Plus[A])*c*e + a*C*e) + 2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(a*f*(p + 1) - c*d*(p + 2)) - e*((A*c - a*C)*(2*a*c*e - b*(c*d + a*f)) + (A*b)*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)))*(p + q + 2) - (2*f*((A*c - a*C)*(2*a*c*e - b*(c*d + a*f)) + (A*b)*(2*c^2*d + b^2*f - c*(b*e + 2*a*f)))*(p + q + 2) - (b^2*(C*d + A*f) - b*(A*c*e + a*C*e) + 2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(b*f*(p + 1) - c*e*(2*p + q + 4)))*x - c*f*(b^2*(C*d + A*f) - b*(A*c*e + a*C*e) + 2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, A, C, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && NeQ[(c*d - a*f)^2 - (b*d - a*e)*(c*e - b*f), 0] && !( !IntegerQ[p] && ILtQ[q, -1]) && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q + 1)*((A*c - a*C)*(2*a*c*e) + (-(a*B))*(2*c^2*d - c*(2*a*f)) + c*(A*(2*c^2*d - c*(2*a*f)) - B*(-2*a*c*e) + C*(-2*a*(c*d - a*f)))*x))/((-4*a*c)*(a*c*e^2 + (c*d - a*f)^2)*(p + 1)), x] + Dist[1/((-4*a*c)*(a*c*e^2 + (c*d - a*f)^2)*(p + 1)), Int[(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q*Simp[(-2*A*c - 2*a*C)*((c*d - a*f)^2 - (-(a*e))*(c*e))*(p + 1) + (2*(A*c*(c*d - a*f) - a*(c*C*d - B*c*e - a*C*f)))*(a*f*(p + 1) - c*d*(p + 2)) - e*((A*c - a*C)*(2*a*c*e) + (-(a*B))*(2*c^2*d - c*((Plus[2])*a*f)))*(p + q + 2) - (2*f*((A*c - a*C)*(2*a*c*e) + (-(a*B))*(2*c^2*d - c*((Plus[2])*a*f)))*(p + q + 2) - (2*(A*c*(c*d - a*f) - a*(c*C*d - B*c*e - a*C*f)))*(-(c*e*(2*p + q + 4))))*x - c*f*(2*(A*c*(c*d - a*f) - a*(c*C*d - B*c*e - a*C*f)))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, A, B, C, q}, x] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && NeQ[a*c*e^2 + (c*d - a*f)^2, 0] && !( !IntegerQ[p] && ILtQ[q, -1]) && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^(q + 1)*((A*c - a*C)*(2*a*c*e) + c*(A*(2*c^2*d - c*(2*a*f)) + C*(-2*a*(c*d - a*f)))*x))/((-4*a*c)*(a*c*e^2 + (c*d - a*f)^2)*(p + 1)), x] + Dist[1/((-4*a*c)*(a*c*e^2 + (c*d - a*f)^2)*(p + 1)), Int[(a + c*x^2)^(p + 1)*(d + e*x + f*x^2)^q*Simp[(-2*A*c - 2*a*C)*((c*d - a*f)^2 - (-(a*e))*(c*e))*(p + 1) + (2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(a*f*(p + 1) - c*d*(p + 2)) - e*((A*c - a*C)*(2*a*c*e))*(p + q + 2) - (2*f*((A*c - a*C)*(2*a*c*e))*(p + q + 2) - (2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(-(c*e*(2*p + q + 4))))*x - c*f*(2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, A, C, q}, x] && NeQ[e^2 - 4*d*f, 0] && LtQ[p, -1] && NeQ[a*c*e^2 + (c*d - a*f)^2, 0] && !( !IntegerQ[p] && ILtQ[q, -1]) && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^(q + 1)*((A*c - a*C)*(-(b*(c*d + a*f))) + (A*b - a*B)*(2*c^2*d + b^2*f - c*(2*a*f)) + c*(A*(2*c^2*d + b^2*f - c*(2*a*f)) - B*(b*c*d + a*b*f) + C*(b^2*d - 2*a*(c*d - a*f)))*x))/((b^2 - 4*a*c)*(b^2*d*f + (c*d - a*f)^2)*(p + 1)), x] + Dist[1/((b^2 - 4*a*c)*(b^2*d*f + (c*d - a*f)^2)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^q*Simp[(b*B - 2*A*c - 2*a*C)*((c*d - a*f)^2 - (b*d)*(-(b*f)))*(p + 1) + (b^2*(C*d + A*f) - b*(B*c*d + a*B*f) + 2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(a*f*(p + 1) - c*d*(p + 2)) - (2*f*((A*c - a*C)*(-(b*(c*d + a*f))) + (A*b - a*B)*(2*c^2*d + b^2*f - c*(2*a*f)))*(p + q + 2) - (b^2*(C*d + A*f) - b*(B*c*d + a*B*f) + 2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(b*f*(p + 1)))*x - c*f*(b^2*(C*d + A*f) - b*(B*c*d + a*B*f) + 2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, A, B, C, q}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && NeQ[b^2*d*f + (c*d - a*f)^2, 0] && !( !IntegerQ[p] && ILtQ[q, -1]) && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^(q + 1)*((A*c - a*C)*(-(b*(c*d + a*f))) + (A*b)*(2*c^2*d + b^2*f - c*(2*a*f)) + c*(A*(2*c^2*d + b^2*f - c*(2*a*f)) + C*(b^2*d - 2*a*(c*d - a*f)))*x))/((b^2 - 4*a*c)*(b^2*d*f + (c*d - a*f)^2)*(p + 1)), x] + Dist[1/((b^2 - 4*a*c)*(b^2*d*f + (c*d - a*f)^2)*(p + 1)), Int[(a + b*x + c*x^2)^(p + 1)*(d + f*x^2)^q*Simp[(-2*A*c - 2*a*C)*((c*d - a*f)^2 - (b*d)*(-(b*f)))*(p + 1) + (b^2*(C*d + A*f) + 2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(a*f*(p + 1) - c*d*(p + 2)) - (2*f*((A*c - a*C)*(-(b*(c*d + a*f))) + (A*b)*(2*c^2*d + b^2*f - c*(2*a*f)))*(p + q + 2) - (b^2*(C*d + A*f) + 2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(b*f*(p + 1)))*x - c*f*(b^2*(C*d + A*f) + 2*(A*c*(c*d - a*f) - a*(c*C*d - a*C*f)))*(2*p + 2*q + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, A, C, q}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && NeQ[b^2*d*f + (c*d - a*f)^2, 0] && !( !IntegerQ[p] && ILtQ[q, -1]) && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((B*c*f*(2*p + 2*q + 3) + C*(b*f*p - c*e*(2*p + q + 2)) + 2*c*C*f*(p + q + 1)*x)*(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^(q + 1))/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), x] - Dist[1/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), Int[(a + b*x + c*x^2)^(p - 1)*(d + e*x + f*x^2)^q*Simp[p*(b*d - a*e)*(C*(c*e - b*f)*(q + 1) - c*(C*e - B*f)*(2*p + 2*q + 3)) + (p + q + 1)*(b^2*C*d*f*p + a*c*(C*(2*d*f - e^2*(2*p + q + 2)) + f*(B*e - 2*A*f)*(2*p + 2*q + 3))) + (2*p*(c*d - a*f)*(C*(c*e - b*f)*(q + 1) - c*(C*e - B*f)*(2*p + 2*q + 3)) + (p + q + 1)*(C*e*f*p*(b^2 - 4*a*c) - b*c*(C*(e^2 - 4*d*f)*(2*p + q + 2) + f*(2*C*d - B*e + 2*A*f)*(2*p + 2*q + 3))))*x + (p*(c*e - b*f)*(C*(c*e - b*f)*(q + 1) - c*(C*e - B*f)*(2*p + 2*q + 3)) + (p + q + 1)*(C*f^2*p*(b^2 - 4*a*c) - c^2*(C*(e^2 - 4*d*f)*(2*p + q + 2) + f*(2*C*d - B*e + 2*A*f)*(2*p + 2*q + 3))))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, A, B, C, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && GtQ[p, 0] && NeQ[p + q + 1, 0] && NeQ[2*p + 2*q + 3, 0] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((C*(b*f*p - c*e*(2*p + q + 2)) + 2*c*C*f*(p + q + 1)*x)*(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^(q + 1))/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), x] - Dist[1/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), Int[(a + b*x + c*x^2)^(p - 1)*(d + e*x + f*x^2)^q*Simp[p*(b*d - a*e)*(C*(c*e - b*f)*(q + 1) - c*(C*e)*(2*p + 2*q + 3)) + (p + q + 1)*(b^2*C*d*f*p + a*c*(C*(2*d*f - e^2*(2*p + q + 2)) + f*(-2*A*f)*(2*p + 2*q + 3))) + (2*p*(c*d - a*f)*(C*(c*e - b*f)*(q + 1) - c*(C*e)*(2*p + 2*q + 3)) + (p + q + 1)*(C*e*f*p*(b^2 - 4*a*c) - b*c*(C*(e^2 - 4*d*f)*(2*p + q + 2) + f*(2*C*d + 2*A*f)*(2*p + 2*q + 3))))*x + (p*(c*e - b*f)*(C*(c*e - b*f)*(q + 1) - c*(C*e)*(2*p + 2*q + 3)) + (p + q + 1)*(C*f^2*p*(b^2 - 4*a*c) - c^2*(C*(e^2 - 4*d*f)*(2*p + q + 2) + f*(2*C*d + 2*A*f)*(2*p + 2*q + 3))))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, A, C, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0] && GtQ[p, 0] && NeQ[p + q + 1, 0] && NeQ[2*p + 2*q + 3, 0] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((B*c*f*(2*p + 2*q + 3) + C*(-(c*e*(2*p + q + 2))) + 2*c*C*f*(p + q + 1)*x)*(a + c*x^2)^p*(d + e*x + f*x^2)^(q + 1))/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), x] - Dist[1/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), Int[(a + c*x^2)^(p - 1)*(d + e*x + f*x^2)^q*Simp[p*(-(a*e))*(C*(c*e)*(q + 1) - c*(C*e - B*f)*(2*p + 2*q + 3)) + (p + q + 1)*(a*c*(C*(2*d*f - e^2*(2*p + q + 2)) + f*(B*e - 2*A*f)*(2*p + 2*q + 3))) + (2*p*(c*d - a*f)*(C*(c*e)*(q + 1) - c*(C*e - B*f)*(2*p + 2*q + 3)) + (p + q + 1)*(C*e*f*p*(-4*a*c)))*x + (p*(c*e)*(C*(c*e)*(q + 1) - c*(C*e - B*f)*(2*p + 2*q + 3)) + (p + q + 1)*(C*f^2*p*(-4*a*c) - c^2*(C*(e^2 - 4*d*f)*(2*p + q + 2) + f*(2*C*d - B*e + 2*A*f)*(2*p + 2*q + 3))))*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, A, B, C, q}, x] && NeQ[e^2 - 4*d*f, 0] && GtQ[p, 0] && NeQ[p + q + 1, 0] && NeQ[2*p + 2*q + 3, 0] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((C*(-(c*e*(2*p + q + 2))) + 2*c*C*f*(p + q + 1)*x)*(a + c*x^2)^p*(d + e*x + f*x^2)^(q + 1))/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), x] - Dist[1/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), Int[(a + c*x^2)^(p - 1)*(d + e*x + f*x^2)^q*Simp[p*(-(a*e))*(C*(c*e)*(q + 1) - c*(C*e)*(2*p + 2*q + 3)) + (p + q + 1)*(a*c*(C*(2*d*f - e^2*(2*p + q + 2)) + f*(-2*A*f)*(2*p + 2*q + 3))) + (2*p*(c*d - a*f)*(C*(c*e)*(q + 1) - c*(C*e)*(2*p + 2*q + 3)) + (p + q + 1)*(C*e*f*p*(-4*a*c)))*x + (p*(c*e)*(C*(c*e)*(q + 1) - c*(C*e)*(2*p + 2*q + 3)) + (p + q + 1)*(C*f^2*p*(-4*a*c) - c^2*(C*(e^2 - 4*d*f)*(2*p + q + 2) + f*(2*C*d + 2*A*f)*(2*p + 2*q + 3))))*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, A, C, q}, x] && NeQ[e^2 - 4*d*f, 0] && GtQ[p, 0] && NeQ[p + q + 1, 0] && NeQ[2*p + 2*q + 3, 0] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((B*c*f*(2*p + 2*q + 3) + C*(b*f*p) + 2*c*C*f*(p + q + 1)*x)*(a + b*x + c*x^2)^p*(d + f*x^2)^(q + 1))/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), x] - Dist[1/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), Int[(a + b*x + c*x^2)^(p - 1)*(d + f*x^2)^q*Simp[p*(b*d)*(C*(-(b*f))*(q + 1) - c*(-(B*f))*(2*p + 2*q + 3)) + (p + q + 1)*(b^2*C*d*f*p + a*c*(C*(2*d*f) + f*(-2*A*f)*(2*p + 2*q + 3))) + (2*p*(c*d - a*f)*(C*(-(b*f))*(q + 1) - c*(-(B*f))*(2*p + 2*q + 3)) + (p + q + 1)*(-(b*c*(C*(-4*d*f)*(2*p + q + 2) + f*(2*C*d + 2*A*f)*(2*p + 2*q + 3)))))*x + (p*(-(b*f))*(C*(-(b*f))*(q + 1) - c*(-(B*f))*(2*p + 2*q + 3)) + (p + q + 1)*(C*f^2*p*(b^2 - 4*a*c) - c^2*(C*(-4*d*f)*(2*p + q + 2) + f*(2*C*d + 2*A*f)*(2*p + 2*q + 3))))*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, A, B, C, q}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && NeQ[p + q + 1, 0] && NeQ[2*p + 2*q + 3, 0] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[p, Blank[]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((C*(b*f*p) + 2*c*C*f*(p + q + 1)*x)*(a + b*x + c*x^2)^p*(d + f*x^2)^(q + 1))/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), x] - Dist[1/(2*c*f^2*(p + q + 1)*(2*p + 2*q + 3)), Int[(a + b*x + c*x^2)^(p - 1)*(d + f*x^2)^q*Simp[p*(b*d)*(C*(-(b*f))*(q + 1)) + (p + q + 1)*(b^2*C*d*f*p + a*c*(C*(2*d*f) + f*(-2*A*f)*(2*p + 2*q + 3))) + (2*p*(c*d - a*f)*(C*(-(b*f))*(q + 1)) + (p + q + 1)*(-(b*c*(C*(-4*d*f)*(2*p + q + 2) + f*(2*C*d + 2*A*f)*(2*p + 2*q + 3)))))*x + (p*(-(b*f))*(C*(-(b*f))*(q + 1)) + (p + q + 1)*(C*f^2*p*(b^2 - 4*a*c) - c^2*(C*(-4*d*f)*(2*p + q + 2) + f*(2*C*d + 2*A*f)*(2*p + 2*q + 3))))*x^2, x], x], x] /; FreeQ[{a, b, c, d, f, A, C, q}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && NeQ[p + q + 1, 0] && NeQ[2*p + 2*q + 3, 0] && !IGtQ[p, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = c^2*d^2 - b*c*d*e + a*c*e^2 + b^2*d*f - 2*a*c*d*f - a*b*e*f + a^2*f^2}, Dist[1/q, Int[(A*c^2*d - a*c*C*d - A*b*c*e + a*B*c*e + A*b^2*f - a*b*B*f - a*A*c*f + a^2*C*f + c*(B*c*d - b*C*d - A*c*e + a*C*e + A*b*f - a*B*f)*x)/(a + b*x + c*x^2), x], x] + Dist[1/q, Int[(c*C*d^2 - B*c*d*e + A*c*e^2 + b*B*d*f - A*c*d*f - a*C*d*f - A*b*e*f + a*A*f^2 - f*(B*c*d - b*C*d - A*c*e + a*C*e + A*b*f - a*B*f)*x)/(d + e*x + f*x^2), x], x] /; NeQ[q, 0]] /; FreeQ[{a, b, c, d, e, f, A, B, C}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = c^2*d^2 - b*c*d*e + a*c*e^2 + b^2*d*f - 2*a*c*d*f - a*b*e*f + a^2*f^2}, Dist[1/q, Int[(A*c^2*d - a*c*C*d - A*b*c*e + A*b^2*f - a*A*c*f + a^2*C*f + c*(-(b*C*d) - A*c*e + a*C*e + A*b*f)*x)/(a + b*x + c*x^2), x], x] + Dist[1/q, Int[(c*C*d^2 + A*c*e^2 - A*c*d*f - a*C*d*f - A*b*e*f + a*A*f^2 - f*(-(b*C*d) - A*c*e + a*C*e + A*b*f)*x)/(d + e*x + f*x^2), x], x] /; NeQ[q, 0]] /; FreeQ[{a, b, c, d, e, f, A, C}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = c^2*d^2 + b^2*d*f - 2*a*c*d*f + a^2*f^2}, Dist[1/q, Int[(A*c^2*d - a*c*C*d + A*b^2*f - a*b*B*f - a*A*c*f + a^2*C*f + c*(B*c*d - b*C*d + A*b*f - a*B*f)*x)/(a + b*x + c*x^2), x], x] + Dist[1/q, Int[(c*C*d^2 + b*B*d*f - A*c*d*f - a*C*d*f + a*A*f^2 - f*(B*c*d - b*C*d + A*b*f - a*B*f)*x)/(d + f*x^2), x], x] /; NeQ[q, 0]] /; FreeQ[{a, b, c, d, f, A, B, C}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = c^2*d^2 + b^2*d*f - 2*a*c*d*f + a^2*f^2}, Dist[1/q, Int[(A*c^2*d - a*c*C*d + A*b^2*f - a*A*c*f + a^2*C*f + c*(-(b*C*d) + A*b*f)*x)/(a + b*x + c*x^2), x], x] + Dist[1/q, Int[(c*C*d^2 - A*c*d*f - a*C*d*f + a*A*f^2 - f*(-(b*C*d) + A*b*f)*x)/(d + f*x^2), x], x] /; NeQ[q, 0]] /; FreeQ[{a, b, c, d, f, A, C}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[C/c, Int[1/Sqrt[d + e*x + f*x^2], x], x] + Dist[1/c, Int[(A*c - a*C + (B*c - b*C)*x)/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, A, B, C}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[C/c, Int[1/Sqrt[d + e*x + f*x^2], x], x] + Dist[1/c, Int[(A*c - a*C - b*C*x)/((a + b*x + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] /; FreeQ[{a, b, c, d, e, f, A, C}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[C/c, Int[1/Sqrt[d + e*x + f*x^2], x], x] + Dist[1/c, Int[(A*c - a*C + B*c*x)/((a + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] /; FreeQ[{a, c, d, e, f, A, B, C}, x] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[C/c, Int[1/Sqrt[d + e*x + f*x^2], x], x] + Dist[(A*c - a*C)/c, Int[1/((a + c*x^2)*Sqrt[d + e*x + f*x^2]), x], x] /; FreeQ[{a, c, d, e, f, A, C}, x] && NeQ[e^2 - 4*d*f, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[C/c, Int[1/Sqrt[d + f*x^2], x], x] + Dist[1/c, Int[(A*c - a*C + (B*c - b*C)*x)/((a + b*x + c*x^2)*Sqrt[d + f*x^2]), x], x] /; FreeQ[{a, b, c, d, f, A, B, C}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Pattern[x, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[C/c, Int[1/Sqrt[d + f*x^2], x], x] + Dist[1/c, Int[(A*c - a*C - b*C*x)/((a + b*x + c*x^2)*Sqrt[d + f*x^2]), x], x] /; FreeQ[{a, b, c, d, f, A, C}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^q*(A + B*x + C*x^2), x], x, u], x] /; FreeQ[{a, b, c, d, e, f, A, B, C, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[u, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^q*(A + B*x), x], x, u], x] /; FreeQ[{a, b, c, d, e, f, A, B, C, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x + c*x^2)^p*(d + e*x + f*x^2)^q*(A + C*x^2), x], x, u], x] /; FreeQ[{a, b, c, d, e, f, A, C, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + c*x^2)^p*(d + e*x + f*x^2)^q*(A + B*x + C*x^2), x], x, u], x] /; FreeQ[{a, c, d, e, f, A, B, C, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[B, Blank[]]], Pattern[u, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + c*x^2)^p*(d + e*x + f*x^2)^q*(A + B*x), x], x, u], x] /; FreeQ[{a, c, d, e, f, A, B, C, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[p, Blank[]]]], Plus[Optional[Pattern[A, Blank[]]], Times[Optional[Pattern[C, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Pattern[u, Blank[]]], Times[Optional[Pattern[f, Blank[]]], Power[Pattern[u, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + c*x^2)^p*(d + e*x + f*x^2)^q*(A + C*x^2), x], x, u], x] /; FreeQ[{a, c, d, e, f, A, C, p, q}, x] && LinearQ[u, x] && NeQ[u, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^2 + c*x^4)^p/(b + 2*c*x^2)^(2*p), Int[(b + 2*c*x^2)^(2*p), x], x] /; FreeQ[{a, b, c, p}, x] && EqQ[b^2 - 4*a*c, 0] && IntegerQ[p - 1/2]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^2 + c*x^4)^FracPart[p])/(1 + (2*c*x^2)/b)^(2*FracPart[p]), Int[(1 + (2*c*x^2)/b)^(2*p), x], x] /; FreeQ[{a, b, c, p}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[2*p]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(a + b*x^2 + c*x^4)^p)/(4*p + 1), x] + Dist[(2*p)/(4*p + 1), Int[(2*a + b*x^2)*(a + b*x^2 + c*x^4)^(p - 1), x], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && IntegerQ[2*p]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(b^2 - 2*a*c + b*c*x^2)*(a + b*x^2 + c*x^4)^(p + 1))/(2*a*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(2*a*(p + 1)*(b^2 - 4*a*c)), Int[(b^2 - 2*a*c + 2*(p + 1)*(b^2 - 4*a*c) + b*c*(4*p + 7)*x^2)*(a + b*x^2 + c*x^4)^(p + 1), x], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && IntegerQ[2*p]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[c/q, Int[1/(b/2 - q/2 + c*x^2), x], x] - Dist[c/q, Int[1/(b/2 + q/2 + c*x^2), x], x]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[b^2 - 4*a*c]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 2]}, With[{r = Rt[2*q - b/c, 2]}, Dist[1/(2*c*q*r), Int[(r - x)/(q - r*x + x^2), x], x] + Dist[1/(2*c*q*r), Int[(r + x)/(q + r*x + x^2), x], x]]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && NegQ[b^2 - 4*a*c]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[2*Sqrt[-c], Int[1/(Sqrt[b + q + 2*c*x^2]*Sqrt[-b + q - 2*c*x^2]), x], x]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0] && LtQ[c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 4]}, Simp[((1 + q^2*x^2)*Sqrt[(a + b*x^2 + c*x^4)/(a*(1 + q^2*x^2)^2)]*EllipticF[2*ArcTan[q*x], 1/2 - (b*q^2)/(4*c)])/(2*q*Sqrt[a + b*x^2 + c*x^4]), x]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0] && GtQ[c/a, 0] && LtQ[b/a, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[(Sqrt[-2*a - (b - q)*x^2]*Sqrt[(2*a + (b + q)*x^2)/q]*EllipticF[ArcSin[x/Sqrt[(2*a + (b + q)*x^2)/(2*q)]], (b + q)/(2*q)])/(2*Sqrt[-a]*Sqrt[a + b*x^2 + c*x^4]), x] /; IntegerQ[q]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0] && LtQ[a, 0] && GtQ[c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[(Sqrt[(2*a + (b - q)*x^2)/(2*a + (b + q)*x^2)]*Sqrt[(2*a + (b + q)*x^2)/q]*EllipticF[ArcSin[x/Sqrt[(2*a + (b + q)*x^2)/(2*q)]], (b + q)/(2*q)])/(2*Sqrt[a + b*x^2 + c*x^4]*Sqrt[a/(2*a + (b + q)*x^2)]), x]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0] && LtQ[a, 0] && GtQ[c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[((2*a + (b + q)*x^2)*Sqrt[(2*a + (b - q)*x^2)/(2*a + (b + q)*x^2)]*EllipticF[ArcTan[Rt[(b + q)/(2*a), 2]*x], (2*q)/(b + q)])/(2*a*Rt[(b + q)/(2*a), 2]*Sqrt[a + b*x^2 + c*x^4]), x] /; PosQ[(b + q)/a] && !(PosQ[(b - q)/a] && SimplerSqrtQ[(b - q)/(2*a), (b + q)/(2*a)])] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[((2*a + (b - q)*x^2)*Sqrt[(2*a + (b + q)*x^2)/(2*a + (b - q)*x^2)]*EllipticF[ArcTan[Rt[(b - q)/(2*a), 2]*x], (-2*q)/(b - q)])/(2*a*Rt[(b - q)/(2*a), 2]*Sqrt[a + b*x^2 + c*x^4]), x] /; PosQ[(b - q)/a]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[(Sqrt[1 + ((b + q)*x^2)/(2*a)]*Sqrt[1 + ((b - q)*x^2)/(2*a)]*EllipticF[ArcSin[Rt[-((b + q)/(2*a)), 2]*x], (b - q)/(b + q)])/(Rt[-((b + q)/(2*a)), 2]*Sqrt[a + b*x^2 + c*x^4]), x] /; NegQ[(b + q)/a] && !(NegQ[(b - q)/a] && SimplerSqrtQ[-((b - q)/(2*a)), -((b + q)/(2*a))])] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[(Sqrt[1 + ((b - q)*x^2)/(2*a)]*Sqrt[1 + ((b + q)*x^2)/(2*a)]*EllipticF[ArcSin[Rt[-((b - q)/(2*a)), 2]*x], (b + q)/(b - q)])/(Rt[-((b - q)/(2*a)), 2]*Sqrt[a + b*x^2 + c*x^4]), x] /; NegQ[(b - q)/a]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 4]}, Simp[((1 + q^2*x^2)*Sqrt[(a + b*x^2 + c*x^4)/(a*(1 + q^2*x^2)^2)]*EllipticF[2*ArcTan[q*x], 1/2 - (b*q^2)/(4*c)])/(2*q*Sqrt[a + b*x^2 + c*x^4]), x]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[c/a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(Sqrt[1 + (2*c*x^2)/(b - q)]*Sqrt[1 + (2*c*x^2)/(b + q)])/Sqrt[a + b*x^2 + c*x^4], Int[1/(Sqrt[1 + (2*c*x^2)/(b - q)]*Sqrt[1 + (2*c*x^2)/(b + q)]), x], x]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && NegQ[c/a]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(a^IntPart[p]*(a + b*x^2 + c*x^4)^FracPart[p])/((1 + (2*c*x^2)/(b + q))^FracPart[p]*(1 + (2*c*x^2)/(b - q))^FracPart[p]), Int[(1 + (2*c*x^2)/(b + q))^p*(1 + (2*c*x^2)/(b - q))^p, x], x]] /; FreeQ[{a, b, c, p}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Power[Pattern[P4, Blank[]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := With[{a = Coeff[P4, x, 0], b = Coeff[P4, x, 1], c = Coeff[P4, x, 2], d = Coeff[P4, x, 3], e = Coeff[P4, x, 4]}, Subst[Int[SimplifyIntegrand[(a + d^4/(256*e^3) - (b*d)/(8*e) + (c - (3*d^2)/(8*e))*x^2 + e*x^4)^p, x], x], x, d/(4*e) + x] /; EqQ[d^3 - 4*c*d*e + 8*b*e^2, 0] && NeQ[d, 0]] /; FreeQ[p, x] && PolyQ[P4, x, 4] && NeQ[p, 2] && NeQ[p, 3]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Subst[Int[(a + b*x + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, b, c, p}, x]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d*x)^m*(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c, d, m}, x] && IGtQ[p, 0] && !IntegerQ[(m + 1)/2]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(2*(d*x)^(m + 1)*(a + b*x^2 + c*x^4)^(p + 1))/(d*(m + 3)*(2*a + b*x^2)), x] - Simp[((d*x)^(m + 1)*(a + b*x^2 + c*x^4)^(p + 1))/(2*a*d*(m + 3)*(p + 1)), x] /; FreeQ[{a, b, c, d, m, p}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && EqQ[m + 4*p + 5, 0] && LtQ[p, -1]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*x)^(m + 1)*(a + b*x^2 + c*x^4)^(p + 1))/(4*a*d*(p + 1)*(2*p + 1)), x] - Simp[((d*x)^(m + 1)*(2*a + b*x^2)*(a + b*x^2 + c*x^4)^p)/(4*a*d*(2*p + 1)), x] /; FreeQ[{a, b, c, d, m, p}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && EqQ[m + 4*p + 5, 0] && NeQ[p, -2^(-1)]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Subst[Int[x^((m - 1)/2)*(a + b*x + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, b, c, p}, x] && EqQ[b^2 - 4*a*c, 0] && IntegerQ[p - 1/2] && IntegerQ[(m - 1)/2] && (GtQ[m, 0] || LtQ[0, 4*p, -m - 1])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^2 + c*x^4)^FracPart[p]/(c^IntPart[p]*(b/2 + c*x^2)^(2*FracPart[p])), Int[(d*x)^m*(b/2 + c*x^2)^(2*p), x], x] /; FreeQ[{a, b, c, d, m, p}, x] && EqQ[b^2 - 4*a*c, 0] && IntegerQ[p - 1/2]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^2 + c*x^4)^FracPart[p])/(1 + (2*c*x^2)/b)^(2*FracPart[p]), Int[(d*x)^m*(1 + (2*c*x^2)/b)^(2*p), x], x] /; FreeQ[{a, b, c, d, m, p}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[2*p]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Subst[Int[x^((m - 1)/2)*(a + b*x + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, b, c, p}, x] && IntegerQ[(m - 1)/2]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, Dist[k/d, Subst[Int[x^(k*(m + 1) - 1)*(a + (b*x^(2*k))/d^2 + (c*x^(4*k))/d^4)^p, x], x, (d*x)^(1/k)], x]] /; FreeQ[{a, b, c, d, p}, x] && NeQ[b^2 - 4*a*c, 0] && FractionQ[m] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(d*x)^(m - 1)*(a + b*x^2 + c*x^4)^p*(2*b*p + c*(m + 4*p - 1)*x^2))/(c*(m + 4*p + 1)*(m + 4*p - 1)), x] - Dist[(2*p*d^2)/(c*(m + 4*p + 1)*(m + 4*p - 1)), Int[(d*x)^(m - 2)*(a + b*x^2 + c*x^4)^(p - 1)*Simp[a*b*(m - 1) - (2*a*c*(m + 4*p - 1) - b^2*(m + 2*p - 1))*x^2, x], x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && GtQ[m, 1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*x)^(m + 1)*(a + b*x^2 + c*x^4)^p)/(d*(m + 1)), x] - Dist[(2*p)/(d^2*(m + 1)), Int[(d*x)^(m + 2)*(b + 2*c*x^2)*(a + b*x^2 + c*x^4)^(p - 1), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && LtQ[m, -1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*x)^(m + 1)*(a + b*x^2 + c*x^4)^p)/(d*(m + 4*p + 1)), x] + Dist[(2*p)/(m + 4*p + 1), Int[(d*x)^m*(2*a + b*x^2)*(a + b*x^2 + c*x^4)^(p - 1), x], x] /; FreeQ[{a, b, c, d, m}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && NeQ[m + 4*p + 1, 0] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(d*x)^(m - 1)*(b + 2*c*x^2)*(a + b*x^2 + c*x^4)^(p + 1))/(2*(p + 1)*(b^2 - 4*a*c)), x] - Dist[d^2/(2*(p + 1)*(b^2 - 4*a*c)), Int[(d*x)^(m - 2)*(b*(m - 1) + 2*c*(m + 4*p + 5)*x^2)*(a + b*x^2 + c*x^4)^(p + 1), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && GtQ[m, 1] && LeQ[m, 3] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(d^3*(d*x)^(m - 3)*(2*a + b*x^2)*(a + b*x^2 + c*x^4)^(p + 1))/(2*(p + 1)*(b^2 - 4*a*c)), x] + Dist[d^4/(2*(p + 1)*(b^2 - 4*a*c)), Int[(d*x)^(m - 4)*(2*a*(m - 3) + b*(m + 4*p + 3)*x^2)*(a + b*x^2 + c*x^4)^(p + 1), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && GtQ[m, 3] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d*x)^(m + 1)*(b^2 - 2*a*c + b*c*x^2)*(a + b*x^2 + c*x^4)^(p + 1))/(2*a*d*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(2*a*(p + 1)*(b^2 - 4*a*c)), Int[(d*x)^m*(a + b*x^2 + c*x^4)^(p + 1)*Simp[b^2*(m + 2*p + 3) - 2*a*c*(m + 4*p + 5) + b*c*(m + 4*p + 7)*x^2, x], x], x] /; FreeQ[{a, b, c, d, m}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d^3*(d*x)^(m - 3)*(a + b*x^2 + c*x^4)^(p + 1))/(c*(m + 4*p + 1)), x] - Dist[d^4/(c*(m + 4*p + 1)), Int[(d*x)^(m - 4)*Simp[a*(m - 3) + b*(m + 2*p - 1)*x^2, x]*(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c, d, p}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[m, 3] && NeQ[m + 4*p + 1, 0] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*x)^(m + 1)*(a + b*x^2 + c*x^4)^(p + 1))/(a*d*(m + 1)), x] - Dist[1/(a*d^2*(m + 1)), Int[(d*x)^(m + 2)*(b*(m + 2*p + 3) + c*(m + 4*p + 5)*x^2)*(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c, d, p}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[m, -1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(d*x)^(m + 1)/(a*d*(m + 1)), x] - Dist[1/(a*d^2), Int[((d*x)^(m + 2)*(b + c*x^2))/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[m, -1]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[PolynomialDivide[x^m, a + b*x^2 + c*x^4, x], x] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[m, 5]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(d^3*(d*x)^(m - 3))/(c*(m - 3)), x] - Dist[d^4/c, Int[((d*x)^(m - 4)*(a + b*x^2))/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[m, 3]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 2]}, Dist[1/2, Int[(q + x^2)/(a + b*x^2 + c*x^4), x], x] - Dist[1/2, Int[(q - x^2)/(a + b*x^2 + c*x^4), x], x]] /; FreeQ[{a, b, c}, x] && LtQ[b^2 - 4*a*c, 0] && PosQ[a*c]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 2]}, With[{r = Rt[2*q - b/c, 2]}, -Dist[1/(2*c*r), Int[(x^(m - 3)*(q - r*x))/(q - r*x + x^2), x], x] + Dist[1/(2*c*r), Int[(x^(m - 3)*(q + r*x))/(q + r*x + x^2), x], x]]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && GeQ[m, 3] && LtQ[m, 4] && NegQ[b^2 - 4*a*c]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 2]}, With[{r = Rt[2*q - b/c, 2]}, Dist[1/(2*c*r), Int[x^(m - 1)/(q - r*x + x^2), x], x] - Dist[1/(2*c*r), Int[x^(m - 1)/(q + r*x + x^2), x], x]]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && GeQ[m, 1] && LtQ[m, 3] && NegQ[b^2 - 4*a*c]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(d^2*(b/q + 1))/2, Int[(d*x)^(m - 2)/(b/2 + q/2 + c*x^2), x], x] - Dist[(d^2*(b/q - 1))/2, Int[(d*x)^(m - 2)/(b/2 - q/2 + c*x^2), x], x]] /; FreeQ[{a, b, c, d}, x] && NeQ[b^2 - 4*a*c, 0] && GeQ[m, 2]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[c/q, Int[(d*x)^m/(b/2 - q/2 + c*x^2), x], x] - Dist[c/q, Int[(d*x)^m/(b/2 + q/2 + c*x^2), x], x]] /; FreeQ[{a, b, c, d, m}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[2*Sqrt[-c], Int[x^2/(Sqrt[b + q + 2*c*x^2]*Sqrt[-b + q - 2*c*x^2]), x], x]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0] && LtQ[c, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, Dist[1/q, Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] - Dist[1/q, Int[(1 - q*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0] && GtQ[c/a, 0] && LtQ[b/a, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, -Dist[(b - q)/(2*c), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[1/(2*c), Int[(b - q + 2*c*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0] && LtQ[a, 0] && GtQ[c, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[(x*(b + q + 2*c*x^2))/(2*c*Sqrt[a + b*x^2 + c*x^4]), x] - Simp[(Rt[(b + q)/(2*a), 2]*(2*a + (b + q)*x^2)*Sqrt[(2*a + (b - q)*x^2)/(2*a + (b + q)*x^2)]*EllipticE[ArcTan[Rt[(b + q)/(2*a), 2]*x], (2*q)/(b + q)])/(2*c*Sqrt[a + b*x^2 + c*x^4]), x] /; PosQ[(b + q)/a] && !(PosQ[(b - q)/a] && SimplerSqrtQ[(b - q)/(2*a), (b + q)/(2*a)])] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[(x*(b - q + 2*c*x^2))/(2*c*Sqrt[a + b*x^2 + c*x^4]), x] - Simp[(Rt[(b - q)/(2*a), 2]*(2*a + (b - q)*x^2)*Sqrt[(2*a + (b + q)*x^2)/(2*a + (b - q)*x^2)]*EllipticE[ArcTan[Rt[(b - q)/(2*a), 2]*x], (-2*q)/(b - q)])/(2*c*Sqrt[a + b*x^2 + c*x^4]), x] /; PosQ[(b - q)/a]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, -Dist[(b + q)/(2*c), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[1/(2*c), Int[(b + q + 2*c*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] /; NegQ[(b + q)/a] && !(NegQ[(b - q)/a] && SimplerSqrtQ[-((b - q)/(2*a)), -((b + q)/(2*a))])] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, -Dist[(b - q)/(2*c), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[1/(2*c), Int[(b - q + 2*c*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] /; NegQ[(b - q)/a]] /; FreeQ[{a, b, c}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, Dist[1/q, Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] - Dist[1/q, Int[(1 - q*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[c/a]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(Sqrt[1 + (2*c*x^2)/(b - q)]*Sqrt[1 + (2*c*x^2)/(b + q)])/Sqrt[a + b*x^2 + c*x^4], Int[x^2/(Sqrt[1 + (2*c*x^2)/(b - q)]*Sqrt[1 + (2*c*x^2)/(b + q)]), x], x]] /; FreeQ[{a, b, c}, x] && NeQ[b^2 - 4*a*c, 0] && NegQ[c/a]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^2 + c*x^4)^FracPart[p])/((1 + (2*c*x^2)/(b + Rt[b^2 - 4*a*c, 2]))^FracPart[p]*(1 + (2*c*x^2)/(b - Rt[b^2 - 4*a*c, 2]))^FracPart[p]), Int[(d*x)^m*(1 + (2*c*x^2)/(b + Sqrt[b^2 - 4*a*c]))^p*(1 + (2*c*x^2)/(b - Sqrt[b^2 - 4*a*c]))^p, x], x] /; FreeQ[{a, b, c, d, m, p}, x]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[v, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[v, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[u^m/(Coefficient[v, x, 1]*v^m), Subst[Int[x^m*(a + b*x^2 + c*x^(2*2))^p, x], x, v], x] /; FreeQ[{a, b, c, m, p}, x] && LinearPairQ[u, v, x]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-3, 4]]], Pattern[x, Blank[Symbol]]] := Simp[(-2*(c*d - b*e)*(b*x^2 + c*x^4)^(1/4))/(b*c*x), x] + Dist[e/c, Int[(b*x^2 + c*x^4)^(1/4)/x^2, x], x] /; FreeQ[{b, c, d, e}, x]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(b*x^2 + c*x^4)^(p + 1))/(c*(4*p + 3)*x), x] /; FreeQ[{b, c, d, e, p}, x] && !IntegerQ[p] && NeQ[4*p + 3, 0] && EqQ[b*e*(2*p + 1) - c*d*(4*p + 3), 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*(b*x^2 + c*x^4)^(p + 1))/(c*(4*p + 3)*x), x] - Dist[(b*e*(2*p + 1) - c*d*(4*p + 3))/(c*(4*p + 3)), Int[(b*x^2 + c*x^4)^p, x], x] /; FreeQ[{b, c, d, e, p}, x] && !IntegerQ[p] && NeQ[4*p + 3, 0] && NeQ[b*e*(2*p + 1) - c*d*(4*p + 3), 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(b*x^2 + c*x^4)^FracPart[p]/(x^(2*FracPart[p])*(b + c*x^2)^FracPart[p]), Int[x^(2*p)*(d + e*x^2)^q*(b + c*x^2)^p, x], x] /; FreeQ[{b, c, d, e, p, q}, x] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^2 + c*x^4)^p/(d + e*x^2)^(2*p), Int[(d + e*x^2)^(q + 2*p), x], x] /; FreeQ[{a, b, c, d, e, p, q}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && EqQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^2 + c*x^4)^FracPart[p]/(c^IntPart[p]*(b/2 + c*x^2)^(2*FracPart[p])), Int[(d + e*x^2)^q*(b/2 + c*x^2)^(2*p), x], x] /; FreeQ[{a, b, c, d, e, p, q}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x^2)^(p + q)*(a/d + (c*x^2)/e)^p, x] /; FreeQ[{a, b, c, d, e, q}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x^2)^(p + q)*(a/d + (c*x^2)/e)^p, x] /; FreeQ[{a, c, d, e, q}, x] && EqQ[c*d^2 + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^2 + c*x^4)^FracPart[p]/((d + e*x^2)^FracPart[p]*(a/d + (c*x^2)/e)^FracPart[p]), Int[(d + e*x^2)^(p + q)*(a/d + (c*x^2)/e)^p, x], x] /; FreeQ[{a, b, c, d, e, p, q}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + c*x^4)^FracPart[p]/((d + e*x^2)^FracPart[p]*(a/d + (c*x^2)/e)^FracPart[p]), Int[(d + e*x^2)^(p + q)*(a/d + (c*x^2)/e)^p, x], x] /; FreeQ[{a, c, d, e, p, q}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)^q*(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[p, 0] && IGtQ[q, -2]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)^q*(a + c*x^4)^p, x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p, 0] && IGtQ[q, -2]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(a^p*x*(d + e*x^2)^(q + 1))/d, x] + Dist[1/d, Int[x^2*(d + e*x^2)^q*(d*PolynomialQuotient[(a + b*x^2 + c*x^4)^p - a^p, x^2, x] - e*a^p*(2*q + 3)), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[p, 0] && ILtQ[q + 1/2, 0] && LtQ[4*p + 2*q + 1, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(a^p*x*(d + e*x^2)^(q + 1))/d, x] + Dist[1/d, Int[x^2*(d + e*x^2)^q*(d*PolynomialQuotient[(a + c*x^4)^p - a^p, x^2, x] - e*a^p*(2*q + 3)), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p, 0] && ILtQ[q + 1/2, 0] && LtQ[4*p + 2*q + 1, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{Qx = PolynomialQuotient[(a + b*x^2 + c*x^4)^p, d + e*x^2, x], R = Coeff[PolynomialRemainder[(a + b*x^2 + c*x^4)^p, d + e*x^2, x], x, 0]}, -Simp[(R*x*(d + e*x^2)^(q + 1))/(2*d*(q + 1)), x] + Dist[1/(2*d*(q + 1)), Int[(d + e*x^2)^(q + 1)*ExpandToSum[2*d*(q + 1)*Qx + R*(2*q + 3), x], x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[p, 0] && LtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{Qx = PolynomialQuotient[(a + c*x^4)^p, d + e*x^2, x], R = Coeff[PolynomialRemainder[(a + c*x^4)^p, d + e*x^2, x], x, 0]}, -Simp[(R*x*(d + e*x^2)^(q + 1))/(2*d*(q + 1)), x] + Dist[1/(2*d*(q + 1)), Int[(d + e*x^2)^(q + 1)*ExpandToSum[2*d*(q + 1)*Qx + R*(2*q + 3), x], x], x]] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p, 0] && LtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^p*x^(4*p - 1)*(d + e*x^2)^(q + 1))/(e*(4*p + 2*q + 1)), x] + Dist[1/(e*(4*p + 2*q + 1)), Int[(d + e*x^2)^q*ExpandToSum[e*(4*p + 2*q + 1)*(a + b*x^2 + c*x^4)^p - d*c^p*(4*p - 1)*x^(4*p - 2) - e*c^p*(4*p + 2*q + 1)*x^(4*p), x], x], x] /; FreeQ[{a, b, c, d, e, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[p, 0] && !LtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^p*x^(4*p - 1)*(d + e*x^2)^(q + 1))/(e*(4*p + 2*q + 1)), x] + Dist[1/(e*(4*p + 2*q + 1)), Int[(d + e*x^2)^q*ExpandToSum[e*(4*p + 2*q + 1)*(a + c*x^4)^p - d*c^p*(4*p - 1)*x^(4*p - 2) - e*c^p*(4*p + 2*q + 1)*x^(4*p), x], x], x] /; FreeQ[{a, c, d, e, q}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p, 0] && !LtQ[q, -1]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(2*d)/e - b/c, 2]}, Dist[e/(2*c), Int[1/Simp[d/e + q*x + x^2, x], x], x] + Dist[e/(2*c), Int[1/Simp[d/e - q*x + x^2, x], x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - a*e^2, 0] && (GtQ[(2*d)/e - b/c, 0] || ( !LtQ[(2*d)/e - b/c, 0] && EqQ[d - e*Rt[a/c, 2], 0]))
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(2*d)/e, 2]}, Dist[e/(2*c), Int[1/Simp[d/e + q*x + x^2, x], x], x] + Dist[e/(2*c), Int[1/Simp[d/e - q*x + x^2, x], x], x]] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 - a*e^2, 0] && PosQ[d*e]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[e/2 + (2*c*d - b*e)/(2*q), Int[1/(b/2 - q/2 + c*x^2), x], x] + Dist[e/2 - (2*c*d - b*e)/(2*q), Int[1/(b/2 + q/2 + c*x^2), x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - a*e^2, 0] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(-2*d)/e - b/c, 2]}, Dist[e/(2*c*q), Int[(q - 2*x)/Simp[d/e + q*x - x^2, x], x], x] + Dist[e/(2*c*q), Int[(q + 2*x)/Simp[d/e - q*x - x^2, x], x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - a*e^2, 0] && !GtQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(-2*d)/e, 2]}, Dist[e/(2*c*q), Int[(q - 2*x)/Simp[d/e + q*x - x^2, x], x], x] + Dist[e/(2*c*q), Int[(q + 2*x)/Simp[d/e - q*x - x^2, x], x], x]] /; FreeQ[{a, c, d, e}, x] && EqQ[c*d^2 - a*e^2, 0] && NegQ[d*e]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[e/2 + (2*c*d - b*e)/(2*q), Int[1/(b/2 - q/2 + c*x^2), x], x] + Dist[e/2 - (2*c*d - b*e)/(2*q), Int[1/(b/2 + q/2 + c*x^2), x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - a*e^2, 0] && PosQ[b^2 - 4*a*c]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Dist[e/2 + (c*d)/(2*q), Int[1/(-q + c*x^2), x], x] + Dist[e/2 - (c*d)/(2*q), Int[1/(q + c*x^2), x], x]] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 - a*e^2, 0] && PosQ[-(a*c)]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a*c, 2]}, Dist[(d*q + a*e)/(2*a*c), Int[(q + c*x^2)/(a + c*x^4), x], x] + Dist[(d*q - a*e)/(2*a*c), Int[(q - c*x^2)/(a + c*x^4), x], x]] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && NeQ[c*d^2 - a*e^2, 0] && NegQ[-(a*c)]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 2]}, With[{r = Rt[2*q - b/c, 2]}, Dist[1/(2*c*q*r), Int[(d*r - (d - e*q)*x)/(q - r*x + x^2), x], x] + Dist[1/(2*c*q*r), Int[(d*r + (d - e*q)*x)/(q + r*x + x^2), x], x]]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NegQ[b^2 - 4*a*c]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)^q/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[q]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)^q/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[q]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[e^2/(c*d^2 - b*d*e + a*e^2), Int[(d + e*x^2)^q, x], x] + Dist[1/(c*d^2 - b*d*e + a*e^2), Int[((d + e*x^2)^(q + 1)*(c*d - b*e - c*e*x^2))/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[q] && LtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[e^2/(c*d^2 + a*e^2), Int[(d + e*x^2)^q, x], x] + Dist[c/(c*d^2 + a*e^2), Int[((d + e*x^2)^(q + 1)*(d - e*x^2))/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[q] && LtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c)/r, Int[(d + e*x^2)^q/(b - r + 2*c*x^2), x], x] - Dist[(2*c)/r, Int[(d + e*x^2)^q/(b + r + 2*c*x^2), x], x]] /; FreeQ[{a, b, c, d, e, q}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[q]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[-(a*c), 2]}, -Dist[c/(2*r), Int[(d + e*x^2)^q/(r - c*x^2), x], x] - Dist[c/(2*r), Int[(d + e*x^2)^q/(r + c*x^2), x], x]] /; FreeQ[{a, c, d, e, q}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[q]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(2*b*e*p + c*d*(4*p + 3) + c*e*(4*p + 1)*x^2)*(a + b*x^2 + c*x^4)^p)/(c*(4*p + 1)*(4*p + 3)), x] + Dist[(2*p)/(c*(4*p + 1)*(4*p + 3)), Int[Simp[2*a*c*d*(4*p + 3) - a*b*e + (2*a*c*e*(4*p + 1) + b*c*d*(4*p + 3) - b^2*e*(2*p + 1))*x^2, x]*(a + b*x^2 + c*x^4)^(p - 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && GtQ[p, 0] && FractionQ[p] && IntegerQ[2*p]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(d*(4*p + 3) + e*(4*p + 1)*x^2)*(a + c*x^4)^p)/((4*p + 1)*(4*p + 3)), x] + Dist[(2*p)/((4*p + 1)*(4*p + 3)), Int[Simp[2*a*d*(4*p + 3) + (2*a*e*(4*p + 1))*x^2, x]*(a + c*x^4)^(p - 1), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && GtQ[p, 0] && FractionQ[p] && IntegerQ[2*p]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(x*(a*b*e - d*(b^2 - 2*a*c) - c*(b*d - 2*a*e)*x^2)*(a + b*x^2 + c*x^4)^(p + 1))/(2*a*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(2*a*(p + 1)*(b^2 - 4*a*c)), Int[Simp[(2*p + 3)*d*b^2 - a*b*e - 2*a*c*d*(4*p + 5) + (4*p + 7)*(d*b - 2*a*e)*c*x^2, x]*(a + b*x^2 + c*x^4)^(p + 1), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[p, -1] && IntegerQ[2*p]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(d + e*x^2)*(a + c*x^4)^(p + 1))/(4*a*(p + 1)), x] + Dist[1/(4*a*(p + 1)), Int[Simp[d*(4*p + 5) + e*(4*p + 7)*x^2, x]*(a + c*x^4)^(p + 1), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && LtQ[p, -1] && IntegerQ[2*p]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[2*Sqrt[-c], Int[(d + e*x^2)/(Sqrt[b + q + 2*c*x^2]*Sqrt[-b + q - 2*c*x^2]), x], x]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0] && LtQ[c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Dist[Sqrt[-c], Int[(d + e*x^2)/(Sqrt[q + c*x^2]*Sqrt[q - c*x^2]), x], x]] /; FreeQ[{a, c, d, e}, x] && GtQ[a, 0] && LtQ[c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 4]}, -Simp[(d*x*Sqrt[a + b*x^2 + c*x^4])/(a*(1 + q^2*x^2)), x] + Simp[(d*(1 + q^2*x^2)*Sqrt[(a + b*x^2 + c*x^4)/(a*(1 + q^2*x^2)^2)]*EllipticE[2*ArcTan[q*x], 1/2 - (b*q^2)/(4*c)])/(q*Sqrt[a + b*x^2 + c*x^4]), x] /; EqQ[e + d*q^2, 0]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0] && GtQ[c/a, 0] && LtQ[b/a, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, Dist[(e + d*q)/q, Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] - Dist[e/q, Int[(1 - q*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] /; NeQ[e + d*q, 0]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0] && GtQ[c/a, 0] && LtQ[b/a, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Simp[(e*x*(b + q + 2*c*x^2))/(2*c*Sqrt[a + b*x^2 + c*x^4]), x] - Simp[(e*q*Sqrt[(2*a + (b - q)*x^2)/(2*a + (b + q)*x^2)]*Sqrt[(2*a + (b + q)*x^2)/q]*EllipticE[ArcSin[x/Sqrt[(2*a + (b + q)*x^2)/(2*q)]], (b + q)/(2*q)])/(2*c*Sqrt[a + b*x^2 + c*x^4]*Sqrt[a/(2*a + (b + q)*x^2)]), x] /; EqQ[2*c*d - e*(b - q), 0]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0] && LtQ[a, 0] && GtQ[c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Simp[(e*x*(q + c*x^2))/(c*Sqrt[a + c*x^4]), x] - Simp[(Sqrt[2]*e*q*Sqrt[-a + q*x^2]*Sqrt[(a + q*x^2)/q]*EllipticE[ArcSin[x/Sqrt[(a + q*x^2)/(2*q)]], 1/2])/(Sqrt[-a]*c*Sqrt[a + c*x^4]), x] /; EqQ[c*d + e*q, 0] && IntegerQ[q]] /; FreeQ[{a, c, d, e}, x] && LtQ[a, 0] && GtQ[c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Simp[(e*x*(q + c*x^2))/(c*Sqrt[a + c*x^4]), x] - Simp[(Sqrt[2]*e*q*Sqrt[(a - q*x^2)/(a + q*x^2)]*Sqrt[(a + q*x^2)/q]*EllipticE[ArcSin[x/Sqrt[(a + q*x^2)/(2*q)]], 1/2])/(c*Sqrt[a + c*x^4]*Sqrt[a/(a + q*x^2)]), x] /; EqQ[c*d + e*q, 0]] /; FreeQ[{a, c, d, e}, x] && LtQ[a, 0] && GtQ[c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c*d - e*(b - q))/(2*c), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[e/(2*c), Int[(b - q + 2*c*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] /; NeQ[2*c*d - e*(b - q), 0]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0] && LtQ[a, 0] && GtQ[c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Dist[(c*d + e*q)/c, Int[1/Sqrt[a + c*x^4], x], x] - Dist[e/c, Int[(q - c*x^2)/Sqrt[a + c*x^4], x], x] /; NeQ[c*d + e*q, 0]] /; FreeQ[{a, c, d, e}, x] && LtQ[a, 0] && GtQ[c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[d, Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[e, Int[x^2/Sqrt[a + b*x^2 + c*x^4], x], x] /; PosQ[(b + q)/a] || PosQ[(b - q)/a]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[d, Int[1/Sqrt[a + c*x^4], x], x] + Dist[e, Int[x^2/Sqrt[a + c*x^4], x], x] /; FreeQ[{a, c, d, e}, x] && GtQ[-(a*c), 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, -Simp[(a*e*Rt[-((b + q)/(2*a)), 2]*Sqrt[1 + ((b + q)*x^2)/(2*a)]*Sqrt[1 + ((b - q)*x^2)/(2*a)]*EllipticE[ArcSin[Rt[-((b + q)/(2*a)), 2]*x], (b - q)/(b + q)])/(c*Sqrt[a + b*x^2 + c*x^4]), x] /; NegQ[(b + q)/a] && EqQ[2*c*d - e*(b + q), 0] && !SimplerSqrtQ[-((b - q)/(2*a)), -((b + q)/(2*a))]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c*d - e*(b + q))/(2*c), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[e/(2*c), Int[(b + q + 2*c*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] /; NegQ[(b + q)/a] && NeQ[2*c*d - e*(b + q), 0] && !SimplerSqrtQ[-((b - q)/(2*a)), -((b + q)/(2*a))]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, -Simp[(a*e*Rt[-((b - q)/(2*a)), 2]*Sqrt[1 + ((b - q)*x^2)/(2*a)]*Sqrt[1 + ((b + q)*x^2)/(2*a)]*EllipticE[ArcSin[Rt[-((b - q)/(2*a)), 2]*x], (b + q)/(b - q)])/(c*Sqrt[a + b*x^2 + c*x^4]), x] /; NegQ[(b - q)/a] && EqQ[2*c*d - e*(b - q), 0]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c*d - e*(b - q))/(2*c), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[e/(2*c), Int[(b - q + 2*c*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] /; NegQ[(b - q)/a] && NeQ[2*c*d - e*(b - q), 0]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 4]}, -Simp[(d*x*Sqrt[a + b*x^2 + c*x^4])/(a*(1 + q^2*x^2)), x] + Simp[(d*(1 + q^2*x^2)*Sqrt[(a + b*x^2 + c*x^4)/(a*(1 + q^2*x^2)^2)]*EllipticE[2*ArcTan[q*x], 1/2 - (b*q^2)/(4*c)])/(q*Sqrt[a + b*x^2 + c*x^4]), x] /; EqQ[e + d*q^2, 0]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[c/a]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 4]}, -Simp[(d*x*Sqrt[a + c*x^4])/(a*(1 + q^2*x^2)), x] + Simp[(d*(1 + q^2*x^2)*Sqrt[(a + c*x^4)/(a*(1 + q^2*x^2)^2)]*EllipticE[2*ArcTan[q*x], 1/2])/(q*Sqrt[a + c*x^4]), x] /; EqQ[e + d*q^2, 0]] /; FreeQ[{a, c, d, e}, x] && PosQ[c/a]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, Dist[(e + d*q)/q, Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] - Dist[e/q, Int[(1 - q*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] /; NeQ[e + d*q, 0]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[c/a]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, Dist[(e + d*q)/q, Int[1/Sqrt[a + c*x^4], x], x] - Dist[e/q, Int[(1 - q*x^2)/Sqrt[a + c*x^4], x], x] /; NeQ[e + d*q, 0]] /; FreeQ[{a, c, d, e}, x] && PosQ[c/a]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[d/Sqrt[a], Int[Sqrt[1 + (e*x^2)/d]/Sqrt[1 - (e*x^2)/d], x], x] /; FreeQ[{a, c, d, e}, x] && NegQ[c/a] && EqQ[c*d^2 + a*e^2, 0] && GtQ[a, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[1 + (c*x^4)/a]/Sqrt[a + c*x^4], Int[(d + e*x^2)/Sqrt[1 + (c*x^4)/a], x], x] /; FreeQ[{a, c, d, e}, x] && NegQ[c/a] && EqQ[c*d^2 + a*e^2, 0] && !GtQ[a, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(c/a), 2]}, Dist[(d*q - e)/q, Int[1/Sqrt[a + c*x^4], x], x] + Dist[e/q, Int[(1 + q*x^2)/Sqrt[a + c*x^4], x], x]] /; FreeQ[{a, c, d, e}, x] && NegQ[c/a] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(Sqrt[1 + (2*c*x^2)/(b - q)]*Sqrt[1 + (2*c*x^2)/(b + q)])/Sqrt[a + b*x^2 + c*x^4], Int[(d + e*x^2)/(Sqrt[1 + (2*c*x^2)/(b - q)]*Sqrt[1 + (2*c*x^2)/(b + q)]), x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NegQ[c/a]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)*(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)*(a + c*x^4)^p, x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{f = Coeff[PolynomialRemainder[(d + e*x^2)^q, a + b*x^2 + c*x^4, x], x, 0], g = Coeff[PolynomialRemainder[(d + e*x^2)^q, a + b*x^2 + c*x^4, x], x, 2]}, Simp[(x*(a + b*x^2 + c*x^4)^(p + 1)*(a*b*g - f*(b^2 - 2*a*c) - c*(b*f - 2*a*g)*x^2))/(2*a*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(2*a*(p + 1)*(b^2 - 4*a*c)), Int[(a + b*x^2 + c*x^4)^(p + 1)*ExpandToSum[2*a*(p + 1)*(b^2 - 4*a*c)*PolynomialQuotient[(d + e*x^2)^q, a + b*x^2 + c*x^4, x] + b^2*f*(2*p + 3) - 2*a*c*f*(4*p + 5) - a*b*g + c*(4*p + 7)*(b*f - 2*a*g)*x^2, x], x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[q, 1] && LtQ[p, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^q*x^(2*q - 3)*(a + b*x^2 + c*x^4)^(p + 1))/(c*(4*p + 2*q + 1)), x] + Dist[1/(c*(4*p + 2*q + 1)), Int[(a + b*x^2 + c*x^4)^p*ExpandToSum[c*(4*p + 2*q + 1)*(d + e*x^2)^q - a*(2*q - 3)*e^q*x^(2*q - 4) - b*(2*p + 2*q - 1)*e^q*x^(2*q - 2) - c*(4*p + 2*q + 1)*e^q*x^(2*q), x], x], x] /; FreeQ[{a, b, c, d, e, p}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[q, 1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e^q*x^(2*q - 3)*(a + c*x^4)^(p + 1))/(c*(4*p + 2*q + 1)), x] + Dist[1/(c*(4*p + 2*q + 1)), Int[(a + c*x^4)^p*ExpandToSum[c*(4*p + 2*q + 1)*(d + e*x^2)^q - a*(2*q - 3)*e^q*x^(2*q - 4) - c*(4*p + 2*q + 1)*e^q*x^(2*q), x], x], x] /; FreeQ[{a, c, d, e, p}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[q, 1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Dist[(e^2)^(-1), Int[(c*d - b*e - c*e*x^2)*(a + b*x^2 + c*x^4)^(p - 1), x], x] + Dist[(c*d^2 - b*d*e + a*e^2)/e^2, Int[(a + b*x^2 + c*x^4)^(p - 1)/(d + e*x^2), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[p + 1/2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Dist[(e^2)^(-1), Int[(c*d - c*e*x^2)*(a + c*x^4)^(p - 1), x], x] + Dist[(c*d^2 + a*e^2)/e^2, Int[(a + c*x^4)^(p - 1)/(d + e*x^2), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[p + 1/2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[1/(2*d), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[1/(2*d), Int[(d - e*x^2)/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && EqQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[1/(2*d), Int[1/Sqrt[a + c*x^4], x], x] + Dist[1/(2*d), Int[(d - e*x^2)/((d + e*x^2)*Sqrt[a + c*x^4]), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && EqQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[2*Sqrt[-c], Int[1/((d + e*x^2)*Sqrt[b + q + 2*c*x^2]*Sqrt[-b + q - 2*c*x^2]), x], x]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0] && LtQ[c, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Dist[Sqrt[-c], Int[1/((d + e*x^2)*Sqrt[q + c*x^2]*Sqrt[q - c*x^2]), x], x]] /; FreeQ[{a, c, d, e}, x] && GtQ[a, 0] && LtQ[c, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c)/(2*c*d - e*(b - q)), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] - Dist[e/(2*c*d - e*(b - q)), Int[(b - q + 2*c*x^2)/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x]] /; FreeQ[{a, b, c, d, e}, x] && GtQ[b^2 - 4*a*c, 0] && !LtQ[c, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, Dist[c/(c*d + e*q), Int[1/Sqrt[a + c*x^4], x], x] + Dist[e/(c*d + e*q), Int[(q - c*x^2)/((d + e*x^2)*Sqrt[a + c*x^4]), x], x]] /; FreeQ[{a, c, d, e}, x] && GtQ[-(a*c), 0] && !LtQ[c, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, Dist[(c*d + a*e*q)/(c*d^2 - a*e^2), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] - Dist[(a*e*(e + d*q))/(c*d^2 - a*e^2), Int[(1 + q*x^2)/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && NeQ[c*d^2 - a*e^2, 0] && PosQ[c/a]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, Dist[(c*d + a*e*q)/(c*d^2 - a*e^2), Int[1/Sqrt[a + c*x^4], x], x] - Dist[(a*e*(e + d*q))/(c*d^2 - a*e^2), Int[(1 + q*x^2)/((d + e*x^2)*Sqrt[a + c*x^4]), x], x]] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && NeQ[c*d^2 - a*e^2, 0] && PosQ[c/a]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(c/a), 4]}, Simp[(1*EllipticPi[-(e/(d*q^2)), ArcSin[q*x], -1])/(d*Sqrt[a]*q), x]] /; FreeQ[{a, c, d, e}, x] && NegQ[c/a] && GtQ[a, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[Sqrt[1 + (c*x^4)/a]/Sqrt[a + c*x^4], Int[1/((d + e*x^2)*Sqrt[1 + (c*x^4)/a]), x], x] /; FreeQ[{a, c, d, e}, x] && NegQ[c/a] && !GtQ[a, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(Sqrt[1 + (2*c*x^2)/(b - q)]*Sqrt[1 + (2*c*x^2)/(b + q)])/Sqrt[a + b*x^2 + c*x^4], Int[1/((d + e*x^2)*Sqrt[1 + (2*c*x^2)/(b - q)]*Sqrt[1 + (2*c*x^2)/(b + q)]), x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NegQ[c/a]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(c*d^2 - b*d*e + a*e^2), Int[(c*d - b*e - c*e*x^2)*(a + b*x^2 + c*x^4)^p, x], x] + Dist[e^2/(c*d^2 - b*d*e + a*e^2), Int[(a + b*x^2 + c*x^4)^(p + 1)/(d + e*x^2), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && ILtQ[p + 1/2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(c*d^2 + a*e^2), Int[(c*d - c*e*x^2)*(a + c*x^4)^p, x], x] + Dist[e^2/(c*d^2 + a*e^2), Int[(a + c*x^4)^(p + 1)/(d + e*x^2), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && ILtQ[p + 1/2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Simp[(e^2*x*(d + e*x^2)^(q + 1)*Sqrt[a + b*x^2 + c*x^4])/(2*d*(q + 1)*(c*d^2 - b*d*e + a*e^2)), x] + Dist[1/(2*d*(q + 1)*(c*d^2 - b*d*e + a*e^2)), Int[((d + e*x^2)^(q + 1)*Simp[a*e^2*(2*q + 3) + 2*d*(c*d - b*e)*(q + 1) - 2*e*(c*d*(q + 1) - b*e*(q + 2))*x^2 + c*e^2*(2*q + 5)*x^4, x])/Sqrt[a + b*x^2 + c*x^4], x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && ILtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Simp[(e^2*x*(d + e*x^2)^(q + 1)*Sqrt[a + c*x^4])/(2*d*(q + 1)*(c*d^2 + a*e^2)), x] + Dist[1/(2*d*(q + 1)*(c*d^2 + a*e^2)), Int[((d + e*x^2)^(q + 1)*Simp[a*e^2*(2*q + 3) + 2*c*d^2*(q + 1) - 2*e*c*d*(q + 1)*x^2 + c*e^2*(2*q + 5)*x^4, x])/Sqrt[a + c*x^4], x], x] /; FreeQ[{a, c, d, e}, x] && ILtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[e/d, 2]}, Simp[(c*(d + e*x^2)*Sqrt[(e^2*(a + b*x^2 + c*x^4))/(c*(d + e*x^2)^2)]*EllipticE[2*ArcTan[q*x], (2*c*d - b*e)/(4*c*d)])/(2*d*e^2*q*Sqrt[a + b*x^2 + c*x^4]), x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && EqQ[c*d^2 - a*e^2, 0] && PosQ[e/d]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(x*Sqrt[a + b*x^2 + c*x^4])/(2*d*(d + e*x^2)), x] + (Dist[c/(2*d*e^2), Int[(d - e*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] - Dist[(c*d^2 - a*e^2)/(2*d*e^2), Int[1/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x]) /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -2], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(x*Sqrt[a + c*x^4])/(2*d*(d + e*x^2)), x] + (Dist[c/(2*d*e^2), Int[(d - e*x^2)/Sqrt[a + c*x^4], x], x] - Dist[(c*d^2 - a*e^2)/(2*d*e^2), Int[1/((d + e*x^2)*Sqrt[a + c*x^4]), x], x]) /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Module[{aa, bb, cc}, Int[ExpandIntegrand[1/Sqrt[aa + bb*x^2 + cc*x^4], (d + e*x^2)^q*(aa + bb*x^2 + cc*x^4)^(p + 1/2), x] /. {aa -> a, bb -> b, cc -> c}, x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && ILtQ[q, 0] && IntegerQ[p + 1/2]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Module[{aa, cc}, Int[ExpandIntegrand[1/Sqrt[aa + cc*x^4], (d + e*x^2)^q*(aa + cc*x^4)^(p + 1/2), x] /. {aa -> a, cc -> c}, x]] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && ILtQ[q, 0] && IntegerQ[p + 1/2]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(1*EllipticF[2*ArcSin[Rt[-(e/d), 2]*x], (b*d)/(4*a*e)])/(2*Sqrt[a]*Sqrt[d]*Rt[-(e/d), 2]), x] /; FreeQ[{a, b, c, d, e}, x] && EqQ[c*d - b*e, 0] && GtQ[a, 0] && GtQ[d, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[(d + e*x^2)/d]*Sqrt[(a + b*x^2 + c*x^4)/a])/(Sqrt[d + e*x^2]*Sqrt[a + b*x^2 + c*x^4]), Int[1/(Sqrt[1 + (e*x^2)/d]*Sqrt[1 + (b*x^2)/a + (c*x^4)/a]), x], x] /; FreeQ[{a, b, c, d, e}, x] && EqQ[c*d - b*e, 0] && !(GtQ[a, 0] && GtQ[d, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(x^3*Sqrt[e + d/x^2]*Sqrt[c + b/x^2 + a/x^4])/(Sqrt[d + e*x^2]*Sqrt[a + b*x^2 + c*x^4]), Int[1/(x^3*Sqrt[e + d/x^2]*Sqrt[c + b/x^2 + a/x^4]), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(x^3*Sqrt[e + d/x^2]*Sqrt[c + a/x^4])/(Sqrt[d + e*x^2]*Sqrt[a + c*x^4]), Int[1/(x^3*Sqrt[e + d/x^2]*Sqrt[c + a/x^4]), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(Sqrt[a]*EllipticE[2*ArcSin[Rt[-(e/d), 2]*x], (b*d)/(4*a*e)])/(2*Sqrt[d]*Rt[-(e/d), 2]), x] /; FreeQ[{a, b, c, d, e}, x] && EqQ[c*d - b*e, 0] && GtQ[a, 0] && GtQ[d, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[a + b*x^2 + c*x^4]*Sqrt[(d + e*x^2)/d])/(Sqrt[d + e*x^2]*Sqrt[(a + b*x^2 + c*x^4)/a]), Int[Sqrt[1 + (b*x^2)/a + (c*x^4)/a]/Sqrt[1 + (e*x^2)/d], x], x] /; FreeQ[{a, b, c, d, e}, x] && EqQ[c*d - b*e, 0] && !(GtQ[a, 0] && GtQ[d, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[e + d/x^2]*Sqrt[a + b*x^2 + c*x^4])/(x*Sqrt[d + e*x^2]*Sqrt[c + b/x^2 + a/x^4]), Int[(x*Sqrt[c + b/x^2 + a/x^4])/Sqrt[e + d/x^2], x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(Sqrt[e + d/x^2]*Sqrt[a + c*x^4])/(x*Sqrt[d + e*x^2]*Sqrt[c + a/x^4]), Int[(x*Sqrt[c + a/x^4])/Sqrt[e + d/x^2], x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)^q*(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c, d, e, p, q}, x] && NeQ[b^2 - 4*a*c, 0] && ((IntegerQ[p] && IntegerQ[q]) || IGtQ[p, 0] || IGtQ[q, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)^q*(a + c*x^4)^p, x], x] /; FreeQ[{a, c, d, e, p, q}, x] && ((IntegerQ[p] && IntegerQ[q]) || IGtQ[p, 0])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + c*x^4)^p, (d/(d^2 - e^2*x^4) - (e*x^2)/(d^2 - e^2*x^4))^(-q), x], x] /; FreeQ[{a, c, d, e, p}, x] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && ILtQ[q, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(d + e*x^2)^q*(a + b*x^2 + c*x^4)^p, x] /; FreeQ[{a, b, c, d, e, p, q}, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(d + e*x^2)^q*(a + c*x^4)^p, x] /; FreeQ[{a, c, d, e, p, q}, x]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(2*e^((m - 1)/2)), Subst[Int[(e*x)^(q + (m - 1)/2)*(a + b*x + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, b, c, e, p, q}, x] && !IntegerQ[q] && IntegerQ[(m - 1)/2]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(2*e^((m - 1)/2)), Subst[Int[(e*x)^(q + (m - 1)/2)*(a + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, c, e, p, q}, x] && !IntegerQ[q] && IntegerQ[(m - 1)/2]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^IntPart[q]*(e*x^2)^FracPart[q])/(f^(2*IntPart[q])*(f*x)^(2*FracPart[q])), Int[(f*x)^(m + 2*q)*(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c, e, f, m, p, q}, x] && !IntegerQ[q]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^IntPart[q]*(e*x^2)^FracPart[q])/(f^(2*IntPart[q])*(f*x)^(2*FracPart[q])), Int[(f*x)^(m + 2*q)*(a + c*x^4)^p, x], x] /; FreeQ[{a, c, e, f, m, p, q}, x] && !IntegerQ[q]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Subst[Int[(d + e*x)^q*(a + b*x + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, b, c, d, e, p, q}, x]
Int[Times[Pattern[x, Blank[]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Subst[Int[(d + e*x)^q*(a + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, c, d, e, p, q}, x]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Subst[Int[x^((m - 1)/2)*(d + e*x)^q*(a + b*x + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, b, c, d, e, p, q}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && IGtQ[(m + 1)/2, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^2 + c*x^4)^FracPart[p]/(c^IntPart[p]*(b/2 + c*x^2)^(2*FracPart[p])), Int[(f*x)^m*(d + e*x^2)^q*(b/2 + c*x^2)^(2*p), x], x] /; FreeQ[{a, b, c, d, e, f, m, p, q}, x] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Subst[Int[x^((m - 1)/2)*(d + e*x)^q*(a + b*x + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, b, c, d, e, p, q}, x] && IntegerQ[(m - 1)/2]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/2, Subst[Int[x^((m - 1)/2)*(d + e*x)^q*(a + c*x^2)^p, x], x, x^2], x] /; FreeQ[{a, c, d, e, p, q}, x] && IntegerQ[(m + 1)/2]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(f*x)^m*(d + e*x^2)^(q + p)*(a/d + (c*x^2)/e)^p, x] /; FreeQ[{a, b, c, d, e, f, m, q}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(f*x)^m*(d + e*x^2)^(q + p)*(a/d + (c*x^2)/e)^p, x] /; FreeQ[{a, c, d, e, f, q, m, q}, x] && EqQ[c*d^2 + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^2 + c*x^4)^FracPart[p]/((d + e*x^2)^FracPart[p]*(a/d + (c*x^2)/e)^FracPart[p]), Int[(f*x)^m*(d + e*x^2)^(q + p)*(a/d + (c*x^2)/e)^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, p, q}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + c*x^4)^FracPart[p]/((d + e*x^2)^FracPart[p]*(a/d + (c*x^2)/e)^FracPart[p]), Int[(f*x)^m*(d + e*x^2)^(q + p)*(a/d + (c*x^2)/e)^p, x], x] /; FreeQ[{a, c, d, e, f, m, p, q}, x] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((-d)^(m/2 - 1)*(c*d^2 - b*d*e + a*e^2)^p*x*(d + e*x^2)^(q + 1))/(2*e^(2*p + m/2)*(q + 1)), x] + Dist[1/(2*e^(2*p + m/2)*(q + 1)), Int[(d + e*x^2)^(q + 1)*ExpandToSum[Together[(1*(2*e^(2*p + m/2)*(q + 1)*x^m*(a + b*x^2 + c*x^4)^p - (-d)^(m/2 - 1)*(c*d^2 - b*d*e + a*e^2)^p*(d + e*(2*q + 3)*x^2)))/(d + e*x^2)], x], x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0] && ILtQ[q, -1] && IGtQ[m/2, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((-d)^(m/2 - 1)*(c*d^2 + a*e^2)^p*x*(d + e*x^2)^(q + 1))/(2*e^(2*p + m/2)*(q + 1)), x] + Dist[1/(2*e^(2*p + m/2)*(q + 1)), Int[(d + e*x^2)^(q + 1)*ExpandToSum[Together[(1*(2*e^(2*p + m/2)*(q + 1)*x^m*(a + c*x^4)^p - (-d)^(m/2 - 1)*(c*d^2 + a*e^2)^p*(d + e*(2*q + 3)*x^2)))/(d + e*x^2)], x], x], x] /; FreeQ[{a, c, d, e}, x] && IGtQ[p, 0] && ILtQ[q, -1] && IGtQ[m/2, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((-d)^(m/2 - 1)*(c*d^2 - b*d*e + a*e^2)^p*x*(d + e*x^2)^(q + 1))/(2*e^(2*p + m/2)*(q + 1)), x] + Dist[(-d)^(m/2 - 1)/(2*e^(2*p)*(q + 1)), Int[x^m*(d + e*x^2)^(q + 1)*ExpandToSum[Together[(1*(2*(-d)^(-(m/2) + 1)*e^(2*p)*(q + 1)*(a + b*x^2 + c*x^4)^p - ((c*d^2 - b*d*e + a*e^2)^p/(e^(m/2)*x^m))*(d + e*(2*q + 3)*x^2)))/(d + e*x^2)], x], x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0] && ILtQ[q, -1] && ILtQ[m/2, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((-d)^(m/2 - 1)*(c*d^2 + a*e^2)^p*x*(d + e*x^2)^(q + 1))/(2*e^(2*p + m/2)*(q + 1)), x] + Dist[(-d)^(m/2 - 1)/(2*e^(2*p)*(q + 1)), Int[x^m*(d + e*x^2)^(q + 1)*ExpandToSum[Together[(1*(2*(-d)^(-(m/2) + 1)*e^(2*p)*(q + 1)*(a + c*x^4)^p - ((c*d^2 + a*e^2)^p/(e^(m/2)*x^m))*(d + e*(2*q + 3)*x^2)))/(d + e*x^2)], x], x], x] /; FreeQ[{a, c, d, e}, x] && IGtQ[p, 0] && ILtQ[q, -1] && ILtQ[m/2, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(f*x)^m*(d + e*x^2)^q*(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, q}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0] && IGtQ[q, -2]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(f*x)^m*(d + e*x^2)^q*(a + c*x^4)^p, x], x] /; FreeQ[{a, c, d, e, f, m, q}, x] && IGtQ[p, 0] && IGtQ[q, -2]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{Qx = PolynomialQuotient[(a + b*x^2 + c*x^4)^p, d + e*x^2, x], R = Coeff[PolynomialRemainder[(a + b*x^2 + c*x^4)^p, d + e*x^2, x], x, 0]}, -Simp[(R*(f*x)^(m + 1)*(d + e*x^2)^(q + 1))/(2*d*f*(q + 1)), x] + Dist[f/(2*d*(q + 1)), Int[(f*x)^(m - 1)*(d + e*x^2)^(q + 1)*ExpandToSum[2*d*(q + 1)*x*Qx + R*(m + 2*q + 3)*x, x], x], x]] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0] && LtQ[q, -1] && GtQ[m, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{Qx = PolynomialQuotient[(a + c*x^4)^p, d + e*x^2, x], R = Coeff[PolynomialRemainder[(a + c*x^4)^p, d + e*x^2, x], x, 0]}, -Simp[(R*(f*x)^(m + 1)*(d + e*x^2)^(q + 1))/(2*d*f*(q + 1)), x] + Dist[f/(2*d*(q + 1)), Int[(f*x)^(m - 1)*(d + e*x^2)^(q + 1)*ExpandToSum[2*d*(q + 1)*x*Qx + R*(m + 2*q + 3)*x, x], x], x]] /; FreeQ[{a, c, d, e, f}, x] && IGtQ[p, 0] && LtQ[q, -1] && GtQ[m, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{Qx = PolynomialQuotient[(a + b*x^2 + c*x^4)^p, f*x, x], R = PolynomialRemainder[(a + b*x^2 + c*x^4)^p, f*x, x]}, Simp[(R*(f*x)^(m + 1)*(d + e*x^2)^(q + 1))/(d*f*(m + 1)), x] + Dist[1/(d*f^2*(m + 1)), Int[(f*x)^(m + 2)*(d + e*x^2)^q*ExpandToSum[(d*f*(m + 1)*Qx)/x - e*R*(m + 2*q + 3), x], x], x]] /; FreeQ[{a, b, c, d, e, f, q}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0] && LtQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{Qx = PolynomialQuotient[(a + c*x^4)^p, f*x, x], R = PolynomialRemainder[(a + c*x^4)^p, f*x, x]}, Simp[(R*(f*x)^(m + 1)*(d + e*x^2)^(q + 1))/(d*f*(m + 1)), x] + Dist[1/(d*f^2*(m + 1)), Int[(f*x)^(m + 2)*(d + e*x^2)^q*ExpandToSum[(d*f*(m + 1)*Qx)/x - e*R*(m + 2*q + 3), x], x], x]] /; FreeQ[{a, c, d, e, f, q}, x] && IGtQ[p, 0] && LtQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^p*(f*x)^(m + 4*p - 1)*(d + e*x^2)^(q + 1))/(e*f^(4*p - 1)*(m + 4*p + 2*q + 1)), x] + Dist[1/(e*(m + 4*p + 2*q + 1)), Int[(f*x)^m*(d + e*x^2)^q*ExpandToSum[e*(m + 4*p + 2*q + 1)*((a + b*x^2 + c*x^4)^p - c^p*x^(4*p)) - d*c^p*(m + 4*p - 1)*x^(4*p - 2), x], x], x] /; FreeQ[{a, b, c, d, e, f, m, q}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0] && !IntegerQ[q] && NeQ[m + 4*p + 2*q + 1, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^p*(f*x)^(m + 4*p - 1)*(d + e*x^2)^(q + 1))/(e*f^(4*p - 1)*(m + 4*p + 2*q + 1)), x] + Dist[1/(e*(m + 4*p + 2*q + 1)), Int[(f*x)^m*(d + e*x^2)^q*ExpandToSum[e*(m + 4*p + 2*q + 1)*((a + c*x^4)^p - c^p*x^(4*p)) - d*c^p*(m + 4*p - 1)*x^(4*p - 2), x], x], x] /; FreeQ[{a, c, d, e, f, m, q}, x] && IGtQ[p, 0] && !IntegerQ[q] && NeQ[m + 4*p + 2*q + 1, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, Dist[k/f, Subst[Int[x^(k*(m + 1) - 1)*(d + (e*x^(2*k))/f^2)^q*(a + (b*x^(2*k))/f^k + (c*x^(4*k))/f^4)^p, x], x, (f*x)^(1/k)], x]] /; FreeQ[{a, b, c, d, e, f, p, q}, x] && NeQ[b^2 - 4*a*c, 0] && FractionQ[m] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, Dist[k/f, Subst[Int[x^(k*(m + 1) - 1)*(d + (e*x^(2*k))/f)^q*(a + (c*x^(4*k))/f)^p, x], x, (f*x)^(1/k)], x]] /; FreeQ[{a, c, d, e, f, p, q}, x] && FractionQ[m] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((f*x)^(m + 1)*(a + b*x^2 + c*x^4)^p*(d*(m + 4*p + 3) + e*(m + 1)*x^2))/(f*(m + 1)*(m + 4*p + 3)), x] + Dist[(2*p)/(f^2*(m + 1)*(m + 4*p + 3)), Int[(f*x)^(m + 2)*(a + b*x^2 + c*x^4)^(p - 1)*Simp[2*a*e*(m + 1) - b*d*(m + 4*p + 3) + (b*e*(m + 1) - 2*c*d*(m + 4*p + 3))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && LtQ[m, -1] && m + 4*p + 3 != 0 && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((f*x)^(m + 1)*(a + c*x^4)^p*(d*(m + 4*p + 3) + e*(m + 1)*x^2))/(f*(m + 1)*(m + 4*p + 3)), x] + Dist[(4*p)/(f^2*(m + 1)*(m + 4*p + 3)), Int[(f*x)^(m + 2)*(a + c*x^4)^(p - 1)*(a*e*(m + 1) - c*d*(m + 4*p + 3)*x^2), x], x] /; FreeQ[{a, c, d, e, f}, x] && GtQ[p, 0] && LtQ[m, -1] && m + 4*p + 3 != 0 && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((f*x)^(m + 1)*(a + b*x^2 + c*x^4)^p*(b*e*2*p + c*d*(m + 4*p + 3) + c*e*(4*p + m + 1)*x^2))/(c*f*(4*p + m + 1)*(m + 4*p + 3)), x] + Dist[(2*p)/(c*(4*p + m + 1)*(m + 4*p + 3)), Int[(f*x)^m*(a + b*x^2 + c*x^4)^(p - 1)*Simp[2*a*c*d*(m + 4*p + 3) - a*b*e*(m + 1) + (2*a*c*e*(4*p + m + 1) + b*c*d*(m + 4*p + 3) - b^2*e*(m + 2*p + 1))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, m}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && NeQ[4*p + m + 1, 0] && NeQ[m + 4*p + 3, 0] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[((f*x)^(m + 1)*(a + c*x^4)^p*(c*d*(m + 4*p + 3) + c*e*(4*p + m + 1)*x^2))/(c*f*(4*p + m + 1)*(m + 4*p + 3)), x] + Dist[(4*a*p)/((4*p + m + 1)*(m + 4*p + 3)), Int[(f*x)^m*(a + c*x^4)^(p - 1)*Simp[d*(m + 4*p + 3) + e*(4*p + m + 1)*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, m}, x] && GtQ[p, 0] && NeQ[4*p + m + 1, 0] && NeQ[m + 4*p + 3, 0] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(f*(f*x)^(m - 1)*(a + b*x^2 + c*x^4)^(p + 1)*(b*d - 2*a*e - (b*e - 2*c*d)*x^2))/(2*(p + 1)*(b^2 - 4*a*c)), x] - Dist[f^2/(2*(p + 1)*(b^2 - 4*a*c)), Int[(f*x)^(m - 2)*(a + b*x^2 + c*x^4)^(p + 1)*Simp[(m - 1)*(b*d - 2*a*e) - (4*p + 4 + m + 1)*(b*e - 2*c*d)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && GtQ[m, 1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Simp[(f*(f*x)^(m - 1)*(a + c*x^4)^(p + 1)*(a*e - c*d*x^2))/(4*a*c*(p + 1)), x] - Dist[f^2/(4*a*c*(p + 1)), Int[(f*x)^(m - 2)*(a + c*x^4)^(p + 1)*(a*e*(m - 1) - c*d*(4*p + 4 + m + 1)*x^2), x], x] /; FreeQ[{a, c, d, e, f}, x] && LtQ[p, -1] && GtQ[m, 1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((f*x)^(m + 1)*(a + b*x^2 + c*x^4)^(p + 1)*(d*(b^2 - 2*a*c) - a*b*e + (b*d - 2*a*e)*c*x^2))/(2*a*f*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(2*a*(p + 1)*(b^2 - 4*a*c)), Int[(f*x)^m*(a + b*x^2 + c*x^4)^(p + 1)*Simp[d*(b^2*(m + 2*(p + 1) + 1) - 2*a*c*(m + 4*(p + 1) + 1)) - a*b*e*(m + 1) + c*(m + 2*(2*p + 3) + 1)*(b*d - 2*a*e)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, m}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((f*x)^(m + 1)*(a + c*x^4)^(p + 1)*(d + e*x^2))/(4*a*f*(p + 1)), x] + Dist[1/(4*a*(p + 1)), Int[(f*x)^m*(a + c*x^4)^(p + 1)*Simp[d*(m + 4*(p + 1) + 1) + e*(m + 2*(2*p + 3) + 1)*x^2, x], x], x] /; FreeQ[{a, c, d, e, f, m}, x] && LtQ[p, -1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*f*(f*x)^(m - 1)*(a + b*x^2 + c*x^4)^(p + 1))/(c*(m + 4*p + 3)), x] - Dist[f^2/(c*(m + 4*p + 3)), Int[(f*x)^(m - 2)*(a + b*x^2 + c*x^4)^p*Simp[a*e*(m - 1) + (b*e*(m + 2*p + 1) - c*d*(m + 4*p + 3))*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, p}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[m, 1] && NeQ[m + 4*p + 3, 0] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*f*(f*x)^(m - 1)*(a + c*x^4)^(p + 1))/(c*(m + 4*p + 3)), x] - Dist[f^2/(c*(m + 4*p + 3)), Int[(f*x)^(m - 2)*(a + c*x^4)^p*(a*e*(m - 1) - c*d*(m + 4*p + 3)*x^2), x], x] /; FreeQ[{a, c, d, e, f, p}, x] && GtQ[m, 1] && NeQ[m + 4*p + 3, 0] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(f*x)^(m + 1)*(a + b*x^2 + c*x^4)^(p + 1))/(a*f*(m + 1)), x] + Dist[1/(a*f^2*(m + 1)), Int[(f*x)^(m + 2)*(a + b*x^2 + c*x^4)^p*Simp[a*e*(m + 1) - b*d*(m + 2*p + 3) - c*d*(m + 4*p + 5)*x^2, x], x], x] /; FreeQ[{a, b, c, d, e, f, p}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[m, -1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d*(f*x)^(m + 1)*(a + c*x^4)^(p + 1))/(a*f*(m + 1)), x] + Dist[1/(a*f^2*(m + 1)), Int[(f*x)^(m + 2)*(a + c*x^4)^p*(a*e*(m + 1) - c*d*(m + 4*p + 5)*x^2), x], x] /; FreeQ[{a, c, d, e, f, p}, x] && LtQ[m, -1] && IntegerQ[2*p] && (IntegerQ[p] || IntegerQ[m])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[(c*(2*c*d - b*e))/e, 2]}, Dist[e/2, Int[(f*x)^m/((c*d)/e - r*x + c*x^2), x], x] + Dist[e/2, Int[(f*x)^m/((c*d)/e + r*x + c*x^2), x], x]] /; FreeQ[{a, b, c, d, e, f, m}, x] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - a*e^2, 0] && GtQ[d/e, 0] && PosQ[(c*(2*c*d - b*e))/e]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[(2*c^2*d)/e, 2]}, Dist[e/2, Int[(f*x)^m/((c*d)/e - r*x + c*x^2), x], x] + Dist[e/2, Int[(f*x)^m/((c*d)/e + r*x + c*x^2), x], x]] /; FreeQ[{a, c, d, e, f, m}, x] && EqQ[c*d^2 - a*e^2, 0] && GtQ[d/e, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[e/2 + (2*c*d - b*e)/(2*q), Int[(f*x)^m/(b/2 - q/2 + c*x^2), x], x] + Dist[e/2 - (2*c*d - b*e)/(2*q), Int[(f*x)^m/(b/2 + q/2 + c*x^2), x], x]] /; FreeQ[{a, b, c, d, e, f, m}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a*c), 2]}, -Dist[e/2 + (c*d)/(2*q), Int[(f*x)^m/(q - c*x^2), x], x] + Dist[e/2 - (c*d)/(2*q), Int[(f*x)^m/(q + c*x^2), x], x]] /; FreeQ[{a, c, d, e, f, m}, x]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[((f*x)^m*(d + e*x^2)^q)/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f, m}, x] && NeQ[b^2 - 4*a*c, 0] && IntegerQ[q] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[((f*x)^m*(d + e*x^2)^q)/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f, m}, x] && IntegerQ[q] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(f*x)^m, (d + e*x^2)^q/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f, m}, x] && NeQ[b^2 - 4*a*c, 0] && IntegerQ[q] && !IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(f*x)^m, (d + e*x^2)^q/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f, m}, x] && IntegerQ[q] && !IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[f^4/c^2, Int[(f*x)^(m - 4)*(c*d - b*e + c*e*x^2)*(d + e*x^2)^(q - 1), x], x] - Dist[f^4/c^2, Int[((f*x)^(m - 4)*(d + e*x^2)^(q - 1)*Simp[a*(c*d - b*e) + (b*c*d - b^2*e + a*c*e)*x^2, x])/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[q] && GtQ[q, 0] && GtQ[m, 3]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[f^4/c, Int[(f*x)^(m - 4)*(d + e*x^2)^q, x], x] - Dist[(a*f^4)/c, Int[((f*x)^(m - 4)*(d + e*x^2)^q)/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f, q}, x] && !IntegerQ[q] && GtQ[m, 3]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(e*f^2)/c, Int[(f*x)^(m - 2)*(d + e*x^2)^(q - 1), x], x] - Dist[f^2/c, Int[((f*x)^(m - 2)*(d + e*x^2)^(q - 1)*Simp[a*e - (c*d - b*e)*x^2, x])/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[q] && GtQ[q, 0] && GtQ[m, 1] && LeQ[m, 3]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(e*f^2)/c, Int[(f*x)^(m - 2)*(d + e*x^2)^(q - 1), x], x] - Dist[f^2/c, Int[((f*x)^(m - 2)*(d + e*x^2)^(q - 1)*Simp[a*e - c*d*x^2, x])/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f}, x] && !IntegerQ[q] && GtQ[q, 0] && GtQ[m, 1] && LeQ[m, 3]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[d/a, Int[(f*x)^m*(d + e*x^2)^(q - 1), x], x] - Dist[1/(a*f^2), Int[((f*x)^(m + 2)*(d + e*x^2)^(q - 1)*Simp[b*d - a*e + c*d*x^2, x])/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[q] && GtQ[q, 0] && LtQ[m, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[d/a, Int[(f*x)^m*(d + e*x^2)^(q - 1), x], x] + Dist[1/(a*f^2), Int[((f*x)^(m + 2)*(d + e*x^2)^(q - 1)*Simp[a*e - c*d*x^2, x])/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f}, x] && !IntegerQ[q] && GtQ[q, 0] && LtQ[m, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(d^2*f^4)/(c*d^2 - b*d*e + a*e^2), Int[(f*x)^(m - 4)*(d + e*x^2)^q, x], x] - Dist[f^4/(c*d^2 - b*d*e + a*e^2), Int[((f*x)^(m - 4)*(d + e*x^2)^(q + 1)*Simp[a*d + (b*d - a*e)*x^2, x])/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[q] && LtQ[q, -1] && GtQ[m, 3]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[(d^2*f^4)/(c*d^2 + a*e^2), Int[(f*x)^(m - 4)*(d + e*x^2)^q, x], x] - Dist[(a*f^4)/(c*d^2 + a*e^2), Int[((f*x)^(m - 4)*(d + e*x^2)^(q + 1)*(d - e*x^2))/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f}, x] && !IntegerQ[q] && LtQ[q, -1] && GtQ[m, 3]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := -Dist[(d*e*f^2)/(c*d^2 - b*d*e + a*e^2), Int[(f*x)^(m - 2)*(d + e*x^2)^q, x], x] + Dist[f^2/(c*d^2 - b*d*e + a*e^2), Int[((f*x)^(m - 2)*(d + e*x^2)^(q + 1)*Simp[a*e + c*d*x^2, x])/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[q] && LtQ[q, -1] && GtQ[m, 1] && LeQ[m, 3]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := -Dist[(d*e*f^2)/(c*d^2 + a*e^2), Int[(f*x)^(m - 2)*(d + e*x^2)^q, x], x] + Dist[f^2/(c*d^2 + a*e^2), Int[((f*x)^(m - 2)*(d + e*x^2)^(q + 1)*Simp[a*e + c*d*x^2, x])/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f}, x] && !IntegerQ[q] && LtQ[q, -1] && GtQ[m, 1] && LeQ[m, 3]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[e^2/(c*d^2 - b*d*e + a*e^2), Int[(f*x)^m*(d + e*x^2)^q, x], x] + Dist[1/(c*d^2 - b*d*e + a*e^2), Int[((f*x)^m*(d + e*x^2)^(q + 1)*Simp[c*d - b*e - c*e*x^2, x])/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f, m}, x] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[q] && LtQ[q, -1]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[e^2/(c*d^2 + a*e^2), Int[(f*x)^m*(d + e*x^2)^q, x], x] + Dist[c/(c*d^2 + a*e^2), Int[((f*x)^m*(d + e*x^2)^(q + 1)*(d - e*x^2))/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f, m}, x] && !IntegerQ[q] && LtQ[q, -1]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)^q, (f*x)^m/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f, q}, x] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[q] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^2)^q, (f*x)^m/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f, q}, x] && !IntegerQ[q] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(f*x)^m*(d + e*x^2)^q, 1/(a + b*x^2 + c*x^4), x], x] /; FreeQ[{a, b, c, d, e, f, m, q}, x] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[q] && !IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(f*x)^m*(d + e*x^2)^q, 1/(a + c*x^4), x], x] /; FreeQ[{a, c, d, e, f, m, q}, x] && !IntegerQ[q] && !IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c)/r, Int[((f*x)^m*(d + e*x^2)^q)/(b - r + 2*c*x^2), x], x] - Dist[(2*c)/r, Int[((f*x)^m*(d + e*x^2)^q)/(b + r + 2*c*x^2), x], x]] /; FreeQ[{a, b, c, d, e, f, m, q}, x] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[-(a*c), 2]}, -Dist[c/(2*r), Int[((f*x)^m*(d + e*x^2)^q)/(r - c*x^2), x], x] - Dist[c/(2*r), Int[((f*x)^m*(d + e*x^2)^q)/(r + c*x^2), x], x]] /; FreeQ[{a, c, d, e, f, m, q}, x]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/d^2, Int[(f*x)^m*(a*d + (b*d - a*e)*x^2)*(a + b*x^2 + c*x^4)^(p - 1), x], x] + Dist[(c*d^2 - b*d*e + a*e^2)/(d^2*f^4), Int[((f*x)^(m + 4)*(a + b*x^2 + c*x^4)^(p - 1))/(d + e*x^2), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && LtQ[m, -2]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[a/d^2, Int[(f*x)^m*(d - e*x^2)*(a + c*x^4)^(p - 1), x], x] + Dist[(c*d^2 + a*e^2)/(d^2*f^4), Int[((f*x)^(m + 4)*(a + c*x^4)^(p - 1))/(d + e*x^2), x], x] /; FreeQ[{a, c, d, e, f}, x] && GtQ[p, 0] && LtQ[m, -2]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(d*e), Int[(f*x)^m*(a*e + c*d*x^2)*(a + b*x^2 + c*x^4)^(p - 1), x], x] - Dist[(c*d^2 - b*d*e + a*e^2)/(d*e*f^2), Int[((f*x)^(m + 2)*(a + b*x^2 + c*x^4)^(p - 1))/(d + e*x^2), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && GtQ[p, 0] && LtQ[m, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(d*e), Int[(f*x)^m*(a*e + c*d*x^2)*(a + c*x^4)^(p - 1), x], x] - Dist[(c*d^2 + a*e^2)/(d*e*f^2), Int[((f*x)^(m + 2)*(a + c*x^4)^(p - 1))/(d + e*x^2), x], x] /; FreeQ[{a, c, d, e, f}, x] && GtQ[p, 0] && LtQ[m, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Dist[f^4/(c*d^2 - b*d*e + a*e^2), Int[(f*x)^(m - 4)*(a*d + (b*d - a*e)*x^2)*(a + b*x^2 + c*x^4)^p, x], x] + Dist[(d^2*f^4)/(c*d^2 - b*d*e + a*e^2), Int[((f*x)^(m - 4)*(a + b*x^2 + c*x^4)^(p + 1))/(d + e*x^2), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && GtQ[m, 2]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Dist[(a*f^4)/(c*d^2 + a*e^2), Int[(f*x)^(m - 4)*(d - e*x^2)*(a + c*x^4)^p, x], x] + Dist[(d^2*f^4)/(c*d^2 + a*e^2), Int[((f*x)^(m - 4)*(a + c*x^4)^(p + 1))/(d + e*x^2), x], x] /; FreeQ[{a, c, d, e, f}, x] && LtQ[p, -1] && GtQ[m, 2]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[f^2/(c*d^2 - b*d*e + a*e^2), Int[(f*x)^(m - 2)*(a*e + c*d*x^2)*(a + b*x^2 + c*x^4)^p, x], x] - Dist[(d*e*f^2)/(c*d^2 - b*d*e + a*e^2), Int[((f*x)^(m - 2)*(a + b*x^2 + c*x^4)^(p + 1))/(d + e*x^2), x], x] /; FreeQ[{a, b, c, d, e, f}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && GtQ[m, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[d, Blank[]]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[f^2/(c*d^2 + a*e^2), Int[(f*x)^(m - 2)*(a*e + c*d*x^2)*(a + c*x^4)^p, x], x] - Dist[(d*e*f^2)/(c*d^2 + a*e^2), Int[((f*x)^(m - 2)*(a + c*x^4)^(p + 1))/(d + e*x^2), x], x] /; FreeQ[{a, c, d, e, f}, x] && LtQ[p, -1] && GtQ[m, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[d/(2*d*e), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] - Dist[d/(2*d*e), Int[(d - e*x^2)/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && PosQ[c/a] && EqQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[d/(2*d*e), Int[1/Sqrt[a + c*x^4], x], x] - Dist[d/(2*d*e), Int[(d - e*x^2)/((d + e*x^2)*Sqrt[a + c*x^4]), x], x] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && PosQ[c/a] && EqQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, -Dist[(a*(e + d*q))/(c*d^2 - a*e^2), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[(a*d*(e + d*q))/(c*d^2 - a*e^2), Int[(1 + q*x^2)/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && PosQ[c/a] && NeQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], 2], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, -Dist[(a*(e + d*q))/(c*d^2 - a*e^2), Int[1/Sqrt[a + c*x^4], x], x] + Dist[(a*d*(e + d*q))/(c*d^2 - a*e^2), Int[(1 + q*x^2)/((d + e*x^2)*Sqrt[a + c*x^4]), x], x]] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && PosQ[c/a] && NeQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], 4], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Dist[(e^2)^(-1), Int[(d - e*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[d^2/e^2, Int[1/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[c/a] && EqQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], 4], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := -Dist[(e^2)^(-1), Int[(d - e*x^2)/Sqrt[a + c*x^4], x], x] + Dist[d^2/e^2, Int[1/((d + e*x^2)*Sqrt[a + c*x^4]), x], x] /; FreeQ[{a, c, d, e}, x] && PosQ[c/a] && EqQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], 4], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, -Dist[(e*q)^(-1), Int[(1 - q*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[d^2/(e*(e - d*q)), Int[(1 + q*x^2)/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x] /; EqQ[2*c*d - a*e*q, 0]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[c/a] && NeQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], 4], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, -Dist[(e*q)^(-1), Int[(1 - q*x^2)/Sqrt[a + c*x^4], x], x] + Dist[d^2/(e*(e - d*q)), Int[(1 + q*x^2)/((d + e*x^2)*Sqrt[a + c*x^4]), x], x] /; EqQ[2*c*d - a*e*q, 0]] /; FreeQ[{a, c, d, e}, x] && PosQ[c/a] && NeQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], 4], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, -Dist[(2*c*d - a*e*q)/(c*e*(e - d*q)), Int[1/Sqrt[a + b*x^2 + c*x^4], x], x] + (-Dist[1/(e*q), Int[(1 - q*x^2)/Sqrt[a + b*x^2 + c*x^4], x], x] + Dist[d^2/(e*(e - d*q)), Int[(1 + q*x^2)/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x])] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && PosQ[c/a] && NeQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], 4], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 2]}, -Dist[(2*c*d - a*e*q)/(c*e*(e - d*q)), Int[1/Sqrt[a + c*x^4], x], x] + (-Dist[1/(e*q), Int[(1 - q*x^2)/Sqrt[a + c*x^4], x], x] + Dist[d^2/(e*(e - d*q)), Int[(1 + q*x^2)/((d + e*x^2)*Sqrt[a + c*x^4]), x], x])] /; FreeQ[{a, c, d, e}, x] && PosQ[c/a] && NeQ[c*d^2 - a*e^2, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(x^(m - 5)*Sqrt[a + b*x^2 + c*x^4])/(c*e*(m - 3)), x] - Dist[1/(c*e*(m - 3)), Int[(x^(m - 6)*Simp[a*d*(m - 5) + (a*e*(m - 5) + b*d*(m - 4))*x^2 + (b*e*(m - 4) + c*d*(m - 3))*x^4, x])/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && IGtQ[m/2, 2]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(x^(m - 5)*Sqrt[a + c*x^4])/(c*e*(m - 3)), x] - Dist[1/(c*e*(m - 3)), Int[(x^(m - 6)*Simp[a*d*(m - 5) + a*e*(m - 5)*x^2 + c*d*(m - 3)*x^4, x])/((d + e*x^2)*Sqrt[a + c*x^4]), x], x] /; FreeQ[{a, c, d, e}, x] && IGtQ[m/2, 2]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(x^(m + 1)*Sqrt[a + b*x^2 + c*x^4])/(a*d*(m + 1)), x] - Dist[1/(a*d*(m + 1)), Int[(x^(m + 2)*Simp[a*e*(m + 1) + b*d*(m + 2) + (b*e*(m + 2) + c*d*(m + 3))*x^2 + c*e*(m + 3)*x^4, x])/((d + e*x^2)*Sqrt[a + b*x^2 + c*x^4]), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && ILtQ[m/2, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], -1], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Simp[(x^(m + 1)*Sqrt[a + c*x^4])/(a*d*(m + 1)), x] - Dist[1/(a*d*(m + 1)), Int[(x^(m + 2)*Simp[a*e*(m + 1) + c*d*(m + 3)*x^2 + c*e*(m + 3)*x^4, x])/((d + e*x^2)*Sqrt[a + c*x^4]), x], x] /; FreeQ[{a, c, d, e}, x] && ILtQ[m/2, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(x^3*Sqrt[e + d/x^2]*Sqrt[c + b/x^2 + a/x^4])/(Sqrt[d + e*x^2]*Sqrt[a + b*x^2 + c*x^4]), Int[x^(m - 3)/(Sqrt[e + d/x^2]*Sqrt[c + b/x^2 + a/x^4]), x], x] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && IntegerQ[m/2]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Rational[-1, 2]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Rational[-1, 2]]], Pattern[x, Blank[Symbol]]] := Dist[(x^3*Sqrt[e + d/x^2]*Sqrt[c + a/x^4])/(Sqrt[d + e*x^2]*Sqrt[a + c*x^4]), Int[x^(m - 3)/(Sqrt[e + d/x^2]*Sqrt[c + a/x^4]), x], x] /; FreeQ[{a, c, d, e}, x] && IntegerQ[m/2]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{f = Coeff[PolynomialRemainder[x^m*(d + e*x^2)^q, a + b*x^2 + c*x^4, x], x, 0], g = Coeff[PolynomialRemainder[x^m*(d + e*x^2)^q, a + b*x^2 + c*x^4, x], x, 2]}, Simp[(x*(a + b*x^2 + c*x^4)^(p + 1)*(a*b*g - f*(b^2 - 2*a*c) - c*(b*f - 2*a*g)*x^2))/(2*a*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(2*a*(p + 1)*(b^2 - 4*a*c)), Int[(a + b*x^2 + c*x^4)^(p + 1)*Simp[ExpandToSum[2*a*(p + 1)*(b^2 - 4*a*c)*PolynomialQuotient[x^m*(d + e*x^2)^q, a + b*x^2 + c*x^4, x] + b^2*f*(2*p + 3) - 2*a*c*f*(4*p + 5) - a*b*g + c*(4*p + 7)*(b*f - 2*a*g)*x^2, x], x], x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && IGtQ[q, 1] && IGtQ[m/2, 0]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{f = Coeff[PolynomialRemainder[x^m*(d + e*x^2)^q, a + b*x^2 + c*x^4, x], x, 0], g = Coeff[PolynomialRemainder[x^m*(d + e*x^2)^q, a + b*x^2 + c*x^4, x], x, 2]}, Simp[(x*(a + b*x^2 + c*x^4)^(p + 1)*(a*b*g - f*(b^2 - 2*a*c) - c*(b*f - 2*a*g)*x^2))/(2*a*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(2*a*(p + 1)*(b^2 - 4*a*c)), Int[x^m*(a + b*x^2 + c*x^4)^(p + 1)*Simp[ExpandToSum[(2*a*(p + 1)*(b^2 - 4*a*c)*PolynomialQuotient[x^m*(d + e*x^2)^q, a + b*x^2 + c*x^4, x])/x^m + (b^2*f*(2*p + 3) - 2*a*c*f*(4*p + 5) - a*b*g)/x^m + c*(4*p + 7)*(b*f - 2*a*g)*x^(2 - m), x], x], x], x]] /; FreeQ[{a, b, c, d, e}, x] && NeQ[b^2 - 4*a*c, 0] && LtQ[p, -1] && IGtQ[q, 1] && ILtQ[m/2, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(f*x)^m*(d + e*x^2)^q*(a + b*x^2 + c*x^4)^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, p, q}, x] && NeQ[b^2 - 4*a*c, 0] && (IGtQ[p, 0] || IGtQ[q, 0] || IntegersQ[m, q])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(f*x)^m*(d + e*x^2)^q*(a + c*x^4)^p, x], x] /; FreeQ[{a, c, d, e, f, m, p, q}, x] && (IGtQ[p, 0] || IGtQ[q, 0] || IntegersQ[m, q])
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(f*x)^m/x^m, Int[ExpandIntegrand[x^m*(a + c*x^4)^p, (d/(d^2 - e^2*x^4) - (e*x^2)/(d^2 - e^2*x^4))^(-q), x], x], x] /; FreeQ[{a, c, d, e, f, m, p}, x] && !IntegerQ[p] && ILtQ[q, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], 2]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(f*x)^m*(d + e*x^2)^q*(a + b*x^2 + c*x^4)^p, x] /; FreeQ[{a, b, c, d, e, f, m, p, q}, x]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 2]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 4]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(f*x)^m*(d + e*x^2)^q*(a + c*x^4)^p, x] /; FreeQ[{a, c, d, e, f, m, p, q}, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[x^(2*n*p)*(c + b/x^n + a/x^(2*n))^p, x] /; FreeQ[{a, b, c}, x] && EqQ[n2, 2*n] && LtQ[n, 0] && IntegerQ[p]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[n]}, Dist[k, Subst[Int[x^(k - 1)*(a + b*x^(k*n) + c*x^(2*k*n))^p, x], x, x^(1/k)], x]] /; FreeQ[{a, b, c, p}, x] && EqQ[n2, 2*n] && FractionQ[n]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[(a + b/x^n + c/x^(2*n))^p/x^2, x], x, 1/x] /; FreeQ[{a, b, c, p}, x] && EqQ[n2, 2*n] && ILtQ[n, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^n + c*x^(2*n))^p/(b + 2*c*x^n)^(2*p), Int[(b + 2*c*x^n)^(2*p), x], x] /; FreeQ[{a, b, c, n, p}, x] && EqQ[n2, 2*n] && EqQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(b^2 - 2*a*c + b*c*x^n)*(a + b*x^n + c*x^(2*n))^(p + 1))/(a*n*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(a*n*(p + 1)*(b^2 - 4*a*c)), Int[(b^2 - 2*a*c + n*(p + 1)*(b^2 - 4*a*c) + b*c*(n*(2*p + 3) + 1)*x^n)*(a + b*x^n + c*x^(2*n))^(p + 1), x], x] /; FreeQ[{a, b, c, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && ILtQ[p, -1]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 2]}, With[{r = Rt[2*q - b/c, 2]}, Dist[1/(2*c*q*r), Int[(r - x^(n/2))/(q - r*x^(n/2) + x^n), x], x] + Dist[1/(2*c*q*r), Int[(r + x^(n/2))/(q + r*x^(n/2) + x^n), x], x]]] /; FreeQ[{a, b, c}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n/2, 0] && NegQ[b^2 - 4*a*c]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[c/q, Int[1/(b/2 - q/2 + c*x^n), x], x] - Dist[c/q, Int[1/(b/2 + q/2 + c*x^n), x], x]] /; FreeQ[{a, b, c}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^n + c*x^(2*n))^FracPart[p])/((1 + (2*c*x^n)/(b + Rt[b^2 - 4*a*c, 2]))^FracPart[p]*(1 + (2*c*x^n)/(b - Rt[b^2 - 4*a*c, 2]))^FracPart[p]), Int[(1 + (2*c*x^n)/(b + Sqrt[b^2 - 4*a*c]))^p*(1 + (2*c*x^n)/(b - Sqrt[b^2 - 4*a*c]))^p, x], x] /; FreeQ[{a, b, c, n, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && !IntegerQ[p]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[u, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(a + b*x^n + c*x^(2*n))^p, x], x, u], x] /; FreeQ[{a, b, c, n, p}, x] && EqQ[n2, 2*n] && LinearQ[u, x] && NeQ[u, x]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[mn, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[(b + a*x^n + c*x^(2*n))^p/x^(n*p), x] /; FreeQ[{a, b, c, n}, x] && EqQ[mn, -n] && IntegerQ[p] && PosQ[n]
Int[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[mn, Blank[]]]]], Pattern[p, Blank[]]], Pattern[x, Blank[Symbol]]] := Dist[(x^(n*FracPart[p])*(a + b/x^n + c*x^n)^FracPart[p])/(b + a*x^n + c*x^(2*n))^FracPart[p], Int[(b + a*x^n + c*x^(2*n))^p/x^(n*p), x], x] /; FreeQ[{a, b, c, n, p}, x] && EqQ[mn, -n] && !IntegerQ[p] && PosQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[(a + b*x + c*x^2)^p, x], x, x^n], x] /; FreeQ[{a, b, c, m, n, p}, x] && EqQ[n2, 2*n] && EqQ[Simplify[m - n + 1], 0]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d*x)^m*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, m, n}, x] && EqQ[n2, 2*n] && IGtQ[p, 0] && !IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m + 2*n*p)*(c + b/x^n + a/x^(2*n))^p, x] /; FreeQ[{a, b, c, m, n}, x] && EqQ[n2, 2*n] && ILtQ[p, 0] && NegQ[n]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^n + c*x^(2*n))^FracPart[p]/(c^IntPart[p]*(b/2 + c*x^n)^(2*FracPart[p])), Int[(d*x)^m*(b/2 + c*x^n)^(2*p), x], x] /; FreeQ[{a, b, c, d, m, n, p}, x] && EqQ[n2, 2*n] && EqQ[b^2 - 4*a*c, 0] && IntegerQ[p - 1/2]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^n + c*x^(2*n))^FracPart[p])/(1 + (2*c*x^n)/b)^(2*FracPart[p]), Int[(d*x)^m*(1 + (2*c*x^n)/b)^(2*p), x], x] /; FreeQ[{a, b, c, d, m, n, p}, x] && EqQ[n2, 2*n] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[2*p]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[x^(Simplify[(m + 1)/n] - 1)*(a + b*x + c*x^2)^p, x], x, x^n], x] /; FreeQ[{a, b, c, m, n, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Pattern[d, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(d^IntPart[m]*(d*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, m, n, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = GCD[m + 1, n]}, Dist[1/k, Subst[Int[x^((m + 1)/k - 1)*(a + b*x^(n/k) + c*x^((2*n)/k))^p, x], x, x^k], x] /; k != 1] /; FreeQ[{a, b, c, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, Dist[k/d, Subst[Int[x^(k*(m + 1) - 1)*(a + (b*x^(k*n))/d^n + (c*x^(2*k*n))/d^(2*n))^p, x], x, (d*x)^(1/k)], x]] /; FreeQ[{a, b, c, d, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && FractionQ[m] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d^(n - 1)*(d*x)^(m - n + 1)*(a + b*x^n + c*x^(2*n))^p*(b*n*p + c*(m + n*(2*p - 1) + 1)*x^n))/(c*(m + 2*n*p + 1)*(m + n*(2*p - 1) + 1)), x] - Dist[(n*p*d^n)/(c*(m + 2*n*p + 1)*(m + n*(2*p - 1) + 1)), Int[(d*x)^(m - n)*(a + b*x^n + c*x^(2*n))^(p - 1)*Simp[a*b*(m - n + 1) - (2*a*c*(m + n*(2*p - 1) + 1) - b^2*(m + n*(p - 1) + 1))*x^n, x], x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && IGtQ[p, 0] && GtQ[m, n - 1] && NeQ[m + 2*n*p + 1, 0] && NeQ[m + n*(2*p - 1) + 1, 0]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*x)^(m + 1)*(a + b*x^n + c*x^(2*n))^p)/(d*(m + 1)), x] - Dist[(n*p)/(d^n*(m + 1)), Int[(d*x)^(m + n)*(b + 2*c*x^n)*(a + b*x^n + c*x^(2*n))^(p - 1), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && IGtQ[p, 0] && LtQ[m, -1]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*x)^(m + 1)*(a + b*x^n + c*x^(2*n))^p)/(d*(m + 2*n*p + 1)), x] + Dist[(n*p)/(m + 2*n*p + 1), Int[(d*x)^m*(2*a + b*x^n)*(a + b*x^n + c*x^(2*n))^(p - 1), x], x] /; FreeQ[{a, b, c, d, m}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && IGtQ[p, 0] && NeQ[m + 2*n*p + 1, 0]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d^(n - 1)*(d*x)^(m - n + 1)*(b + 2*c*x^n)*(a + b*x^n + c*x^(2*n))^(p + 1))/(n*(p + 1)*(b^2 - 4*a*c)), x] - Dist[d^n/(n*(p + 1)*(b^2 - 4*a*c)), Int[(d*x)^(m - n)*(b*(m - n + 1) + 2*c*(m + 2*n*(p + 1) + 1)*x^n)*(a + b*x^n + c*x^(2*n))^(p + 1), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && ILtQ[p, -1] && GtQ[m, n - 1] && LeQ[m, 2*n - 1]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(d^(2*n - 1)*(d*x)^(m - 2*n + 1)*(2*a + b*x^n)*(a + b*x^n + c*x^(2*n))^(p + 1))/(n*(p + 1)*(b^2 - 4*a*c)), x] + Dist[d^(2*n)/(n*(p + 1)*(b^2 - 4*a*c)), Int[(d*x)^(m - 2*n)*(2*a*(m - 2*n + 1) + b*(m + n*(2*p + 1) + 1)*x^n)*(a + b*x^n + c*x^(2*n))^(p + 1), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && ILtQ[p, -1] && GtQ[m, 2*n - 1]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d*x)^(m + 1)*(b^2 - 2*a*c + b*c*x^n)*(a + b*x^n + c*x^(2*n))^(p + 1))/(a*d*n*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(a*n*(p + 1)*(b^2 - 4*a*c)), Int[(d*x)^m*(a + b*x^n + c*x^(2*n))^(p + 1)*Simp[b^2*(m + n*(p + 1) + 1) - 2*a*c*(m + 2*n*(p + 1) + 1) + b*c*(m + n*(2*p + 3) + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, m}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && ILtQ[p, -1]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(d^(2*n - 1)*(d*x)^(m - 2*n + 1)*(a + b*x^n + c*x^(2*n))^(p + 1))/(c*(m + 2*n*p + 1)), x] - Dist[d^(2*n)/(c*(m + 2*n*p + 1)), Int[(d*x)^(m - 2*n)*Simp[a*(m - 2*n + 1) + b*(m + n*(p - 1) + 1)*x^n, x]*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && GtQ[m, 2*n - 1] && NeQ[m + 2*n*p + 1, 0] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((d*x)^(m + 1)*(a + b*x^n + c*x^(2*n))^(p + 1))/(a*d*(m + 1)), x] - Dist[1/(a*d^n*(m + 1)), Int[(d*x)^(m + n)*(b*(m + n*(p + 1) + 1) + c*(m + 2*n*(p + 1) + 1)*x^n)*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && LtQ[m, -1] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(d*x)^(m + 1)/(a*d*(m + 1)), x] - Dist[1/(a*d^n), Int[((d*x)^(m + n)*(b + c*x^n))/(a + b*x^n + c*x^(2*n)), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && LtQ[m, -1]
Int[Times[Power[Pattern[x, Blank[]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Int[PolynomialDivide[x^m, a + b*x^n + c*x^(2*n), x], x] /; FreeQ[{a, b, c}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && IGtQ[m, 3*n - 1]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Simp[(d^(2*n - 1)*(d*x)^(m - 2*n + 1))/(c*(m - 2*n + 1)), x] - Dist[d^(2*n)/c, Int[((d*x)^(m - 2*n)*(a + b*x^n))/(a + b*x^n + c*x^(2*n)), x], x] /; FreeQ[{a, b, c, d}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && GtQ[m, 2*n - 1]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 2]}, With[{r = Rt[2*q - b/c, 2]}, -Dist[1/(2*c*r), Int[(x^(m - 3*(n/2))*(q - r*x^(n/2)))/(q - r*x^(n/2) + x^n), x], x] + Dist[1/(2*c*r), Int[(x^(m - 3*(n/2))*(q + r*x^(n/2)))/(q + r*x^(n/2) + x^n), x], x]]] /; FreeQ[{a, b, c}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n/2, 0] && IGtQ[m, 0] && GeQ[m, (3*n)/2] && LtQ[m, 2*n] && NegQ[b^2 - 4*a*c]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 2]}, With[{r = Rt[2*q - b/c, 2]}, Dist[1/(2*c*r), Int[x^(m - n/2)/(q - r*x^(n/2) + x^n), x], x] - Dist[1/(2*c*r), Int[x^(m - n/2)/(q + r*x^(n/2) + x^n), x], x]]] /; FreeQ[{a, b, c}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n/2, 0] && IGtQ[m, 0] && GeQ[m, n/2] && LtQ[m, (3*n)/2] && NegQ[b^2 - 4*a*c]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(d^n*(b/q + 1))/2, Int[(d*x)^(m - n)/(b/2 + q/2 + c*x^n), x], x] - Dist[(d^n*(b/q - 1))/2, Int[(d*x)^(m - n)/(b/2 - q/2 + c*x^n), x], x]] /; FreeQ[{a, b, c, d}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0] && GeQ[m, n]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[c/q, Int[(d*x)^m/(b/2 - q/2 + c*x^n), x], x] - Dist[c/q, Int[(d*x)^m/(b/2 + q/2 + c*x^n), x], x]] /; FreeQ[{a, b, c, d, m}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[n, 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[(a + b/x^n + c/x^(2*n))^p/x^(m + 2), x], x, 1/x] /; FreeQ[{a, b, c, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && ILtQ[n, 0] && IntegerQ[m]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[m]}, -Dist[k/d, Subst[Int[(a + b/(d^n*x^(k*n)) + c/(d^(2*n)*x^(2*k*n)))^p/x^(k*(m + 1) + 1), x], x, 1/(d*x)^(1/k)], x]] /; FreeQ[{a, b, c, d, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && ILtQ[n, 0] && FractionQ[m]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Dist[d^IntPart[m]*(d*x)^FracPart[m]*(x^(-1))^FracPart[m], Subst[Int[(a + b/x^n + c/x^(2*n))^p/x^(m + 2), x], x, 1/x], x] /; FreeQ[{a, b, c, d, m, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && ILtQ[n, 0] && !RationalQ[m]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := With[{k = Denominator[n]}, Dist[k, Subst[Int[x^(k*(m + 1) - 1)*(a + b*x^(k*n) + c*x^(2*k*n))^p, x], x, x^(1/k)], x]] /; FreeQ[{a, b, c, m, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && FractionQ[n]
Int[Times[Power[Times[Pattern[d, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(d^IntPart[m]*(d*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, m, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && FractionQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[1/(m + 1), Subst[Int[(a + b*x^Simplify[n/(m + 1)] + c*x^Simplify[(2*n)/(m + 1)])^p, x], x, x^(m + 1)], x] /; FreeQ[{a, b, c, m, n, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IntegerQ[Simplify[n/(m + 1)]] && !IntegerQ[n]
Int[Times[Power[Times[Pattern[d, Blank[]], Pattern[x, Blank[]]], Pattern[m, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(d^IntPart[m]*(d*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, m, n, p}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IntegerQ[Simplify[n/(m + 1)]] && !IntegerQ[n]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c)/q, Int[(d*x)^m/(b - q + 2*c*x^n), x], x] - Dist[(2*c)/q, Int[(d*x)^m/(b + q + 2*c*x^n), x], x]] /; FreeQ[{a, b, c, d, m, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[((d*x)^(m + 1)*(b^2 - 2*a*c + b*c*x^n)*(a + b*x^n + c*x^(2*n))^(p + 1))/(a*d*n*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(a*n*(p + 1)*(b^2 - 4*a*c)), Int[(d*x)^m*(a + b*x^n + c*x^(2*n))^(p + 1)*Simp[b^2*(n*(p + 1) + m + 1) - 2*a*c*(m + 2*n*(p + 1) + 1) + b*c*(2*n*p + 3*n + m + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, m, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && ILtQ[p + 1, 0]
Int[Times[Power[Times[Optional[Pattern[d, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a^IntPart[p]*(a + b*x^n + c*x^(2*n))^FracPart[p])/((1 + (2*c*x^n)/(b + Rt[b^2 - 4*a*c, 2]))^FracPart[p]*(1 + (2*c*x^n)/(b - Rt[b^2 - 4*a*c, 2]))^FracPart[p]), Int[(d*x)^m*(1 + (2*c*x^n)/(b + Sqrt[b^2 - 4*a*c]))^p*(1 + (2*c*x^n)/(b - Sqrt[b^2 - 4*a*c]))^p, x], x] /; FreeQ[{a, b, c, d, m, n, p}, x] && EqQ[n2, 2*n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[mn, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m - n*p)*(b + a*x^n + c*x^(2*n))^p, x] /; FreeQ[{a, b, c, m, n}, x] && EqQ[mn, -n] && IntegerQ[p] && PosQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[mn, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(x^(n*FracPart[p])*(a + b/x^n + c*x^n)^FracPart[p])/(b + a*x^n + c*x^(2*n))^FracPart[p], Int[x^(m - n*p)*(b + a*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, m, n, p}, x] && EqQ[mn, -n] && !IntegerQ[p] && PosQ[n]
Int[Times[Power[Times[Pattern[d, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[mn, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(d^IntPart[m]*(d*x)^FracPart[m])/x^FracPart[m], Int[x^m*(a + b/x^n + c*x^n)^p, x], x] /; FreeQ[{a, b, c, d, m, n, p}, x] && EqQ[mn, -n]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[v, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[v, x, 1]^(m + 1), Subst[Int[SimplifyIntegrand[(x - Coefficient[v, x, 0])^m*(a + b*x^n + c*x^(2*n))^p, x], x], x, v], x] /; FreeQ[{a, b, c, n, p}, x] && EqQ[n2, 2*n] && LinearQ[v, x] && IntegerQ[m] && NeQ[v, x]
Int[Times[Power[Pattern[u, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[v, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[v, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[u^m/(Coefficient[v, x, 1]*v^m), Subst[Int[x^m*(a + b*x^n + c*x^(2*n))^p, x], x, v], x] /; FreeQ[{a, b, c, m, n, p}, x] && EqQ[n2, 2*n] && LinearPairQ[u, v, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^n + c*x^(2*n))^p/(d + e*x^n)^(2*p), Int[(d + e*x^n)^(q + 2*p), x], x] /; FreeQ[{a, b, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && EqQ[2*c*d - b*e, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^n + c*x^(2*n))^FracPart[p]/(c^IntPart[p]*(b/2 + c*x^n)^(2*FracPart[p])), Int[(d + e*x^n)^q*(b/2 + c*x^n)^(2*p), x], x] /; FreeQ[{a, b, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(n*(2*p + q))*(e + d/x^n)^q*(c + b/x^n + a/x^(2*n))^p, x] /; FreeQ[{a, b, c, d, e, n}, x] && EqQ[n2, 2*n] && IntegersQ[p, q] && NegQ[n]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(n*(2*p + q))*(e + d/x^n)^q*(c + a/x^(2*n))^p, x] /; FreeQ[{a, c, d, e, n}, x] && EqQ[n2, 2*n] && IntegersQ[p, q] && NegQ[n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[((d + e/x^n)^q*(a + b/x^n + c/x^(2*n))^p)/x^2, x], x, 1/x] /; FreeQ[{a, b, c, d, e, p, q}, x] && EqQ[n2, 2*n] && ILtQ[n, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Subst[Int[((d + e/x^n)^q*(a + c/x^(2*n))^p)/x^2, x], x, 1/x] /; FreeQ[{a, c, d, e, p, q}, x] && EqQ[n2, 2*n] && ILtQ[n, 0]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{g = Denominator[n]}, Dist[g, Subst[Int[x^(g - 1)*(d + e*x^(g*n))^q*(a + b*x^(g*n) + c*x^(2*g*n))^p, x], x, x^(1/g)], x]] /; FreeQ[{a, b, c, d, e, p, q}, x] && EqQ[n2, 2*n] && FractionQ[n]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := With[{g = Denominator[n]}, Dist[g, Subst[Int[x^(g - 1)*(d + e*x^(g*n))^q*(a + c*x^(2*g*n))^p, x], x, x^(1/g)], x]] /; FreeQ[{a, c, d, e, p, q}, x] && EqQ[n2, 2*n] && FractionQ[n]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((b*e - d*c)*(b*x^n + c*x^(2*n))^(p + 1))/(b*c*n*(p + 1)*x^(2*n*(p + 1))), x] + Dist[e/c, Int[(b*x^n + c*x^(2*n))^(p + 1)/x^n, x], x] /; FreeQ[{b, c, d, e, n, p}, x] && EqQ[n2, 2*n] && !IntegerQ[p] && EqQ[n*(2*p + 1) + 1, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*x^(-n + 1)*(b*x^n + c*x^(2*n))^(p + 1))/(c*(n*(2*p + 1) + 1)), x] /; FreeQ[{b, c, d, e, n, p}, x] && EqQ[n2, 2*n] && !IntegerQ[p] && NeQ[n*(2*p + 1) + 1, 0] && EqQ[b*e*(n*p + 1) - c*d*(n*(2*p + 1) + 1), 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(e*x^(-n + 1)*(b*x^n + c*x^(2*n))^(p + 1))/(c*(n*(2*p + 1) + 1)), x] - Dist[(b*e*(n*p + 1) - c*d*(n*(2*p + 1) + 1))/(c*(n*(2*p + 1) + 1)), Int[(b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{b, c, d, e, n, p}, x] && EqQ[n2, 2*n] && !IntegerQ[p] && NeQ[n*(2*p + 1) + 1, 0] && NeQ[b*e*(n*p + 1) - c*d*(n*(2*p + 1) + 1), 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(b*x^n + c*x^(2*n))^FracPart[p]/(x^(n*FracPart[p])*(b + c*x^n)^FracPart[p]), Int[x^(n*p)*(d + e*x^n)^q*(b + c*x^n)^p, x], x] /; FreeQ[{b, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x^n)^(p + q)*(a/d + (c*x^n)/e)^p, x] /; FreeQ[{a, b, c, d, e, n, q}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x^n)^(p + q)*(a/d + (c*x^n)/e)^p, x] /; FreeQ[{a, c, d, e, n, q}, x] && EqQ[n2, 2*n] && EqQ[c*d^2 + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^n + c*x^(2*n))^FracPart[p]/((d + e*x^n)^FracPart[p]*(a/d + (c*x^n)/e)^FracPart[p]), Int[(d + e*x^n)^(p + q)*(a/d + (c*x^n)/e)^p, x], x] /; FreeQ[{a, b, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + c*x^(2*n))^FracPart[p]/((d + e*x^n)^FracPart[p]*(a/d + (c*x^n)/e)^FracPart[p]), Int[(d + e*x^n)^(p + q)*(a/d + (c*x^n)/e)^p, x], x] /; FreeQ[{a, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^n)^q*(a + b*x^n + c*x^(2*n)), x], x] /; FreeQ[{a, b, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^n)^q*(a + c*x^(2*n)), x], x] /; FreeQ[{a, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*d^2 - b*d*e + a*e^2)*x*(d + e*x^n)^(q + 1))/(d*e^2*n*(q + 1)), x] + Dist[1/(n*(q + 1)*d*e^2), Int[(d + e*x^n)^(q + 1)*Simp[c*d^2 - b*d*e + a*e^2*(n*(q + 1) + 1) + c*d*e*n*(q + 1)*x^n, x], x], x] /; FreeQ[{a, b, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && LtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := -Simp[((c*d^2 + a*e^2)*x*(d + e*x^n)^(q + 1))/(d*e^2*n*(q + 1)), x] + Dist[1/(n*(q + 1)*d*e^2), Int[(d + e*x^n)^(q + 1)*Simp[c*d^2 + a*e^2*(n*(q + 1) + 1) + c*d*e*n*(q + 1)*x^n, x], x], x] /; FreeQ[{a, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && LtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*x^(n + 1)*(d + e*x^n)^(q + 1))/(e*(n*(q + 2) + 1)), x] + Dist[1/(e*(n*(q + 2) + 1)), Int[(d + e*x^n)^q*(a*e*(n*(q + 2) + 1) - (c*d*(n + 1) - b*e*(n*(q + 2) + 1))*x^n), x], x] /; FreeQ[{a, b, c, d, e, n, q}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]]], Pattern[x, Blank[Symbol]]] := Simp[(c*x^(n + 1)*(d + e*x^n)^(q + 1))/(e*(n*(q + 2) + 1)), x] + Dist[1/(e*(n*(q + 2) + 1)), Int[(d + e*x^n)^q*(a*e*(n*(q + 2) + 1) - c*d*(n + 1)*x^n), x], x] /; FreeQ[{a, c, d, e, n, q}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[2*d*e, 2]}, Dist[e^2/(2*c), Int[1/(d + q*x^(n/2) + e*x^n), x], x] + Dist[e^2/(2*c), Int[1/(d - q*x^(n/2) + e*x^n), x], x]] /; FreeQ[{a, c, d, e}, x] && EqQ[n2, 2*n] && EqQ[c*d^2 - a*e^2, 0] && IGtQ[n/2, 0] && PosQ[d*e]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-2*d*e, 2]}, Dist[d/(2*a), Int[(d - q*x^(n/2))/(d - q*x^(n/2) - e*x^n), x], x] + Dist[d/(2*a), Int[(d + q*x^(n/2))/(d + q*x^(n/2) - e*x^n), x], x]] /; FreeQ[{a, c, d, e}, x] && EqQ[n2, 2*n] && EqQ[c*d^2 - a*e^2, 0] && IGtQ[n/2, 0] && NegQ[d*e]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 4]}, Dist[1/(2*Sqrt[2]*c*q^3), Int[(Sqrt[2]*d*q - (d - e*q^2)*x^(n/2))/(q^2 - Sqrt[2]*q*x^(n/2) + x^n), x], x] + Dist[1/(2*Sqrt[2]*c*q^3), Int[(Sqrt[2]*d*q + (d - e*q^2)*x^(n/2))/(q^2 + Sqrt[2]*q*x^(n/2) + x^n), x], x]] /; FreeQ[{a, c, d, e}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && NeQ[c*d^2 - a*e^2, 0] && IGtQ[n/2, 0] && PosQ[a*c]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], 3]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], 6]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[c/a, 6]}, Dist[1/(3*a*q^2), Int[(q^2*d - e*x)/(1 + q^2*x^2), x], x] + (Dist[1/(6*a*q^2), Int[(2*q^2*d - (Sqrt[3]*q^3*d - e)*x)/(1 - Sqrt[3]*q*x + q^2*x^2), x], x] + Dist[1/(6*a*q^2), Int[(2*q^2*d + (Sqrt[3]*q^3*d + e)*x)/(1 + Sqrt[3]*q*x + q^2*x^2), x], x])] /; FreeQ[{a, c, d, e}, x] && NeQ[c*d^2 + a*e^2, 0] && PosQ[c/a]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[-(a/c), 2]}, Dist[(d + e*q)/2, Int[1/(a + c*q*x^n), x], x] + Dist[(d - e*q)/2, Int[1/(a - c*q*x^n), x], x]] /; FreeQ[{a, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && NegQ[a*c] && IntegerQ[n]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[d, Int[1/(a + c*x^(2*n)), x], x] + Dist[e, Int[x^n/(a + c*x^(2*n)), x], x] /; FreeQ[{a, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && (PosQ[a*c] || !IntegerQ[n])
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(2*d)/e - b/c, 2]}, Dist[e/(2*c), Int[1/Simp[d/e + q*x^(n/2) + x^n, x], x], x] + Dist[e/(2*c), Int[1/Simp[d/e - q*x^(n/2) + x^n, x], x], x]] /; FreeQ[{a, b, c, d, e}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - a*e^2, 0] && IGtQ[n/2, 0] && (GtQ[(2*d)/e - b/c, 0] || ( !LtQ[(2*d)/e - b/c, 0] && EqQ[d, e*Rt[a/c, 2]]))
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[e/2 + (2*c*d - b*e)/(2*q), Int[1/(b/2 - q/2 + c*x^n), x], x] + Dist[e/2 - (2*c*d - b*e)/(2*q), Int[1/(b/2 + q/2 + c*x^n), x], x]] /; FreeQ[{a, b, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - a*e^2, 0] && IGtQ[n/2, 0] && GtQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[(-2*d)/e - b/c, 2]}, Dist[e/(2*c*q), Int[(q - 2*x^(n/2))/Simp[d/e + q*x^(n/2) - x^n, x], x], x] + Dist[e/(2*c*q), Int[(q + 2*x^(n/2))/Simp[d/e - q*x^(n/2) - x^n, x], x], x]] /; FreeQ[{a, b, c, d, e}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - a*e^2, 0] && IGtQ[n/2, 0] && !GtQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[b^2 - 4*a*c, 2]}, Dist[e/2 + (2*c*d - b*e)/(2*q), Int[1/(b/2 - q/2 + c*x^n), x], x] + Dist[e/2 - (2*c*d - b*e)/(2*q), Int[1/(b/2 + q/2 + c*x^n), x], x]] /; FreeQ[{a, b, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && (PosQ[b^2 - 4*a*c] || !IGtQ[n/2, 0])
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{q = Rt[a/c, 2]}, With[{r = Rt[2*q - b/c, 2]}, Dist[1/(2*c*q*r), Int[(d*r - (d - e*q)*x^(n/2))/(q - r*x^(n/2) + x^n), x], x] + Dist[1/(2*c*q*r), Int[(d*r + (d - e*q)*x^(n/2))/(q + r*x^(n/2) + x^n), x], x]]] /; FreeQ[{a, b, c, d, e}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IGtQ[n/2, 0] && NegQ[b^2 - 4*a*c]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^n)^q/(a + b*x^n + c*x^(2*n)), x], x] /; FreeQ[{a, b, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[q]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^n)^q/(a + c*x^(2*n)), x], x] /; FreeQ[{a, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && IntegerQ[q]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[e^2/(c*d^2 - b*d*e + a*e^2), Int[(d + e*x^n)^q, x], x] + Dist[1/(c*d^2 - b*d*e + a*e^2), Int[((d + e*x^n)^(q + 1)*(c*d - b*e - c*e*x^n))/(a + b*x^n + c*x^(2*n)), x], x] /; FreeQ[{a, b, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[q] && LtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := Dist[e^2/(c*d^2 + a*e^2), Int[(d + e*x^n)^q, x], x] + Dist[c/(c*d^2 + a*e^2), Int[((d + e*x^n)^(q + 1)*(d - e*x^n))/(a + c*x^(2*n)), x], x] /; FreeQ[{a, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[q] && LtQ[q, -1]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[b^2 - 4*a*c, 2]}, Dist[(2*c)/r, Int[(d + e*x^n)^q/(b - r + 2*c*x^n), x], x] - Dist[(2*c)/r, Int[(d + e*x^n)^q/(b + r + 2*c*x^n), x], x]] /; FreeQ[{a, b, c, d, e, n, q}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[q]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], -1]], Pattern[x, Blank[Symbol]]] := With[{r = Rt[-(a*c), 2]}, -Dist[c/(2*r), Int[(d + e*x^n)^q/(r - c*x^n), x], x] - Dist[c/(2*r), Int[(d + e*x^n)^q/(r + c*x^n), x], x]] /; FreeQ[{a, c, d, e, n, q}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[q]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(d*b^2 - a*b*e - 2*a*c*d + (b*d - 2*a*e)*c*x^n)*(a + b*x^n + c*x^(2*n))^(p + 1))/(a*n*(p + 1)*(b^2 - 4*a*c)), x] + Dist[1/(a*n*(p + 1)*(b^2 - 4*a*c)), Int[Simp[(n*p + n + 1)*d*b^2 - a*b*e - 2*a*c*d*(2*n*p + 2*n + 1) + (2*n*p + 3*n + 1)*(d*b - 2*a*e)*c*x^n, x]*(a + b*x^n + c*x^(2*n))^(p + 1), x], x] /; FreeQ[{a, b, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && ILtQ[p, -1]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := -Simp[(x*(d + e*x^n)*(a + c*x^(2*n))^(p + 1))/(2*a*n*(p + 1)), x] + Dist[1/(2*a*n*(p + 1)), Int[(d*(2*n*p + 2*n + 1) + e*(2*n*p + 3*n + 1)*x^n)*(a + c*x^(2*n))^(p + 1), x], x] /; FreeQ[{a, c, d, e, n}, x] && EqQ[n2, 2*n] && ILtQ[p, -1]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^n)*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, e, n}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0]
Int[Times[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^n)*(a + c*x^(2*n))^p, x], x] /; FreeQ[{a, c, d, e, n}, x] && EqQ[n2, 2*n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^p*x^(2*n*p - n + 1)*(d + e*x^n)^(q + 1))/(e*(2*n*p + n*q + 1)), x] + Int[(d + e*x^n)^q*ExpandToSum[(a + b*x^n + c*x^(2*n))^p - c^p*x^(2*n*p) - (d*c^p*(2*n*p - n + 1)*x^(2*n*p - n))/(e*(2*n*p + n*q + 1)), x], x] /; FreeQ[{a, b, c, d, e, n, q}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && IGtQ[p, 0] && NeQ[2*n*p + n*q + 1, 0] && IGtQ[n, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[(c^p*x^(2*n*p - n + 1)*(d + e*x^n)^(q + 1))/(e*(2*n*p + n*q + 1)), x] + Int[(d + e*x^n)^q*ExpandToSum[(a + c*x^(2*n))^p - c^p*x^(2*n*p) - (d*c^p*(2*n*p - n + 1)*x^(2*n*p - n))/(e*(2*n*p + n*q + 1)), x], x] /; FreeQ[{a, c, d, e, n, q}, x] && EqQ[n2, 2*n] && IGtQ[p, 0] && NeQ[2*n*p + n*q + 1, 0] && IGtQ[n, 0] && !IGtQ[q, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^n)^q*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && NeQ[c*d^2 - b*d*e + a*e^2, 0] && ((IntegersQ[p, q] && !IntegerQ[n]) || IGtQ[p, 0] || (IGtQ[q, 0] && !IntegerQ[n]))
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(d + e*x^n)^q*(a + c*x^(2*n))^p, x], x] /; FreeQ[{a, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && ((IntegersQ[p, q] && !IntegerQ[n]) || IGtQ[p, 0] || (IGtQ[q, 0] && !IntegerQ[n]))
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Int[ExpandIntegrand[(a + c*x^(2*n))^p, (d/(d^2 - e^2*x^(2*n)) - (e*x^n)/(d^2 - e^2*x^(2*n)))^(-q), x], x] /; FreeQ[{a, c, d, e, n, p}, x] && EqQ[n2, 2*n] && NeQ[c*d^2 + a*e^2, 0] && !IntegerQ[p] && ILtQ[q, 0]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(d + e*x^n)^q*(a + b*x^n + c*x^(2*n))^p, x] /; FreeQ[{a, b, c, d, e, n, p, q}, x] && EqQ[n2, 2*n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Unintegrable[(d + e*x^n)^q*(a + c*x^(2*n))^p, x] /; FreeQ[{a, c, d, e, n, p, q}, x] && EqQ[n2, 2*n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[u, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[u, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(d + e*x^n)^q*(a + b*x^n + c*x^(2*n))^p, x], x, u], x] /; FreeQ[{a, b, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[u, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[u, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/Coefficient[u, x, 1], Subst[Int[(d + e*x^n)^q*(a + c*x^(2*n))^p, x], x, u], x] /; FreeQ[{a, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && LinearQ[u, x] && NeQ[u, x]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((e + d*x^n)^q*(a + b*x^n + c*x^(2*n))^p)/x^(n*q), x] /; FreeQ[{a, b, c, d, e, n, p}, x] && EqQ[n2, 2*n] && EqQ[mn, -n] && IntegerQ[q] && (PosQ[n] || !IntegerQ[p])
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(mn*q)*(e + d/x^mn)^q*(a + c*x^n2)^p, x] /; FreeQ[{a, c, d, e, mn, p}, x] && EqQ[n2, -2*mn] && IntegerQ[q] && (PosQ[n2] || !IntegerQ[p])
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((d + e*x^n)^q*(c + b*x^n + a*x^(2*n))^p)/x^(2*n*p), x] /; FreeQ[{a, b, c, d, e, n, q}, x] && EqQ[mn, -n] && EqQ[mn2, 2*mn] && IntegerQ[p]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((d + e*x^n)^q*(c + a*x^(2*n))^p)/x^(2*n*p), x] /; FreeQ[{a, c, d, e, n, q}, x] && EqQ[mn2, -2*n] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Pattern[q, Blank[]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^IntPart[q]*x^(n*FracPart[q])*(d + e/x^n)^FracPart[q])/(1 + (d*x^n)/e)^FracPart[q], Int[((1 + (d*x^n)/e)^q*(a + b*x^n + c*x^(2*n))^p)/x^(n*q), x], x] /; FreeQ[{a, b, c, d, e, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[mn, -n] && !IntegerQ[p] && !IntegerQ[q] && PosQ[n]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(e^IntPart[q]*(d + e*x^mn)^FracPart[q])/(x^(mn*FracPart[q])*(1 + d/(x^mn*e))^FracPart[q]), Int[x^(mn*q)*(1 + d/(x^mn*e))^q*(a + c*x^n2)^p, x], x] /; FreeQ[{a, c, d, e, mn, p, q}, x] && EqQ[n2, -2*mn] && !IntegerQ[p] && !IntegerQ[q] && PosQ[n2]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn, Blank[]]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn2, Blank[]]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(x^(2*n*FracPart[p])*(a + b/x^n + c/x^(2*n))^FracPart[p])/(c + b*x^n + a*x^(2*n))^FracPart[p], Int[((d + e*x^n)^q*(c + b*x^n + a*x^(2*n))^p)/x^(2*n*p), x], x] /; FreeQ[{a, b, c, d, e, n, p, q}, x] && EqQ[mn, -n] && EqQ[mn2, 2*mn] && !IntegerQ[p] && !IntegerQ[q] && PosQ[n]
Int[Times[Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[mn2, Blank[]]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(x^(2*n*FracPart[p])*(a + c/x^(2*n))^FracPart[p])/(c + a*x^(2*n))^FracPart[p], Int[((d + e*x^n)^q*(c + a*x^(2*n))^p)/x^(2*n*p), x], x] /; FreeQ[{a, c, d, e, n, p, q}, x] && EqQ[mn2, -2*n] && !IntegerQ[p] && !IntegerQ[q] && PosQ[n]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[mn, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[((d + e*x^n)^q*(b + a*x^n + c*x^(2*n))^p)/x^(n*p), x] /; FreeQ[{a, b, c, d, e, n, q}, x] && EqQ[mn, -n] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[mn, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(x^(n*FracPart[p])*(a + b/x^n + c*x^n)^FracPart[p])/(b + a*x^n + c*x^(2*n))^FracPart[p], Int[((d + e*x^n)^q*(b + a*x^n + c*x^(2*n))^p)/x^(n*p), x], x] /; FreeQ[{a, b, c, d, e, n, p, q}, x] && EqQ[mn, -n] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^n + c*x^(2*n))^FracPart[p]/((4*c)^IntPart[p]*(b + 2*c*x^n)^(2*FracPart[p])), Int[(d + e*x^n)^q*(f + g*x^n)^r*(b + 2*c*x^n)^(2*p), x], x] /; FreeQ[{a, b, c, d, e, f, g, n, p, q, r}, x] && EqQ[n2, 2*n] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x^n)^(p + q)*(f + g*x^n)^r*(a/d + (c*x^n)/e)^p, x] /; FreeQ[{a, b, c, d, e, f, g, n, q, r}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d + e*x^n)^(p + q)*(f + g*x^n)^r*(a/d + (c*x^n)/e)^p, x] /; FreeQ[{a, c, d, e, f, g, n, q, r}, x] && EqQ[n2, 2*n] && EqQ[c*d^2 + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^n + c*x^(2*n))^FracPart[p]/((d + e*x^n)^FracPart[p]*(a/d + (c*x^n)/e)^FracPart[p]), Int[(d + e*x^n)^(p + q)*(f + g*x^n)^r*(a/d + (c*x^n)/e)^p, x], x] /; FreeQ[{a, b, c, d, e, f, g, n, p, q, r}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[f, Blank[]], Times[Optional[Pattern[g, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[r, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + c*x^(2*n))^FracPart[p]/((d + e*x^n)^FracPart[p]*(a/d + (c*x^n)/e)^FracPart[p]), Int[(d + e*x^n)^(p + q)*(f + g*x^n)^r*(a/d + (c*x^n)/e)^p, x], x] /; FreeQ[{a, c, d, e, f, g, n, p, q, r}, x] && EqQ[n2, 2*n] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Plus[Pattern[d1, Blank[]], Times[Optional[Pattern[e1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[d2, Blank[]], Times[Optional[Pattern[e2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(d1*d2 + e1*e2*x^n)^q*(a + b*x^n + c*x^(2*n))^p, x] /; FreeQ[{a, b, c, d1, e1, d2, e2, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[non2, n/2] && EqQ[d2*e1 + d1*e2, 0] && (IntegerQ[q] || (GtQ[d1, 0] && GtQ[d2, 0]))
Int[Times[Power[Plus[Pattern[d1, Blank[]], Times[Optional[Pattern[e1, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[d2, Blank[]], Times[Optional[Pattern[e2, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[non2, Blank[]]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Optional[Pattern[a, Blank[]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[((d1 + e1*x^(n/2))^FracPart[q]*(d2 + e2*x^(n/2))^FracPart[q])/(d1*d2 + e1*e2*x^n)^FracPart[q], Int[(d1*d2 + e1*e2*x^n)^q*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d1, e1, d2, e2, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[non2, n/2] && EqQ[d2*e1 + d1*e2, 0]
Int[Times[Plus[Pattern[A, Blank[]], Times[Optional[Pattern[B, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[A, Int[(d + e*x^n)^q*(a + b*x^n + c*x^(2*n))^p, x], x] + Dist[B, Int[x^m*(d + e*x^n)^q*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, e, A, B, m, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[m - n + 1, 0]
Int[Times[Plus[Pattern[A, Blank[]], Times[Optional[Pattern[B, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[A, Int[(d + e*x^n)^q*(a + c*x^(2*n))^p, x], x] + Dist[B, Int[x^m*(d + e*x^n)^q*(a + c*x^(2*n))^p, x], x] /; FreeQ[{a, c, d, e, A, B, m, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[m - n + 1, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[f^m/(n*e^((m + 1)/n - 1)), Subst[Int[(e*x)^(q + (m + 1)/n - 1)*(a + b*x + c*x^2)^p, x], x, x^n], x] /; FreeQ[{a, b, c, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && (IntegerQ[m] || GtQ[f, 0]) && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[f^m/(n*e^((m + 1)/n - 1)), Subst[Int[(e*x)^(q + (m + 1)/n - 1)*(a + c*x^2)^p, x], x, x^n], x] /; FreeQ[{a, c, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && (IntegerQ[m] || GtQ[f, 0]) && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(f^m*e^IntPart[q]*(e*x^n)^FracPart[q])/x^(n*FracPart[q]), Int[x^(m + n*q)*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && (IntegerQ[m] || GtQ[f, 0]) && !IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(f^m*e^IntPart[q]*(e*x^n)^FracPart[q])/x^(n*FracPart[q]), Int[x^(m + n*q)*(a + c*x^(2*n))^p, x], x] /; FreeQ[{a, c, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && (IntegerQ[m] || GtQ[f, 0]) && !IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Pattern[f, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(f^IntPart[m]*(f*x)^FracPart[m])/x^FracPart[m], Int[x^m*(e*x^n)^q*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && !IntegerQ[m]
Int[Times[Power[Times[Pattern[f, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(f^IntPart[m]*(f*x)^FracPart[m])/x^FracPart[m], Int[x^m*(e*x^n)^q*(a + c*x^(2*n))^p, x], x] /; FreeQ[{a, c, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && !IntegerQ[m]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[(d + e*x)^q*(a + b*x + c*x^2)^p, x], x, x^n], x] /; FreeQ[{a, b, c, d, e, m, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[Simplify[m - n + 1], 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[(d + e*x)^q*(a + c*x^2)^p, x], x, x^n], x] /; FreeQ[{a, c, d, e, m, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[Simplify[m - n + 1], 0]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m + n*(2*p + q))*(e + d/x^n)^q*(c + b/x^n + a/x^(2*n))^p, x] /; FreeQ[{a, b, c, d, e, m, n}, x] && EqQ[n2, 2*n] && IntegersQ[p, q] && NegQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[x^(m + n*(2*p + q))*(e + d/x^n)^q*(c + a/x^(2*n))^p, x] /; FreeQ[{a, c, d, e, m, n}, x] && EqQ[n2, 2*n] && IntegersQ[p, q] && NegQ[n]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[x^((m + 1)/n - 1)*(d + e*x)^q*(a + b*x + c*x^2)^p, x], x, x^n], x] /; FreeQ[{a, b, c, d, e, p, q}, x] && EqQ[n2, 2*n] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p] && IGtQ[m, 0] && IGtQ[n, 0] && IGtQ[(m + 1)/n, 0]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[p, Blank[]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^n + c*x^(2*n))^FracPart[p]/(c^IntPart[p]*(b/2 + c*x^n)^(2*FracPart[p])), Int[(f*x)^m*(d + e*x^n)^q*(b/2 + c*x^n)^(2*p), x], x] /; FreeQ[{a, b, c, d, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[b^2 - 4*a*c, 0] && !IntegerQ[p]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[x^(Simplify[(m + 1)/n] - 1)*(d + e*x)^q*(a + b*x + c*x^2)^p, x], x, x^n], x] /; FreeQ[{a, b, c, d, e, m, n, p, q}, x] && EqQ[n2, 2*n] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[1/n, Subst[Int[x^(Simplify[(m + 1)/n] - 1)*(d + e*x)^q*(a + c*x^2)^p, x], x, x^n], x] /; FreeQ[{a, c, d, e, m, n, p, q}, x] && EqQ[n2, 2*n] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Pattern[f, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(f^IntPart[m]*(f*x)^FracPart[m])/x^FracPart[m], Int[x^m*(d + e*x^n)^q*(a + b*x^n + c*x^(2*n))^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Pattern[f, Blank[]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Dist[(f^IntPart[m]*(f*x)^FracPart[m])/x^FracPart[m], Int[x^m*(d + e*x^n)^q*(a + c*x^(2*n))^p, x], x] /; FreeQ[{a, c, d, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && IntegerQ[Simplify[(m + 1)/n]]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(f*x)^m*(d + e*x^n)^(q + p)*(a/d + (c*x^n)/e)^p, x] /; FreeQ[{a, b, c, d, e, f, m, n, q}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[q, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Optional[Pattern[p, Blank[]]]]], Pattern[x, Blank[Symbol]]] := Int[(f*x)^m*(d + e*x^n)^(q + p)*(a/d + (c*x^n)/e)^p, x] /; FreeQ[{a, c, d, e, f, q, m, n, q}, x] && EqQ[n2, 2*n] && EqQ[c*d^2 + a*e^2, 0] && IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + b*x^n + c*x^(2*n))^FracPart[p]/((d + e*x^n)^FracPart[p]*(a/d + (c*x^n)/e)^FracPart[p]), Int[(f*x)^m*(d + e*x^n)^(q + p)*(a/d + (c*x^n)/e)^p, x], x] /; FreeQ[{a, b, c, d, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && NeQ[b^2 - 4*a*c, 0] && EqQ[c*d^2 - b*d*e + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Times[Optional[Pattern[f, Blank[]]], Pattern[x, Blank[]]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n2, Blank[]]]]], Pattern[p, Blank[]]]], Pattern[x, Blank[Symbol]]] := Dist[(a + c*x^(2*n))^FracPart[p]/((d + e*x^n)^FracPart[p]*(a/d + (c*x^n)/e)^FracPart[p]), Int[(f*x)^m*(d + e*x^n)^(q + p)*(a/d + (c*x^n)/e)^p, x], x] /; FreeQ[{a, c, d, e, f, m, n, p, q}, x] && EqQ[n2, 2*n] && EqQ[c*d^2 + a*e^2, 0] && !IntegerQ[p]
Int[Times[Power[Pattern[x, Blank[]], Optional[Pattern[m, Blank[]]]], Power[Plus[Pattern[a, Blank[]], Times[Optional[Pattern[c, Blank[]]], Power[Pattern[x, Blank[]], Optional[Pattern[n2, Blank[]]]]], Times[Optional[Pattern[b, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Optional[Pattern[p, Blank[]]]], Power[Plus[Pattern[d, Blank[]], Times[Optional[Pattern[e, Blank[]]], Power[Pattern[x, Blank[]], Pattern[n, Blank[]]]]], Pattern[q, Blank[]]]], Pattern[x, Blank[Symbol]]] := Simp[((-d)^((m - Mod[m, n])/n - 1)*(c*d^2 - b*d*e + a*e^2)^p*x^(Mod[m, n] + 1)*(d + e*x^n)^(q + 1))/(n*e^(2*p + (m - Mod[m, n])/n)*(q + 1)), x] + Dist[1/(n*e^(2*p + (m - Mod[m, n])/n)*(q + 1)), Int[x^Mod[m, n]*(d + e*x^n)^(q + 1)*ExpandToSum[Together[(1*(n*e^(2*p + (m - Mod[m, n])/n)*(q + 1)*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment