Rules for integrands involving exponential integral functions

1.  ∫u ExpIntegralE[n,a+b x]dx

1:  ∫ExpIntegralE[n,a+b x]dx

Basis: ((∂(ExpIntegralE[n, z]))/(∂z))==-(ExpIntegralE[n-1, z])

Rule:

∫ExpIntegralE[n,a+b x]dx  ⟶  -((ExpIntegralE[n+1,a+b x])/b)

Program code:

Int[ExpIntegralE[n_,a_.+b_.*x_],x_Symbol] :=
  -ExpIntegralE[n+1,a+b*x]/b /;
FreeQ[{a,b,n},x]

2.  ∫(((d x))^m) ExpIntegralE[n,b x]dx

1.  ∫(((d x))^m) ExpIntegralE[n,b x]dx  when  m+n==0

1.  ∫(x^m) ExpIntegralE[n,b x]dx  when  m+n==0 ∧ m∈ℤ

1:  ∫(x^m) ExpIntegralE[n,b x]dx  when  m+n==0 ∧ m∈(SuperPlus[ℤ])

Derivation: Inverted integration by parts

Rule: If  m+n==0 ∧ m∈(SuperPlus[ℤ]), then

∫(x^m) ExpIntegralE[n,b x]dx  ⟶  -(((x^m) ExpIntegralE[n+1,b x])/b)+(m/b)∫(x^(m-1)) ExpIntegralE[n+1,b x]dx

Program code:

Int[x_^m_.*ExpIntegralE[n_,b_.*x_],x_Symbol] :=
  -x^m*ExpIntegralE[n+1,b*x]/b + 
  m/b*Int[x^(m-1)*ExpIntegralE[n+1,b*x],x] /;
FreeQ[b,x] && EqQ[m+n,0] && IGtQ[m,0]

2.  ∫(x^m) ExpIntegralE[n,b x]dx  when  m+n==0 ∧ m∈(SuperMinus[ℤ])

1:  ∫((ExpIntegralE[1,b x])/x)dx

Rule:

∫((ExpIntegralE[1,b x])/x)dx  ⟶  b x HypergeometricPFQ[{1,1,1},{2,2,2},-b x]-EulerGamma Log[x]-(1/2) ((Log[b x])^2)

Program code:

Int[ExpIntegralE[1,b_.*x_]/x_,x_Symbol] :=
  b*x*HypergeometricPFQ[{1,1,1},{2,2,2},-b*x] - EulerGamma*Log[x] - 1/2*Log[b*x]^2 /;
FreeQ[b,x]

2:  ∫(x^m) ExpIntegralE[n,b x]dx  when  m+n==0 ∧ m+1∈(SuperMinus[ℤ])

Derivation: Integration by parts

Rule: If  m+n==0 ∧ m+1∈(SuperMinus[ℤ]), then

∫(x^m) ExpIntegralE[n,b x]dx  ⟶  (((x^(m+1)) ExpIntegralE[n,b x])/(m+1))+(b/(m+1))∫(x^(m+1)) ExpIntegralE[n-1,b x]dx

Program code:

Int[x_^m_*ExpIntegralE[n_,b_.*x_],x_Symbol] :=
  x^(m+1)*ExpIntegralE[n,b*x]/(m+1) +
  b/(m+1)*Int[x^(m+1)*ExpIntegralE[n-1,b*x],x] /;
FreeQ[b,x] && EqQ[m+n,0] && ILtQ[m,-1]

2:  ∫(((d x))^m) ExpIntegralE[n,b x]dx  when  m+n==0 ∧ m∉ℤ

Rule: If  m+n==0 ∧ m∉ℤ, then

∫(((d x))^m) ExpIntegralE[n,b x]dx  ⟶  (((((d x))^m) Gamma[m+1] Log[x])/(b(((b x))^m)))-(((((d x))^(m+1)) HypergeometricPFQ[{m+1,m+1},{m+2,m+2},-b x])/(d (((m+1))^2)))

Program code:

Int[(d_.*x_)^m_*ExpIntegralE[n_,b_.*x_],x_Symbol] :=
  (d*x)^m*Gamma[m+1]*Log[x]/(b*(b*x)^m) - (d*x)^(m+1)*HypergeometricPFQ[{m+1,m+1},{m+2,m+2},-b*x]/(d*(m+1)^2) /;
FreeQ[{b,d,m,n},x] && EqQ[m+n,0] && Not[IntegerQ[m]]

2:  ∫(((d x))^m) ExpIntegralE[n,b x]dx  when  m+n≠0

Rule: If  m+n≠0, then

∫(((d x))^m) ExpIntegralE[n,b x]dx  ⟶  (((((d x))^(m+1)) ExpIntegralE[n,b x])/(d (m+n)))-(((((d x))^(m+1)) ExpIntegralE[-m,b x])/(d (m+n)))

Program code:

Int[(d_.*x_)^m_.*ExpIntegralE[n_,b_.*x_],x_Symbol] :=
  (d*x)^(m+1)*ExpIntegralE[n,b*x]/(d*(m+n)) - (d*x)^(m+1)*ExpIntegralE[-m,b*x]/(d*(m+n)) /;
FreeQ[{b,d,m,n},x] && NeQ[m+n,0]

3.  ∫(((c+d x))^m) ExpIntegralE[n,a+b x]dx

1:  ∫(((c+d x))^m) ExpIntegralE[n,a+b x]dx  when  m∈(SuperPlus[ℤ])∨ n∈(SuperMinus[ℤ])∨(m>0 ∧ n<-1)

Derivation: Inverted integration by parts

Rule: If  m∈(SuperPlus[ℤ])∨ n∈(SuperMinus[ℤ])∨(m>0 ∧ n<-1), then

∫(((c+d x))^m) ExpIntegralE[n,a+b x]dx  ⟶  -(((((c+d x))^m) ExpIntegralE[n+1,a+b x])/b)+((d m)/b)∫(((c+d x))^(m-1)) ExpIntegralE[n+1,a+b x]dx

Program code:

Int[(c_.+d_.*x_)^m_.*ExpIntegralE[n_,a_+b_.*x_],x_Symbol] :=
  -(c+d*x)^m*ExpIntegralE[n+1,a+b*x]/b +
  d*m/b*Int[(c+d*x)^(m-1)*ExpIntegralE[n+1,a+b*x],x] /;
FreeQ[{a,b,c,d,m,n},x] && (IGtQ[m,0] || ILtQ[n,0] || GtQ[m,0] && LtQ[n,-1])

2:  ∫(((c+d x))^m) ExpIntegralE[n,a+b x]dx  when  (n∈(SuperPlus[ℤ])∨(m<-1 ∧ n>0)) ∧ m≠-1

Derivation: Integration by parts

Rule: If  (n∈(SuperPlus[ℤ])∨(m<-1 ∧ n>0)) ∧ m≠-1, then

∫(((c+d x))^m) ExpIntegralE[n,a+b x]dx  ⟶  (((((c+d x))^(m+1)) ExpIntegralE[n,a+b x])/(d (m+1)))+(b/(d (m+1)))∫(((c+d x))^(m+1)) ExpIntegralE[n-1,a+b x]dx

Program code:

Int[(c_.+d_.*x_)^m_.*ExpIntegralE[n_,a_+b_.*x_],x_Symbol] :=
  (c+d*x)^(m+1)*ExpIntegralE[n,a+b*x]/(d*(m+1)) +
  b/(d*(m+1))*Int[(c+d*x)^(m+1)*ExpIntegralE[n-1,a+b*x],x] /;
FreeQ[{a,b,c,d,m,n},x] && (IGtQ[n,0] || LtQ[m,-1] && GtQ[n,0]) && NeQ[m,-1]

3:  ∫(((c+d x))^m) ExpIntegralE[n,a+b x]dx

Rule:

∫(((c+d x))^m) ExpIntegralE[n,a+b x]dx  ⟶  ∫(((c+d x))^m) ExpIntegralE[n,a+b x]dx

Program code:

Int[(c_.+d_.*x_)^m_.*ExpIntegralE[n_,a_+b_.*x_],x_Symbol] :=
  Unintegrable[(c+d*x)^m*ExpIntegralE[n,a+b*x],x] /;
FreeQ[{a,b,c,d,m,n},x]

2.  ∫u ExpIntegralEi[a+b x]dx

1:  ∫ExpIntegralEi[a+b x]dx

Derivation: Integration by parts

Rule:

∫ExpIntegralEi[a+b x]dx  ⟶  (((a+b x) ExpIntegralEi[a+b x])/b)-((e^(a+b x))/b)

Program code:

Int[ExpIntegralEi[a_.+b_.*x_],x_Symbol] :=
  (a+b*x)*ExpIntegralEi[a+b*x]/b - E^(a+b*x)/b /;
FreeQ[{a,b},x]

2.  ∫(((c+d x))^m) ExpIntegralEi[a+b x]dx

1.  ∫((ExpIntegralEi[a+b x])/(c+d x))dx

1:  ∫((ExpIntegralEi[b x])/x)dx

Derivation: Piecewise constant extraction

Basis: (∂_x)(ExpIntegralEi[b x]+ExpIntegralE[1,-b x])==0

Rule:

∫((ExpIntegralEi[b x])/x)dx  ⟶  (ExpIntegralEi[b x]+ExpIntegralE[1,-b x]) ∫(1/x)dx-∫((ExpIntegralE[1,-b x])/x)dx

  ⟶  Log[x] (ExpIntegralEi[b x]+ExpIntegralE[1,-b x])-∫((ExpIntegralE[1,-b x])/x)dx

Program code:

Int[ExpIntegralEi[b_.*x_]/x_,x_Symbol] :=
  Log[x]*(ExpIntegralEi[b*x]+ExpIntegralE[1,-b*x]) - Int[ExpIntegralE[1,-b*x]/x,x] /;
FreeQ[b,x]

X:  ∫((ExpIntegralEi[a+b x])/(c+d x))dx

Rule:

∫((ExpIntegralEi[a+b x])/(c+d x))dx  ⟶  ∫((ExpIntegralEi[a+b x])/(c+d x))dx

Program code:

Int[ExpIntegralEi[a_.+b_.*x_]/(c_.+d_.*x_),x_Symbol] :=
  Unintegrable[ExpIntegralEi[a+b*x]/(c+d*x),x] /;
FreeQ[{a,b,c,d},x]

2:  ∫(((c+d x))^m) ExpIntegralEi[a+b x]dx  when  m≠-1

Derivation: Integration by parts

Rule: If  m≠-1, then

∫(((c+d x))^m) ExpIntegralEi[a+b x]dx  ⟶  (((((c+d x))^(m+1)) ExpIntegralEi[a+b x])/(d (m+1)))-(b/(d (m+1))) ∫(((((c+d x))^(m+1)) (e^(a+b x)))/(a+b x))dx

Program code:

Int[(c_.+d_.*x_)^m_.*ExpIntegralEi[a_.+b_.*x_],x_Symbol] :=
  (c+d*x)^(m+1)*ExpIntegralEi[a+b*x]/(d*(m+1)) - 
  b/(d*(m+1))*Int[(c+d*x)^(m+1)*E^(a+b*x)/(a+b*x),x] /;
FreeQ[{a,b,c,d,m},x] && NeQ[m,-1]

3.  ∫u ((ExpIntegralEi[a+b x])^2)dx

1:  ∫((ExpIntegralEi[a+b x])^2)dx

Derivation: Integration by parts

Rule:

∫((ExpIntegralEi[a+b x])^2)dx  ⟶  (((a+b x) ((ExpIntegralEi[a+b x])^2))/b)-2∫(e^(a+b x)) ExpIntegralEi[a+b x]dx

Program code:

Int[ExpIntegralEi[a_.+b_.*x_]^2,x_Symbol] :=
  (a+b*x)*ExpIntegralEi[a+b*x]^2/b -
  2*Int[E^(a+b*x)*ExpIntegralEi[a+b*x],x] /;
FreeQ[{a,b},x]

2.  ∫(x^m) ((ExpIntegralEi[a+b x])^2)dx

1:  ∫(x^m) ((ExpIntegralEi[b x])^2)dx  when  m∈(SuperPlus[ℤ])

Derivation: Integration by parts

Rule: If  m∈(SuperPlus[ℤ]), then

∫(x^m) ((ExpIntegralEi[b x])^2)dx  ⟶  (((x^(m+1)) ((ExpIntegralEi[b x])^2))/(m+1))-(2/(m+1))∫(x^m) (e^(b x)) ExpIntegralEi[b x]dx

Program code:

Int[x_^m_.*ExpIntegralEi[b_.*x_]^2,x_Symbol] :=
  x^(m+1)*ExpIntegralEi[b*x]^2/(m+1) -
  2/(m+1)*Int[x^m*E^(b*x)*ExpIntegralEi[b*x],x] /;
FreeQ[b,x] && IGtQ[m,0]

2:  ∫(x^m) ((ExpIntegralEi[a+b x])^2)dx  when  m∈(SuperPlus[ℤ])

Derivation: Iterated integration by parts

Rule: If  m∈(SuperPlus[ℤ]), then

∫(x^m) ((ExpIntegralEi[a+b x])^2)dx  ⟶  
(((x^(m+1)) ((ExpIntegralEi[a+b x])^2))/(m+1))+((a (x^m) ((ExpIntegralEi[a+b x])^2))/(b (m+1)))-(2/(m+1))∫(x^m) (e^(a+b x)) ExpIntegralEi[a+b x]dx-((a m)/(b (m+1)))∫(x^(m-1)) ((ExpIntegralEi[a+b x])^2)dx

Program code:

Int[x_^m_.*ExpIntegralEi[a_+b_.*x_]^2,x_Symbol] :=
  x^(m+1)*ExpIntegralEi[a+b*x]^2/(m+1) +
  a*x^m*ExpIntegralEi[a+b*x]^2/(b*(m+1)) -
  2/(m+1)*Int[x^m*E^(a+b*x)*ExpIntegralEi[a+b*x],x] -
  a*m/(b*(m+1))*Int[x^(m-1)*ExpIntegralEi[a+b*x]^2,x] /;
FreeQ[{a,b},x] && IGtQ[m,0]

x:  ∫(x^m) ((ExpIntegralEi[a+b x])^2)dx  when  m+2∈(SuperMinus[ℤ])

Derivation: Inverted integration by parts

Rule: If  m+2∈(SuperMinus[ℤ]), then

∫(x^m) ((ExpIntegralEi[a+b x])^2)dx  ⟶  
((b (x^(m+2)) ((ExpIntegralEi[a+b x])^2))/(a (m+1)))+(((x^(m+1)) ((ExpIntegralEi[a+b x])^2))/(m+1))-((2 b)/(a (m+1)))∫(x^(m+1)) (e^(a+b x)) ExpIntegralEi[a+b x]dx-((b (m+2))/(a (m+1)))∫(x^(m+1)) ((ExpIntegralEi[a+b x])^2)dx

Program code:

(* Int[x_^m_.*ExpIntegralEi[a_+b_.*x_]^2,x_Symbol] :=
  b*x^(m+2)*ExpIntegralEi[a+b*x]^2/(a*(m+1)) +
  x^(m+1)*ExpIntegralEi[a+b*x]^2/(m+1) -
  2*b/(a*(m+1))*Int[x^(m+1)*E^(a+b*x)*ExpIntegralEi[a+b*x],x] -
  b*(m+2)/(a*(m+1))*Int[x^(m+1)*ExpIntegralEi[a+b*x]^2,x] /;
FreeQ[{a,b},x] && ILtQ[m,-2] *)

4.  ∫u (e^(a+b x)) ExpIntegralEi[c+d x]dx

1:  ∫(e^(a+b x)) ExpIntegralEi[c+d x]dx

Derivation: Integration by parts

Rule:

∫(e^(a+b x)) ExpIntegralEi[c+d x]dx  ⟶  (((e^(a+b x)) ExpIntegralEi[c+d x])/b)-(d/b)∫((e^(a+c+(b+d)x))/(c+d x))dx

Program code:

Int[E^(a_.+b_.*x_)*ExpIntegralEi[c_.+d_.*x_],x_Symbol] :=
  E^(a+b*x)*ExpIntegralEi[c+d*x]/b -
  d/b*Int[E^(a+c+(b+d)*x)/(c+d*x),x] /;
FreeQ[{a,b,c,d},x]

2.  ∫(x^m) (e^(a+b x)) ExpIntegralEi[c+d x]dx

1:  ∫(x^m) (e^(a+b x)) ExpIntegralEi[c+d x]dx  when  m∈(SuperPlus[ℤ])

Derivation: Integration by parts

Rule: If  m∈(SuperPlus[ℤ]), then

∫(x^m) (e^(a+b x)) ExpIntegralEi[c+d x]dx  ⟶  
(((x^m) (e^(a+b x)) ExpIntegralEi[c+d x])/b)-(d/b)∫(((x^m) (e^(a+c+(b+d)x)))/(c+d x))dx-(m/b)∫(x^(m-1)) (e^(a+b x)) ExpIntegralEi[c+d x]dx

Program code:

Int[x_^m_.*E^(a_.+b_.*x_)*ExpIntegralEi[c_.+d_.*x_],x_Symbol] :=
  x^m*E^(a+b*x)*ExpIntegralEi[c+d*x]/b -
  d/b*Int[x^m*E^(a+c+(b+d)*x)/(c+d*x),x] -
  m/b*Int[x^(m-1)*E^(a+b*x)*ExpIntegralEi[c+d*x],x] /;
FreeQ[{a,b,c,d},x] && IGtQ[m,0]

2:  ∫(x^m) (e^(a+b x)) ExpIntegralEi[c+d x]dx  when  m+1∈(SuperMinus[ℤ])

Derivation: Inverted integration by parts

Rule: If  m+1∈(SuperMinus[ℤ]), then

∫(x^m) (e^(a+b x)) ExpIntegralEi[c+d x]dx  ⟶  
(((x^(m+1)) (e^(a+b x)) ExpIntegralEi[c+d x])/(m+1))-(d/(m+1))∫(((x^(m+1)) (e^(a+c+(b+d)x)))/(c+d x))dx-(b/(m+1))∫(x^(m+1)) (e^(a+b x)) ExpIntegralEi[c+d x]dx

Program code:

Int[x_^m_*E^(a_.+b_.*x_)*ExpIntegralEi[c_.+d_.*x_],x_Symbol] :=
  x^(m+1)*E^(a+b*x)*ExpIntegralEi[c+d*x]/(m+1) -
  d/(m+1)*Int[x^(m+1)*E^(a+c+(b+d)*x)/(c+d*x),x] -
  b/(m+1)*Int[x^(m+1)*E^(a+b*x)*ExpIntegralEi[c+d*x],x] /;
FreeQ[{a,b,c,d},x] && ILtQ[m,-1]

5.  ∫u ExpIntegralEi[d (a+b Log[c (x^n)])]dx

1:  ∫ExpIntegralEi[d (a+b Log[c (x^n)])]dx

Derivation: Integration by parts

Basis: (∂_x)ExpIntegralEi[d (a+b Log[c (x^n)])]==((b n (e^(a d)) (((c (x^n)))^(b d)))/(x (a+b Log[c (x^n)])))

Rule: If  m≠-1, then

∫ExpIntegralEi[d (a+b Log[c (x^n)])]dx  ⟶  x ExpIntegralEi[d (a+b Log[c (x^n)])]-b n (e^(a d)) ∫((((c (x^n)))^(b d))/(a+b Log[c (x^n)]))dx

Program code:

Int[ExpIntegralEi[d_.*(a_.+b_.*Log[c_.*x_^n_.])],x_Symbol] :=
  x*ExpIntegralEi[d*(a+b*Log[c*x^n])] - b*n*E^(a*d)*Int[(c*x^n)^(b*d)/(a+b*Log[c*x^n]),x] /;
FreeQ[{a,b,c,d,n},x]

2:  ∫((ExpIntegralEi[d (a+b Log[c (x^n)])])/x)dx

Derivation: Integration by substitution

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

Rule:

∫((ExpIntegralEi[d (a+b Log[c (x^n)])])/x)dx  ⟶  (1/n) Subst[ExpIntegralEi[d (a+b x)],x,Log[c (x^n)]]

Program code:

Int[ExpIntegralEi[d_.*(a_.+b_.*Log[c_.*x_^n_.])]/x_,x_Symbol] :=
  1/n*Subst[ExpIntegralEi[d*(a+b*x)],x,Log[c*x^n]] /;
FreeQ[{a,b,c,d,n},x]

3:  ∫(((e x))^m) ExpIntegralEi[d (a+b Log[c (x^n)])]dx  when  m≠-1

Derivation: Integration by parts

Basis: (∂_x)ExpIntegralEi[d (a+b Log[c (x^n)])]==((b n (e^(a d)) (((c (x^n)))^(b d)))/(x (a+b Log[c (x^n)])))

Rule: If  m≠-1, then

∫(((e x))^m) ExpIntegralEi[d (a+b Log[c (x^n)])]dx  ⟶  (((((e x))^(m+1)) ExpIntegralEi[d (a+b Log[c (x^n)])])/(e (m+1)))-((b n (e^(a d)) (((c (x^n)))^(b d)))/((m+1) (((e x))^(b d n)))) ∫((((e x))^(m+b d n))/(a+b Log[c (x^n)]))dx

Program code:

Int[(e_.*x_)^m_.*ExpIntegralEi[d_.*(a_.+b_.*Log[c_.*x_^n_.])],x_Symbol] :=
  (e*x)^(m+1)*ExpIntegralEi[d*(a+b*Log[c*x^n])]/(e*(m+1)) - 
  b*n*E^(a*d)*(c*x^n)^(b*d)/((m+1)*(e*x)^(b*d*n))*Int[(e*x)^(m+b*d*n)/(a+b*Log[c*x^n]),x] /;
FreeQ[{a,b,c,d,e,m,n},x] && NeQ[m,-1]

Rules for integrands involving logarithmic integral functions

1:  ∫LogIntegral[a+b x]dx

Derivation: Integration by parts

Rule:

∫LogIntegral[a+b x]dx  ⟶  (((a+b x) LogIntegral[a+b x])/b)-((ExpIntegralEi[2 Log[a+b x]])/b)

Program code:

Int[LogIntegral[a_.+b_.*x_],x_Symbol] :=
  (a+b*x)*LogIntegral[a+b*x]/b - ExpIntegralEi[2*Log[a+b*x]]/b /;
FreeQ[{a,b},x]

2.  ∫(((c+d x))^m) LogIntegral[a+b x]dx

1.  ∫((LogIntegral[a+b x])/(c+d x))dx

1:  ∫((LogIntegral[b x])/x)dx

Rule:

∫((LogIntegral[b x])/x)dx  ⟶  -b x+Log[b x] LogIntegral[b x]

Program code:

Int[LogIntegral[b_.*x_]/x_,x_Symbol] :=
  -b*x + Log[b*x]*LogIntegral[b*x] /;
FreeQ[b,x]

U:  ∫((LogIntegral[a+b x])/(c+d x))dx

Rule:

∫((LogIntegral[a+b x])/(c+d x))dx  ⟶  ∫((LogIntegral[a+b x])/(c+d x))dx

Program code:

Int[LogIntegral[a_.+b_.*x_]/(c_.+d_.*x_),x_Symbol] :=
  Unintegrable[LogIntegral[a+b*x]/(c+d*x),x] /;
FreeQ[{a,b,c,d},x]

2:  ∫(((c+d x))^m) LogIntegral[a+b x]dx  when  m≠-1

Derivation: Integration by parts

Rule: If  m≠-1, then

∫(((c+d x))^m)LogIntegral[a+b x]dx  ⟶  (((((c+d x))^(m+1)) LogIntegral[a+b x])/(d (m+1)))-(b/(d (m+1)))∫((((c+d x))^(m+1))/(Log[a+b x]))dx

Program code:

Int[(c_.+d_.*x_)^m_.*LogIntegral[a_.+b_.*x_],x_Symbol] :=
  (c+d*x)^(m+1)*LogIntegral[a+b*x]/(d*(m+1)) - b/(d*(m+1))*Int[(c+d*x)^(m+1)/Log[a+b*x],x] /;
FreeQ[{a,b,c,d,m},x] && NeQ[m,-1]