Rules for normalizing to known sine integrands

1.  ∫u(((c Trig[a+b x]))^m)(((d Trig[a+b x]))^n)dx  when  KnownSineIntegrandQ[u,x]

1.  ∫u(((c Tan[a+b x]))^m)(((d Trig[a+b x]))^n)dx  when  KnownSineIntegrandQ[u,x]

1:  ∫u(((c Tan[a+b x]))^m)(((d Sin[a+b x]))^n)dx  when  KnownSineIntegrandQ[u,x] ∧ m∉ℤ

Derivation: Piecewise constant extraction

Basis: (∂_x)(((((c Tan[a+b x]))^m)(((d Cos[a+b x]))^m))/(((d Sin[a+b x]))^m))==0

Rule: If  KnownSineIntegrandQ[u,x] ∧ m∉ℤ, then

∫u(((c Tan[a+b x]))^m)(((d Sin[a+b x]))^n)dx  ⟶  (((((c Tan[a+b x]))^m)(((d Cos[a+b x]))^m))/(((d Sin[a+b x]))^m))∫((u(((d Sin[a+b x]))^(m+n)))/(((d Cos[a+b x]))^m))dx

Program code:

Int[u_*(c_.*tan[a_.+b_.*x_])^m_.*(d_.*sin[a_.+b_.*x_])^n_.,x_Symbol] :=
  (c*Tan[a+b*x])^m*(d*Cos[a+b*x])^m/(d*Sin[a+b*x])^m*Int[ActivateTrig[u]*(d*Sin[a+b*x])^(m+n)/(d*Cos[a+b*x])^m,x] /;
FreeQ[{a,b,c,d,m,n},x] && KnownSineIntegrandQ[u,x] && Not[IntegerQ[m]]

2:  ∫u(((c Tan[a+b x]))^m)(((d Cos[a+b x]))^n)dx  when  KnownSineIntegrandQ[u,x] ∧ m∉ℤ

Derivation: Piecewise constant extraction

Basis: (∂_x)(((((c Tan[a+b x]))^m)(((d Cos[a+b x]))^m))/(((d Sin[a+b x]))^m))==0

Rule: If  KnownSineIntegrandQ[u,x] ∧ m∉ℤ, then

∫u(((c Tan[a+b x]))^m)(((d Cos[a+b x]))^n)dx  ⟶  (((((c Tan[a+b x]))^m)(((d Cos[a+b x]))^m))/(((d Sin[a+b x]))^m))∫((u(((d Sin[a+b x]))^m))/(((d Cos[a+b x]))^(m-n)))dx

Program code:

Int[u_*(c_.*tan[a_.+b_.*x_])^m_.*(d_.*cos[a_.+b_.*x_])^n_.,x_Symbol] :=
  (c*Tan[a+b*x])^m*(d*Cos[a+b*x])^m/(d*Sin[a+b*x])^m*Int[ActivateTrig[u]*(d*Sin[a+b*x])^m/(d*Cos[a+b*x])^(m-n),x] /;
FreeQ[{a,b,c,d,m,n},x] && KnownSineIntegrandQ[u,x] && Not[IntegerQ[m]]

2.  ∫u(((c Cot[a+b x]))^m)(((d Trig[a+b x]))^n)dx  when  KnownSineIntegrandQ[u,x]

1:  ∫u(((c Cot[a+b x]))^m)(((d Sin[a+b x]))^n)dx  when  KnownSineIntegrandQ[u,x] ∧ m∉ℤ

Derivation: Piecewise constant extraction

Basis: (∂_x)(((((c Cot[a+b x]))^m)(((d Sin[a+b x]))^m))/(((d Cos[a+b x]))^m))==0

Rule: If  KnownSineIntegrandQ[u,x] ∧ m∉ℤ, then

∫u(((c Cot[a+b x]))^m)(((d Sin[a+b x]))^n)dx  ⟶  (((((c Cot[a+b x]))^m)(((d Sin[a+b x]))^m))/(((d Cos[a+b x]))^m))∫((u(((d Cos[a+b x]))^m))/(((d Sin[a+b x]))^(m-n)))dx

Program code:

Int[u_*(c_.*cot[a_.+b_.*x_])^m_.*(d_.*sin[a_.+b_.*x_])^n_.,x_Symbol] :=
  (c*Cot[a+b*x])^m*(d*Sin[a+b*x])^m/(d*Cos[a+b*x])^m*Int[ActivateTrig[u]*(d*Cos[a+b*x])^m/(d*Sin[a+b*x])^(m-n),x] /;
FreeQ[{a,b,c,d,m,n},x] && KnownSineIntegrandQ[u,x] && Not[IntegerQ[m]]

2:  ∫u(((c Cot[a+b x]))^m)(((d Cos[a+b x]))^n)dx  when  KnownSineIntegrandQ[u,x] ∧ m∉ℤ

Derivation: Piecewise constant extraction

Basis: (∂_x)(((((c Cot[a+b x]))^m)(((d Sin[a+b x]))^m))/(((d Cos[a+b x]))^m))==0

Rule: If  KnownSineIntegrandQ[u,x] ∧ m∉ℤ, then

∫u(((c Cot[a+b x]))^m)(((d Cos[a+b x]))^n)dx  ⟶  (((((c Cot[a+b x]))^m)(((d Sin[a+b x]))^m))/(((d Cos[a+b x]))^m))∫((u(((d Cos[a+b x]))^(m+n)))/(((d Sin[a+b x]))^m))dx

Program code:

Int[u_*(c_.*cot[a_.+b_.*x_])^m_.*(d_.*cos[a_.+b_.*x_])^n_.,x_Symbol] :=
  (c*Cot[a+b*x])^m*(d*Sin[a+b*x])^m/(d*Cos[a+b*x])^m*Int[ActivateTrig[u]*(d*Cos[a+b*x])^(m+n)/(d*Sin[a+b*x])^m,x] /;
FreeQ[{a,b,c,d,m,n},x] && KnownSineIntegrandQ[u,x] && Not[IntegerQ[m]]

3:  ∫u(((c Sec[a+b x]))^m)(((d Cos[a+b x]))^n)dx  when  KnownSineIntegrandQ[u,x]

Derivation: Piecewise constant extraction

Basis: (∂_x)((((c Sec[a+b x]))^m) (((d Cos[a+b x]))^m))==0

Rule: If  KnownSineIntegrandQ[u,x], then

∫u(((c Sec[a+b x]))^m)(((d Cos[a+b x]))^n)dx  ⟶  (((c Sec[a+b x]))^m) (((d Cos[a+b x]))^m)∫u(((d Cos[a+b x]))^(n-m))dx

Program code:

Int[u_*(c_.*sec[a_.+b_.*x_])^m_.*(d_.*cos[a_.+b_.*x_])^n_.,x_Symbol] :=
  (c*Sec[a+b*x])^m*(d*Cos[a+b*x])^m*Int[ActivateTrig[u]*(d*Cos[a+b*x])^(n-m),x] /;
FreeQ[{a,b,c,d,m,n},x] && KnownSineIntegrandQ[u,x]

4:  ∫u(((c Csc[a+b x]))^m)(((d Sin[a+b x]))^n)dx  when  KnownSineIntegrandQ[u,x]

Derivation: Piecewise constant extraction

Basis: (∂_x)((((c Csc[a+b x]))^m) (((d Sin[a+b x]))^m))==0

Rule: If  KnownSineIntegrandQ[u,x], then

∫u(((c Csc[a+b x]))^m)(((d Sin[a+b x]))^n)dx  ⟶  (((c Csc[a+b x]))^m) (((d Sin[a+b x]))^m)∫u(((d Sin[a+b x]))^(n-m))dx

Program code:

Int[u_*(c_.*sec[a_.+b_.*x_])^m_.*(d_.*cos[a_.+b_.*x_])^n_.,x_Symbol] :=
  (c*Csc[a+b*x])^m*(d*Sin[a+b*x])^m*Int[ActivateTrig[u]*(d*Sin[a+b*x])^(n-m),x] /;
FreeQ[{a,b,c,d,m,n},x] && KnownSineIntegrandQ[u,x]

2.  ∫u(((c Trig[a+b x]))^m)dx  when  m∉ℤ ∧KnownSineIntegrandQ[u,x]

1:  ∫u(((c Tan[a+b x]))^m)dx  when  m∉ℤ ∧KnownSineIntegrandQ[u,x]

Derivation: Piecewise constant extraction

Basis: (∂_x)(((((c Tan[a+b x]))^m)(((c Cos[a+b x]))^m))/(((c Sin[a+b x]))^m))==0

Rule: If  m∉ℤ ∧KnownSineIntegrandQ[u,x], then

∫u(((c Tan[a+b x]))^m)dx  ⟶  (((((c Tan[a+b x]))^m)(((c Cos[a+b x]))^m))/(((c Sin[a+b x]))^m))∫((u(((c Sin[a+b x]))^m))/(((c Cos[a+b x]))^m))dx

Program code:

Int[u_*(c_.*tan[a_.+b_.*x_])^m_.,x_Symbol] :=
  (c*Tan[a+b*x])^m*(c*Cos[a+b*x])^m/(c*Sin[a+b*x])^m*Int[ActivateTrig[u]*(c*Sin[a+b*x])^m/(c*Cos[a+b*x])^m,x] /;
FreeQ[{a,b,c,m},x] && Not[IntegerQ[m]] && KnownSineIntegrandQ[u,x]

2:  ∫u(((c Cot[a+b x]))^m)dx  when  m∉ℤ ∧KnownSineIntegrandQ[u,x]

Derivation: Piecewise constant extraction

Basis: (∂_x)(((((c Cot[a+b x]))^m)(((c Sin[a+b x]))^m))/(((c Cos[a+b x]))^m))==0

Rule: If  m∉ℤ ∧KnownSineIntegrandQ[u,x], then

∫u(((c Cot[a+b x]))^m)dx  ⟶  (((((c Cot[a+b x]))^m)(((c Sin[a+b x]))^m))/(((c Cos[a+b x]))^m))∫((u(((c Cos[a+b x]))^m))/(((c Sin[a+b x]))^m))dx

Program code:

Int[u_*(c_.*cot[a_.+b_.*x_])^m_.,x_Symbol] :=
  (c*Cot[a+b*x])^m*(c*Sin[a+b*x])^m/(c*Cos[a+b*x])^m*Int[ActivateTrig[u]*(c*Cos[a+b*x])^m/(c*Sin[a+b*x])^m,x] /;
FreeQ[{a,b,c,m},x] && Not[IntegerQ[m]] && KnownSineIntegrandQ[u,x]

3:  ∫u(((c Sec[a+b x]))^m)dx  when  m∉ℤ ∧KnownSineIntegrandQ[u,x]

Derivation: Piecewise constant extraction

Basis: (∂_x)((((c Sec[a+b x]))^m) (((c Cos[a+b x]))^m))==0

Rule: If  m∉ℤ ∧KnownSineIntegrandQ[u,x], then

∫u(((c Sec[a+b x]))^m)dx  ⟶  (((c Sec[a+b x]))^m) (((c Cos[a+b x]))^m)∫(u/(((c Cos[a+b x]))^m))dx

Program code:

Int[u_*(c_.*sec[a_.+b_.*x_])^m_.,x_Symbol] :=
  (c*Sec[a+b*x])^m*(c*Cos[a+b*x])^m*Int[ActivateTrig[u]/(c*Cos[a+b*x])^m,x] /;
FreeQ[{a,b,c,m},x] && Not[IntegerQ[m]] && KnownSineIntegrandQ[u,x]

4:  ∫u(((c Csc[a+b x]))^m)dx  when  m∉ℤ ∧KnownSineIntegrandQ[u,x]

Derivation: Piecewise constant extraction

Basis: (∂_x)((((c Csc[a+b x]))^m) (((c Sin[a+b x]))^m))==0

Rule: If  m∉ℤ ∧KnownSineIntegrandQ[u,x], then

∫u(((c Csc[a+b x]))^m)dx  ⟶  (((c Csc[a+b x]))^m) (((c Sin[a+b x]))^m)∫(u/(((c Sin[a+b x]))^m))dx

Program code:

Int[u_*(c_.*csc[a_.+b_.*x_])^m_.,x_Symbol] :=
  (c*Csc[a+b*x])^m*(c*Sin[a+b*x])^m*Int[ActivateTrig[u]/(c*Sin[a+b*x])^m,x] /;
FreeQ[{a,b,c,m},x] && Not[IntegerQ[m]] && KnownSineIntegrandQ[u,x]

3.  ∫u(A+B Csc[a+b x])dx  when  KnownSineIntegrandQ[u,x]

1:  ∫u(((c Sin[a+b x]))^n)(A+B Csc[a+b x])dx  when  KnownSineIntegrandQ[u,x]

Derivation: Algebraic normalization

Rule: If  KnownSineIntegrandQ[u,x], then

∫u(((c Sin[a+b x]))^n)(A+B Csc[a+b x])dx  ⟶  c∫u(((c Sin[a+b x]))^(n-1))(B+A Sin[a+b x])dx

Program code:

Int[u_*(c_.*sin[a_.+b_.*x_])^n_.*(A_+B_.*csc[a_.+b_.*x_]),x_Symbol] :=
  c*Int[ActivateTrig[u]*(c*Sin[a+b*x])^(n-1)*(B+A*Sin[a+b*x]),x] /;
FreeQ[{a,b,c,A,B,n},x] && KnownSineIntegrandQ[u,x]

Int[u_*(c_.*cos[a_.+b_.*x_])^n_.*(A_+B_.*sec[a_.+b_.*x_]),x_Symbol] :=
  c*Int[ActivateTrig[u]*(c*Cos[a+b*x])^(n-1)*(B+A*Cos[a+b*x]),x] /;
FreeQ[{a,b,c,A,B,n},x] && KnownSineIntegrandQ[u,x]

2:  ∫u(A+B Csc[a+b x])dx  when  KnownSineIntegrandQ[u,x]

Derivation: Algebraic normalization

Rule: If  KnownSineIntegrandQ[u,x], then

∫u(A+B Csc[a+b x])dx  ⟶  ∫((u (B+A Sin[a+b x]))/(Sin[a+b x]))dx

Program code:

Int[u_*(A_+B_.*csc[a_.+b_.*x_]),x_Symbol] :=
  Int[ActivateTrig[u]*(B+A*Sin[a+b*x])/Sin[a+b*x],x] /;
FreeQ[{a,b,A,B},x] && KnownSineIntegrandQ[u,x]

Int[u_*(A_+B_.*sec[a_.+b_.*x_]),x_Symbol] :=
  Int[ActivateTrig[u]*(B+A*Cos[a+b*x])/Cos[a+b*x],x] /;
FreeQ[{a,b,A,B},x] && KnownSineIntegrandQ[u,x]

4.  ∫u(A+B Csc[a+b x]+C ((Csc[a+b x])^2))dx  when  KnownSineIntegrandQ[u,x]

1:  ∫u(((c Sin[a+b x]))^n)(A+B Csc[a+b x]+C ((Csc[a+b x])^2))dx  when  KnownSineIntegrandQ[u,x]

Derivation: Algebraic normalization

Rule: If  KnownSineIntegrandQ[u,x], then

∫u(((c Sin[a+b x]))^n)(A+B Csc[a+b x]+C ((Csc[a+b x])^2))dx  ⟶  (c^2)∫u(((c Sin[a+b x]))^(n-2))(C+B Sin[a+b x]+A ((Sin[a+b x])^2))dx

Program code:

Int[u_.*(c_.*sin[a_.+b_.*x_])^n_.*(A_.+B_.*csc[a_.+b_.*x_]+C_.*csc[a_.+b_.*x_]^2),x_Symbol] :=
  c^2*Int[ActivateTrig[u]*(c*Sin[a+b*x])^(n-2)*(C+B*Sin[a+b*x]+A*Sin[a+b*x]^2),x] /;
FreeQ[{a,b,c,A,B,C,n},x] && KnownSineIntegrandQ[u,x]

Int[u_.*(c_.*cos[a_.+b_.*x_])^n_.*(A_.+B_.*sec[a_.+b_.*x_]+C_.*sec[a_.+b_.*x_]^2),x_Symbol] :=
  c^2*Int[ActivateTrig[u]*(c*Cos[a+b*x])^(n-2)*(C+B*Cos[a+b*x]+A*Cos[a+b*x]^2),x] /;
FreeQ[{a,b,c,A,B,C,n},x] && KnownSineIntegrandQ[u,x]

Int[u_.*(c_.*sin[a_.+b_.*x_])^n_.*(A_+C_.*csc[a_.+b_.*x_]^2),x_Symbol] :=
  c^2*Int[ActivateTrig[u]*(c*Sin[a+b*x])^(n-2)*(C+A*Sin[a+b*x]^2),x] /;
FreeQ[{a,b,c,A,C,n},x] && KnownSineIntegrandQ[u,x]

Int[u_.*(c_.*cos[a_.+b_.*x_])^n_.*(A_+C_.*sec[a_.+b_.*x_]^2),x_Symbol] :=
  c^2*Int[ActivateTrig[u]*(c*Cos[a+b*x])^(n-2)*(C+A*Cos[a+b*x]^2),x] /;
FreeQ[{a,b,c,A,C,n},x] && KnownSineIntegrandQ[u,x]

2:  ∫u(A+B Csc[a+b x]+C ((Csc[a+b x])^2))dx  when  KnownSineIntegrandQ[u,x]

Derivation: Algebraic normalization

Rule: If  KnownSineIntegrandQ[u,x], then

∫u(A+B Csc[a+b x]+C ((Csc[a+b x])^2))dx  ⟶  ∫((u (C+B Sin[a+b x]+A ((Sin[a+b x])^2)))/((Sin[a+b x])^2))dx

Program code:

Int[u_*(A_.+B_.*csc[a_.+b_.*x_]+C_.*csc[a_.+b_.*x_]^2),x_Symbol] :=
  Int[ActivateTrig[u]*(C+B*Sin[a+b*x]+A*Sin[a+b*x]^2)/Sin[a+b*x]^2,x] /;
FreeQ[{a,b,A,B,C},x] && KnownSineIntegrandQ[u,x]

Int[u_*(A_.+B_.*sec[a_.+b_.*x_]+C_.*sec[a_.+b_.*x_]^2),x_Symbol] :=
  Int[ActivateTrig[u]*(C+B*Cos[a+b*x]+A*Cos[a+b*x]^2)/Cos[a+b*x]^2,x] /;
FreeQ[{a,b,A,B,C},x] && KnownSineIntegrandQ[u,x]

Int[u_*(A_+C_.*csc[a_.+b_.*x_]^2),x_Symbol] :=
  Int[ActivateTrig[u]*(C+A*Sin[a+b*x]^2)/Sin[a+b*x]^2,x] /;
FreeQ[{a,b,A,C},x] && KnownSineIntegrandQ[u,x]

Int[u_*(A_+C_.*sec[a_.+b_.*x_]^2),x_Symbol] :=
  Int[ActivateTrig[u]*(C+A*Cos[a+b*x]^2)/Cos[a+b*x]^2,x] /;
FreeQ[{a,b,A,C},x] && KnownSineIntegrandQ[u,x]

5:  ∫u(A+B Sin[a+b x]+C Csc[a+b x])dx

Derivation: Algebraic normalization

Rule:

∫u(A+B Sin[a+b x]+C Csc[a+b x])dx  ⟶  ∫((u (C+A Sin[a+b x]+B ((Sin[a+b x])^2)))/(Sin[a+b x]))dx

Program code:

Int[u_*(A_.+B_.*sin[a_.+b_.*x_]+C_.*csc[a_.+b_.*x_]),x_Symbol] :=
  Int[ActivateTrig[u]*(C+A*Sin[a+b*x]+B*Sin[a+b*x]^2)/Sin[a+b*x],x] /;
FreeQ[{a,b,A,B,C},x]

Int[u_*(A_.+B_.*cos[a_.+b_.*x_]+C_.*sec[a_.+b_.*x_]),x_Symbol] :=
  Int[ActivateTrig[u]*(C+A*Cos[a+b*x]+B*Cos[a+b*x]^2)/Cos[a+b*x],x] /;
FreeQ[{a,b,A,B,C},x]

6:  ∫u(A ((Sin[a+b x])^n)+B ((Sin[a+b x])^(n+1))+C ((Sin[a+b x])^(n+2)))dx

Derivation: Algebraic normalization

Rule:

∫u(A ((Sin[a+b x])^n)+B ((Sin[a+b x])^(n+1))+C ((Sin[a+b x])^(n+2)))dx  ⟶  ∫u ((Sin[a+b x])^n)(A+B Sin[a+b x]+C ((Sin[a+b x])^2))dx

Program code:

Int[u_*(A_.*sin[a_.+b_.*x_]^n_.+B_.*sin[a_.+b_.*x_]^n1_+C_.*sin[a_.+b_.*x_]^n2_),x_Symbol] :=
  Int[ActivateTrig[u]*Sin[a+b*x]^n*(A+B*Sin[a+b*x]+C*Sin[a+b*x]^2),x] /;
FreeQ[{a,b,A,B,C,n},x] && EqQ[n1,n+1] && EqQ[n2,n+2]

Int[u_*(A_.*cos[a_.+b_.*x_]^n_.+B_.*cos[a_.+b_.*x_]^n1_+C_.*cos[a_.+b_.*x_]^n2_),x_Symbol] :=
  Int[ActivateTrig[u]*Cos[a+b*x]^n*(A+B*Cos[a+b*x]+C*Cos[a+b*x]^2),x] /;
FreeQ[{a,b,A,B,C,n},x] && EqQ[n1,n+1] && EqQ[n2,n+2]