Rules for integrands of the form(((c x))^m)(((a (x^j)+b (x^n)))^p)

1:  ∫(x^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ m-n+1==0

Derivation: Integration by substitution

Basis: (x^(n-1))F[(x^n)]==(1/n) Subst[F[x],x,(x^n)] (∂_x)(x^n)

Rule: If  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ m-n+1==0, then

∫(x^m) (((a (x^j)+b (x^n)))^p)dx  ⟶  ∫(x^m) (((a ((((x^n)))^(j/n))+b (x^n)))^p)dx  ⟶  (1/n) Subst[∫(((a (x^(j/n))+b x))^p)dx,x,(x^n)]

Program code:

Int[x_^m_.*(a_.*x_^j_.+b_.*x_^n_)^p_,x_Symbol] :=
  1/n*Subst[Int[(a*x^Simplify[j/n]+b*x)^p,x],x,x^n] /;
FreeQ[{a,b,j,m,n,p},x] && Not[IntegerQ[p]] && NeQ[n,j] && IntegerQ[Simplify[j/n]] && EqQ[Simplify[m-n+1],0]

2:  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ m+n p+n-j+1==0 ∧ (j∈ℤ ∨ c>0)

Derivation: Generalized binomial recurrence 2a

Rule: If  p∉ℤ ∧ j≠n ∧ m+n p+n-j+1==0 ∧ (j∈ℤ ∨ c>0), then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  -(((c^(j-1)) (((c x))^(m-j+1)) (((a (x^j)+b (x^n)))^(p+1)))/(a (n-j) (p+1)))

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  -c^(j-1)*(c*x)^(m-j+1)*(a*x^j+b*x^n)^(p+1)/(a*(n-j)*(p+1)) /;
FreeQ[{a,b,c,j,m,n,p},x] && Not[IntegerQ[p]] && NeQ[n,j] && EqQ[m+n*p+n-j+1,0] && (IntegerQ[j] || GtQ[c,0])

3.  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ ((m+n p+n-j+1)/(n-j))∈(SuperMinus[ℤ])

1:  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ ((m+n p+n-j+1)/(n-j))∈(SuperMinus[ℤ])∧ p<-1 ∧ (j∈ℤ ∨ c>0)

Derivation: Generalized binomial recurrence 2b

Note: This rule increments ((m+n p+n-j+1)/(n-j)) by 1 thus driving it to 0.

Rule: If  p∉ℤ ∧ j≠n ∧ ((m+n p+n-j+1)/(n-j))∈(SuperMinus[ℤ])∧ p<-1 ∧ (j∈ℤ ∨ c>0), then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  -(((c^(j-1)) (((c x))^(m-j+1)) (((a (x^j)+b (x^n)))^(p+1)))/(a(n-j) (p+1)))+(((c^j) (m+n p+n-j+1))/(a(n-j) (p+1)))∫(((c x))^(m-j)) (((a (x^j)+b (x^n)))^(p+1))dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  -c^(j-1)*(c*x)^(m-j+1)*(a*x^j+b*x^n)^(p+1)/(a*(n-j)*(p+1)) + 
  c^j*(m+n*p+n-j+1)/(a*(n-j)*(p+1))*Int[(c*x)^(m-j)*(a*x^j+b*x^n)^(p+1),x] /;
FreeQ[{a,b,c,j,m,n},x] && Not[IntegerQ[p]] && NeQ[n,j] && ILtQ[Simplify[(m+n*p+n-j+1)/(n-j)],0] && LtQ[p,-1] && (IntegerQ[j] || GtQ[c,0])

2:  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ ((m+n p+n-j+1)/(n-j))∈(SuperMinus[ℤ])∧ m+j p+1≠0 ∧ ((j|n)∈ℤ ∨ c>0)

Derivation: Generalized binomial recurrence 3b

Note: This rule increments ((m+n p+n-j+1)/(n-j)) by 1 thus driving it to 0.

Rule: If  p∉ℤ ∧ j≠n ∧ ((m+n p+n-j+1)/(n-j))∈(SuperMinus[ℤ])∧ m+j p+1≠0 ∧ ((j|n)∈ℤ ∨ c>0), then

∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  ⟶  (((c^(j-1)) (((c x))^(m-j+1)) (((a (x^j)+b (x^n)))^(p+1)))/(a (m+j p+1)))-((b(m+n p+n-j+1))/(a (c^(n-j)) (m+j p+1)))∫(((c x))^(m+n-j)) (((a (x^j)+b (x^n)))^p)dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  c^(j-1)*(c*x)^(m-j+1)*(a*x^j+b*x^n)^(p+1)/(a*(m+j*p+1)) - 
  b*(m+n*p+n-j+1)/(a*c^(n-j)*(m+j*p+1))*Int[(c*x)^(m+n-j)*(a*x^j+b*x^n)^p,x] /;
FreeQ[{a,b,c,j,m,n,p},x] && Not[IntegerQ[p]] && NeQ[n,j] && ILtQ[Simplify[(m+n*p+n-j+1)/(n-j)],0] && NeQ[m+j*p+1,0] && (IntegersQ[j,n] || GtQ[c,0])

3:  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ ((m+n p+n-j+1)/(n-j))∈(SuperMinus[ℤ])∧ c≯0

Derivation: Piecewise constant extraction

Basis: (∂_x)((((c x))^m)/(x^m))==0

Basis: ((((c x))^m)/(x^m))==(((c^(IntPart[m]))(((c x))^(FracPart[m])))/(x^(FracPart[m])))

Rule: If  p∉ℤ ∧ j≠n ∧ ((m+n p+n-j+1)/(n-j))∈(SuperMinus[ℤ])∧ c≯0, then

∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  ⟶  (((c^(IntPart[m]))(((c x))^(FracPart[m])))/(x^(FracPart[m])))∫(x^m) (((a (x^j)+b (x^n)))^p)dx

Program code:

Int[(c_*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  c^IntPart[m]*(c*x)^FracPart[m]/x^FracPart[m]*Int[x^m*(a*x^j+b*x^n)^p,x] /;
FreeQ[{a,b,c,j,m,n,p},x] && Not[IntegerQ[p]] && NeQ[n,j] && ILtQ[Simplify[(m+n*p+n-j+1)/(n-j)],0]

4.  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ ((m+1)/n)∈ℤ ∧ (n^2)≠1

1:  ∫(x^m) (((a (x^j)+b (x^n)))^p)dx  when p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ ((m+1)/n)∈ℤ ∧ (n^2)≠1

Derivation: Integration by substitution

Basis: If ((m+1)/n)∈ℤ, then (x^m)F[(x^n)]==(1/n) Subst[(x^(((m+1)/n)-1)) F[x],x,(x^n)] (∂_x)(x^n)

Note: If  n∈ℤ ∧ ((m+1)/n)∈ℤ, then m∈ℤ, and (((c x))^m) automatically evaluates to (c^m)(x^m).

Rule: If  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ ((m+1)/n)∈ℤ ∧ (n^2)≠1, then

∫(x^m) (((a (x^j)+b (x^n)))^p)dx  ⟶  (1/n) Subst[∫(x^(((m+1)/n)-1))(((a (x^(j/n))+b x))^p)dx,x,(x^n)]

Program code:

Int[x_^m_.*(a_.*x_^j_.+b_.*x_^n_)^p_,x_Symbol] :=
  1/n*Subst[Int[x^(Simplify[(m+1)/n]-1)*(a*x^Simplify[j/n]+b*x)^p,x],x,x^n] /;
FreeQ[{a,b,j,m,n,p},x] && Not[IntegerQ[p]] && NeQ[n,j] && IntegerQ[Simplify[j/n]] && IntegerQ[Simplify[(m+1)/n]] && NeQ[n^2,1]

2:  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ ((m+1)/n)∈ℤ ∧ (n^2)≠1

Derivation: Piecewise constant extraction

Basis: (∂_x)((((c x))^m)/(x^m))==0

Basis: ((((c x))^m)/(x^m))==(((c^(IntPart[m]))(((c x))^(FracPart[m])))/(x^(FracPart[m])))

Rule: If  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ ((m+1)/n)∈ℤ ∧ (n^2)≠1, then

∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  ⟶  (((c^(IntPart[m]))(((c x))^(FracPart[m])))/(x^(FracPart[m])))∫(x^m) (((a (x^j)+b (x^n)))^p)dx

Program code:

Int[(c_*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_)^p_,x_Symbol] :=
  c^IntPart[m]*(c*x)^FracPart[m]/x^FracPart[m]*Int[x^m*(a*x^j+b*x^n)^p,x] /;
FreeQ[{a,b,c,j,m,n,p},x] && Not[IntegerQ[p]] && NeQ[n,j] && IntegerQ[Simplify[j/n]] && IntegerQ[Simplify[(m+1)/n]] && NeQ[n^2,1]

5.  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0)

1.  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p>0

1:  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p>0 ∧ m+j p+1<0

Derivation: Generalized binomial recurrence 1a

Rule: If  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p>0 ∧ m+j p+1<0, then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  (((((c x))^(m+1)) (((a (x^j)+b (x^n)))^p))/(c (m+j p+1)))-((b p (n-j))/((c^n) (m+j p+1)))∫(((c x))^(m+n)) (((a (x^j)+b (x^n)))^(p-1))dx

Program code:

Int[(c_.*x_)^m_*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  (c*x)^(m+1)*(a*x^j+b*x^n)^p/(c*(m+j*p+1)) - 
  b*p*(n-j)/(c^n*(m+j*p+1))*Int[(c*x)^(m+n)*(a*x^j+b*x^n)^(p-1),x] /;
FreeQ[{a,b,c},x] && Not[IntegerQ[p]] && LtQ[0,j,n] && (IntegersQ[j,n] || GtQ[c,0]) && GtQ[p,0] && LtQ[m+j*p+1,0]

2:  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p>0 ∧ m+n p+1≠0

Derivation: Generalized binomial recurrence 1b

Rule: If  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p>0 ∧ m+n p+1≠0, then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  (((((c x))^(m+1)) (((a (x^j)+b (x^n)))^p))/(c (m+n p+1)))+((a p (n-j))/((c^j) (m+n p+1)))∫(((c x))^(m+j)) (((a (x^j)+b (x^n)))^(p-1))dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  (c*x)^(m+1)*(a*x^j+b*x^n)^p/(c*(m+n*p+1)) + 
  a*(n-j)*p/(c^j*(m+n*p+1))*Int[(c*x)^(m+j)*(a*x^j+b*x^n)^(p-1),x] /;
FreeQ[{a,b,c,m},x] && Not[IntegerQ[p]] && LtQ[0,j,n] && (IntegersQ[j,n] || GtQ[c,0]) && GtQ[p,0] && NeQ[m+n*p+1,0]

2.  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p<-1

1:  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p<-1 ∧ m+j p+1>n-j

Derivation: Generalized binomial recurrence 2a

Note: If ((m+n p+n-j+1)/(n-j))∈(SuperMinus[ℤ]) following rule is used to drive m+n p+n-j+1 to zero instead.

Rule: If  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p<-1 ∧ m+j p+1>n-j, then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  (((c^(n-1)) (((c x))^(m-n+1)) (((a (x^j)+b (x^n)))^(p+1)))/(b (n-j) (p+1)))-(((c^n) (m+j p-n+j+1))/(b (n-j) (p+1)))∫(((c x))^(m-n)) (((a (x^j)+b (x^n)))^(p+1))dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  c^(n-1)*(c*x)^(m-n+1)*(a*x^j+b*x^n)^(p+1)/(b*(n-j)*(p+1)) - 
  c^n*(m+j*p-n+j+1)/(b*(n-j)*(p+1))*Int[(c*x)^(m-n)*(a*x^j+b*x^n)^(p+1),x] /;
FreeQ[{a,b,c},x] && Not[IntegerQ[p]] && LtQ[0,j,n] && (IntegersQ[j,n] || GtQ[c,0]) && LtQ[p,-1] && GtQ[m+j*p+1,n-j]

2:  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p<-1

Derivation: Generalized binomial recurrence 2b

Rule: If  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ p<-1, then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  -(((c^(j-1)) (((c x))^(m-j+1)) (((a (x^j)+b (x^n)))^(p+1)))/(a(n-j) (p+1)))+(((c^j) (m+n p+n-j+1))/(a(n-j) (p+1)))∫(((c x))^(m-j)) (((a (x^j)+b (x^n)))^(p+1))dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  -c^(j-1)*(c*x)^(m-j+1)*(a*x^j+b*x^n)^(p+1)/(a*(n-j)*(p+1)) + 
  c^j*(m+n*p+n-j+1)/(a*(n-j)*(p+1))*Int[(c*x)^(m-j)*(a*x^j+b*x^n)^(p+1),x] /;
FreeQ[{a,b,c,m},x] && Not[IntegerQ[p]] && LtQ[0,j,n] && (IntegersQ[j,n] || GtQ[c,0]) && LtQ[p,-1]

3:  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ m+j p+1>n-j ∧ m+n p+1≠0

Derivation: Generalized binomial recurrence 3a

Rule: If  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ m+j p+1>n-j ∧ m+n p+1≠0, then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  (((c^(n-1)) (((c x))^(m-n+1)) (((a (x^j)+b (x^n)))^(p+1)))/(b (m+n p+1)))-((a (c^(n-j)) (m+j p-n+j+1))/(b (m+n p+1)))∫(((c x))^(m-(n-j))) (((a (x^j)+b (x^n)))^p)dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  c^(n-1)*(c*x)^(m-n+1)*(a*x^j+b*x^n)^(p+1)/(b*(m+n*p+1)) - 
  a*c^(n-j)*(m+j*p-n+j+1)/(b*(m+n*p+1))*Int[(c*x)^(m-(n-j))*(a*x^j+b*x^n)^p,x] /;
FreeQ[{a,b,c,m,p},x] && Not[IntegerQ[p]] && LtQ[0,j,n] && (IntegersQ[j,n] || GtQ[c,0]) && GtQ[m+j*p+1-n+j,0] && NeQ[m+n*p+1,0]

4:  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ m+j p+1<0

Derivation: Generalized binomial recurrence 3b

Rule: If  p∉ℤ ∧ 0<j<n ∧ ((j|n)∈ℤ ∨ c>0) ∧ m+j p+1<0, then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  (((c^(j-1)) (((c x))^(m-j+1)) (((a (x^j)+b (x^n)))^(p+1)))/(a (m+j p+1)))-((b (m+n p+n-j+1))/(a (c^(n-j))(m+j p+1)))∫(((c x))^(m+n-j)) (((a (x^j)+b (x^n)))^p)dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  c^(j-1)*(c*x)^(m-j+1)*(a*x^j+b*x^n)^(p+1)/(a*(m+j*p+1)) - 
  b*(m+n*p+n-j+1)/(a*c^(n-j)*(m+j*p+1))*Int[(c*x)^(m+n-j)*(a*x^j+b*x^n)^p,x] /;
FreeQ[{a,b,c,m,p},x] && Not[IntegerQ[p]] && LtQ[0,j,n] && (IntegersQ[j,n] || GtQ[c,0]) && LtQ[m+j*p+1,0]

6.  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ m+1≠0 ∧ (n/(m+1))∈ℤ

1:  ∫(x^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ m+1≠0 ∧ (n/(m+1))∈ℤ

Derivation: Integration by substitution

Basis: If (n/(m+1))∈ℤ, then (x^m)F[(x^n)]==(1/(m+1))Subst[F[(x^(n/(m+1)))],x,(x^(m+1))](∂_x)(x^(m+1))

Rule: If p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ m+1≠0 ∧ (n/(m+1))∈ℤ, then

∫(x^m) (((a (x^j)+b (x^n)))^p)dx  ⟶  (1/(m+1))Subst[∫(((a (x^(j/(m+1)))+b (x^(n/(m+1)))))^p)dx,x,(x^(m+1))]

Program code:

Int[x_^m_.*(a_.*x_^j_.+b_.*x_^n_)^p_,x_Symbol] :=
  1/(m+1)*Subst[Int[(a*x^Simplify[j/(m+1)]+b*x^Simplify[n/(m+1)])^p,x],x,x^(m+1)] /;
FreeQ[{a,b,j,m,n,p},x] && Not[IntegerQ[p]] && NeQ[n,j] && IntegerQ[Simplify[j/n]] && NeQ[m,-1] && IntegerQ[Simplify[n/(m+1)]] && Not[IntegerQ[n]]

2:  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ m+1≠0 ∧ (n/(m+1))∈ℤ

Derivation: Piecewise constant extraction

Basis: (∂_x)((((c x))^m)/(x^m))==0

Basis: ((((c x))^m)/(x^m))==(((c^(IntPart[m]))(((c x))^(FracPart[m])))/(x^(FracPart[m])))

Rule: If  p∉ℤ ∧ j≠n ∧ (j/n)∈ℤ ∧ m+1≠0 ∧ (n/(m+1))∈ℤ, then

∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  ⟶  (((c^(IntPart[m]))(((c x))^(FracPart[m])))/(x^(FracPart[m])))∫(x^m) (((a (x^j)+b (x^n)))^p)dx

Program code:

Int[(c_*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_)^p_,x_Symbol] :=
  c^IntPart[m]*(c*x)^FracPart[m]/x^FracPart[m]*Int[x^m*(a*x^j+b*x^n)^p,x] /;
FreeQ[{a,b,c,j,m,n,p},x] && Not[IntegerQ[p]] && NeQ[n,j] && IntegerQ[Simplify[j/n]] && NeQ[m,-1] && IntegerQ[Simplify[n/(m+1)]] && Not[IntegerQ[n]]

7.  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p+(1/2)∈ℤ ∧ j≠n ∧ m+j p+1==0

1.  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p+(1/2)∈ℤ ∧ j≠n ∧ m+j p+1==0 ∧ (j∈ℤ ∨ c>0)

1:  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when  p+(1/2)∈(SuperPlus[ℤ])∧ j≠n ∧ m+j p+1==0 ∧ (j∈ℤ ∨ c>0)

Derivation: Generalized binomial recurrence 1b

Rule: If  p+(1/2)∈(SuperPlus[ℤ])∧ j≠n ∧ m+j p+1==0 ∧ (j∈ℤ ∨ c>0), then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  (((((c x))^(m+1)) (((a (x^j)+b (x^n)))^p))/(c p (n-j)))+(a/(c^j))∫(((c x))^(m+j)) (((a (x^j)+b (x^n)))^(p-1))dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  (c*x)^(m+1)*(a*x^j+b*x^n)^p/(c*p*(n-j)) + a/c^j*Int[(c*x)^(m+j)*(a*x^j+b*x^n)^(p-1),x] /;
FreeQ[{a,b,c,j,m,n},x] && IGtQ[p+1/2,0] && NeQ[n,j] && EqQ[Simplify[m+j*p+1],0] && (IntegerQ[j] || GtQ[c,0])

2.  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p-(1/2)∈(SuperMinus[ℤ]) ∧ j≠n ∧ m+j p+1==0 ∧ (j∈ℤ ∨ c>0)

1:  ∫((x^m)/(Sqrt[a (x^j)+b (x^n)]))dx  when m==(j/2)-1 ∧ j≠n

Derivation: Integration by substitution

Basis: ((x^(j/2-1))/(Sqrt[a (x^j)+b (x^n)]))==-(2/((n-j))) Subst[(1/(1-a (x^2))),x,((x^(j/2))/(Sqrt[a (x^j)+b (x^n)]))] (∂_x)((x^(j/2))/(Sqrt[a (x^j)+b (x^n)]))

Rule: If  m==(j/2)-1 ∧ j≠n, then

∫((x^m)/(Sqrt[a (x^j)+b (x^n)]))dx  ⟶  -(2/((n-j))) Subst[∫(1/(1-a (x^2)))dx,x,((x^(j/2))/(Sqrt[a (x^j)+b (x^n)]))]

Program code:

Int[x_^m_./Sqrt[a_.*x_^j_.+b_.*x_^n_.],x_Symbol] :=
  -2/(n-j)*Subst[Int[1/(1-a*x^2),x],x,x^(j/2)/Sqrt[a*x^j+b*x^n]] /;
FreeQ[{a,b,j,n},x] && EqQ[m,j/2-1] && NeQ[n,j]

2:  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when  p+(1/2)∈(SuperMinus[ℤ])∧ j≠n ∧ m+j p+1==0 ∧ (j∈ℤ ∨ c>0)

Derivation: Generalized binomial recurrence 2b

Rule: If  p+(1/2)∈(SuperMinus[ℤ])∧ j≠n ∧ m+j p+1==0 ∧ (j∈ℤ ∨ c>0), then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  -(((c^(j-1)) (((c x))^(m-j+1)) (((a (x^j)+b (x^n)))^(p+1)))/(a(n-j) (p+1)))+(((c^j) (m+n p+n-j+1))/(a(n-j) (p+1)))∫(((c x))^(m-j)) (((a (x^j)+b (x^n)))^(p+1))dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  -c^(j-1)*(c*x)^(m-j+1)*(a*x^j+b*x^n)^(p+1)/(a*(n-j)*(p+1)) + 
  c^j*(m+n*p+n-j+1)/(a*(n-j)*(p+1))*Int[(c*x)^(m-j)*(a*x^j+b*x^n)^(p+1),x] /;
FreeQ[{a,b,c,j,m,n},x] && ILtQ[p+1/2,0] && NeQ[n,j] && EqQ[Simplify[m+j*p+1],0] && (IntegerQ[j] || GtQ[c,0])

2:  ∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  when  p+(1/2)∈ℤ ∧ j≠n ∧ m+j p+1==0 ∧ ¬(j∈ℤ ∨ c>0)

Derivation: Piecewise constant extraction

Basis: (∂_x)((((c x))^m)/(x^m))==0

Basis: ((((c x))^m)/(x^m))==(((c^(IntPart[m]))(((c x))^(FracPart[m])))/(x^(FracPart[m])))

Rule: If  p+(1/2)∈ℤ ∧ j≠n ∧ m+j p+1==0, then

∫(((c x))^m) (((a (x^j)+b (x^n)))^p)dx  ⟶  (((c^(IntPart[m]))(((c x))^(FracPart[m])))/(x^(FracPart[m])))∫(x^m) (((a (x^j)+b (x^n)))^p)dx

Program code:

Int[(c_*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_)^p_,x_Symbol] :=
  c^IntPart[m]*(c*x)^FracPart[m]/x^FracPart[m]*Int[x^m*(a*x^j+b*x^n)^p,x] /;
FreeQ[{a,b,c,j,m,n,p},x] && IntegerQ[p+1/2] && NeQ[n,j] && EqQ[Simplify[m+j*p+1],0]

x.  ∫(x^m)(((a (x^j)+b (x^n)))^p)dx  when j≠n

1:  ∫(x^m)(((a (x^j)+b (x^n)))^p)dx  when  j≠n ∧ m+j p+1==0

Note: Although this antiderivative appears simpler than that produced using piecewise constant extraction, Mathematica 8 has a hard time differentiating it back to (x^m)(((a (x^j)+b (x^n)))^p).

Rule: If  j≠n ∧ m+j p+1==0, then

∫(x^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  ((((a (x^j)+b (x^n)))^(p+1))/(b p (n-j)(x^(n+j p))))Hypergeometric2F1[1,1,1-p,-(a/(b (x^(n-j))))]

Program code:

(* Int[x_^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  (a*x^j+b*x^n)^(p+1)/(b*p*(n-j)*x^(n+j*p))*Hypergeometric2F1[1,1,1-p,-a/(b*x^(n-j))] /;
FreeQ[{a,b,j,m,n,p},x] && NeQ[n,j] && EqQ[m+j*p+1,0] *)

2:  ∫(x^m)(((a (x^j)+b (x^n)))^p)dx  when  j≠n ∧ m+n+(p-1) j+1==0

Note: Although this antiderivative appears simpler than that produced using piecewise constant extraction, Mathematica 8 has a hard time differentiating it back to (x^m)(((a (x^j)+b (x^n)))^p).

Rule: If  j≠n ∧ m+n+(p-1) j+1==0, then

∫(x^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  ((((a (x^j)+b (x^n)))^(p+1))/(b (p-1) (n-j)(x^(2 n+j(p-1)))))Hypergeometric2F1[1,2,2-p,-(a/(b (x^(n-j))))]

Program code:

(* Int[x_^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  (a*x^j+b*x^n)^(p+1)/(b*(p-1)*(n-j)*x^(2*n+j*(p-1)))*Hypergeometric2F1[1,2,2-p,-a/(b*x^(n-j))] /;
FreeQ[{a,b,j,m,n,p},x] && NeQ[n,j] && EqQ[m+n+(p-1)*j+1,0] *)

3:  ∫(x^m)(((a (x^j)+b (x^n)))^p)dx  when  j≠n ∧ m+j p+1≠0 ∧ m+n+(p-1) j+1≠0

Note: Although this antiderivative appears simpler than that produced using piecewise constant extraction, Mathematica 8 has a hard time differentiating it back to (x^m)(((a (x^j)+b (x^n)))^p).

Rule: If  j≠n ∧ m+j p+1≠0 ∧ m+n+(p-1) j+1≠0, then

∫(x^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  (((x^(m-j+1)) (((a (x^j)+b (x^n)))^(p+1)))/(a (m+j p+1)))Hypergeometric2F1[1,((m+n p+1)/(n-j))+1,((m+j p+1)/(n-j))+1,-((b (x^(n-j)))/a)]

Program code:

(* Int[x_^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  (x^(m-j+1)*(a*x^j+b*x^n)^(p+1))/(a*(m+j*p+1))*Hypergeometric2F1[1,(m+n*p+1)/(n-j)+1,(m+j*p+1)/(n-j)+1,-b*x^(n-j)/a] /;
FreeQ[{a,b,j,m,n,p},x] && NeQ[n,j] && NeQ[m+j*p+1,0] && NeQ[m+n+(p-1)*j+1,0] *)

8:  ∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  when  p∉ℤ ∧ j≠n

Derivation: Piecewise constant extraction

Basis:  (∂_x)(((((c x))^m) (((a (x^j)+b (x^n)))^p))/((x^(m+j p)) (((a+b (x^(n-j))))^p)))==0

Basis: ((((c x))^m)/(x^m))==(((c^(IntPart[m]))(((c x))^(FracPart[m])))/(x^(FracPart[m])))

Basis:  ((((a (x^j)+b (x^n)))^p)/((x^(j p)) (((a+b (x^(n-j))))^p)))==((((a (x^j)+b (x^n)))^(FracPart[p]))/((x^(j FracPart[p]))(((a+b (x^(n-j))))^(FracPart[p]))))

Rule: If  p∉ℤ ∧ j≠n, then

∫(((c x))^m)(((a (x^j)+b (x^n)))^p)dx  ⟶  (((((c x))^m) (((a (x^j)+b (x^n)))^p))/((x^(m+j p))(((a+b (x^(n-j))))^p)))∫(x^(m+j p))(((a+b (x^(n-j))))^p)dx  
⟶  (((c^(IntPart[m]))(((c x))^(FracPart[m])) (((a (x^j)+b (x^n)))^(FracPart[p])))/((x^(FracPart[m]+j FracPart[p]))(((a+b (x^(n-j))))^(FracPart[p]))))∫(x^(m+j p))(((a+b (x^(n-j))))^p)dx

Program code:

Int[(c_.*x_)^m_.*(a_.*x_^j_.+b_.*x_^n_.)^p_,x_Symbol] :=
  c^IntPart[m]*(c*x)^FracPart[m]*(a*x^j+b*x^n)^FracPart[p]/
    (x^(FracPart[m]+j*FracPart[p])*(a+b*x^(n-j))^FracPart[p])*
    Int[x^(m+j*p)*(a+b*x^(n-j))^p,x] /;
FreeQ[{a,b,c,j,m,n,p},x] && Not[IntegerQ[p]] && NeQ[n,j] && PosQ[n-j]

S:  ∫(u^m)(((a (v^j)+b (v^n)))^p)dx  when  v==c+d x ∧ u==e v

Derivation: Integration by substitution and piecewise constant extraction

Basis: If  u==e v, then (∂_x)((u^m)/(v^m))==0

Rule: If  v==c+d x ∧ u==e v, then

∫(u^m)(((a (v^j)+b (v^n)))^p)dx  ⟶  ((u^m)/(d (v^m)))Subst[∫(x^m)(((a (x^j)+b (x^n)))^p)dx,x,v]

Program code:

Int[u_^m_.*(a_.*v_^j_.+b_.*v_^n_.)^p_.,x_Symbol] :=
  u^m/(Coefficient[v,x,1]*v^m)*Subst[Int[x^m*(a*x^j+b*x^n)^p,x],x,v] /;
FreeQ[{a,b,j,m,n,p},x] && LinearPairQ[u,v,x]