Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 143 additions & 21 deletions Integration Test Suite/SanityCheck.m

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

(* ::Subsection::Closed:: *)
(* 2.1 (c+d x)^m (a+b (F^(g (e+f x)))^n)^p *)
$UseGamma = False;
Int[(c_. + d_.*x_)^m_.*(b_.*F_^(g_.*(e_. + f_.*x_)))^n_., x_Symbol] := (c + d*x)^m*(b*F^(g*(e + f*x)))^n/(f*g*n*Log[F]) - d*m/(f*g*n*Log[F])* Int[(c + d*x)^(m - 1)*(b*F^(g*(e + f*x)))^n, x] /; FreeQ[{F, b, c, d, e, f, g, n}, x] && GtQ[m, 0] && IntegerQ[2*m] && Not[TrueQ[$UseGamma]]
Int[(c_. + d_.*x_)^m_*(b_.*F_^(g_.*(e_. + f_.*x_)))^n_., x_Symbol] := (c + d*x)^(m + 1)*(b*F^(g*(e + f*x)))^n/(d*(m + 1)) - f*g*n*Log[F]/(d*(m + 1))* Int[(c + d*x)^(m + 1)*(b*F^(g*(e + f*x)))^n, x] /; FreeQ[{F, b, c, d, e, f, g, n}, x] && LtQ[m, -1] && IntegerQ[2*m] && Not[TrueQ[$UseGamma]]
Int[F_^(g_.*(e_. + f_.*x_))/(c_. + d_.*x_), x_Symbol] := F^(g*(e - c*f/d))/d*ExpIntegralEi[f*g*(c + d*x)*Log[F]/d] /; FreeQ[{F, c, d, e, f, g}, x] && Not[TrueQ[$UseGamma]]
Int[(c_. + d_.*x_)^m_.*F_^(g_.*(e_. + f_.*x_)), x_Symbol] := (-d)^m*F^(g*(e - c*f/d))/(f^(m + 1)*g^(m + 1)*Log[F]^(m + 1))* Gamma[m + 1, -f*g*Log[F]/d*(c + d*x)] /; FreeQ[{F, c, d, e, f, g}, x] && IntegerQ[m]
Int[F_^(g_.*(e_. + f_.*x_))/Sqrt[c_. + d_.*x_], x_Symbol] := 2/d*Subst[Int[F^(g*(e - c*f/d) + f*g*x^2/d), x], x, Sqrt[c + d*x]] /; FreeQ[{F, c, d, e, f, g}, x] && Not[TrueQ[$UseGamma]]
Int[(c_. + d_.*x_)^m_*F_^(g_.*(e_. + f_.*x_)), x_Symbol] := -F^(g*(e - c*f/d))*(c + d*x)^ FracPart[ m]/(d*(-f*g*Log[F]/d)^(IntPart[m] + 1)*(-f*g* Log[F]*(c + d*x)/d)^FracPart[m])* Gamma[m + 1, (-f*g*Log[F]/d)*(c + d*x)] /; FreeQ[{F, c, d, e, f, g, m}, x] && Not[IntegerQ[m]]
Int[(c_. + d_.*x_)^m_.*(b_.*F_^(g_.*(e_. + f_.*x_)))^n_, x_Symbol] := (b*F^(g*(e + f*x)))^n/F^(g*n*(e + f*x))* Int[(c + d*x)^m*F^(g*n*(e + f*x)), x] /; FreeQ[{F, b, c, d, e, f, g, m, n}, x]
Int[(c_. + d_.*x_)^m_.*(a_ + b_.*(F_^(g_.*(e_. + f_.*x_)))^n_.)^p_., x_Symbol] := Int[ExpandIntegrand[(c + d*x)^m, (a + b*(F^(g*(e + f*x)))^n)^p, x], x] /; FreeQ[{F, a, b, c, d, e, f, g, m, n}, x] && IGtQ[p, 0]
Int[(c_. + d_.*x_)^m_./(a_ + b_.*(F_^(g_.*(e_. + f_.*x_)))^n_.), x_Symbol] := (c + d*x)^(m + 1)/(a*d*(m + 1)) - b/a*Int[(c + d*x)^ m*(F^(g*(e + f*x)))^n/(a + b*(F^(g*(e + f*x)))^n), x] /; FreeQ[{F, a, b, c, d, e, f, g, n}, x] && IGtQ[m, 0]
(* Int[(c_.+d_.*x_)^m_./(a_+b_.*(F_^(g_.*(e_.+f_.*x_)))^n_.),x_Symbol] := -(c+d*x)^m/(a*f*g*n*Log[F])*Log[1+a/(b*(F^(g*(e+f*x)))^n)] + d*m/(a*f*g*n*Log[F])*Int[(c+d*x)^(m-1)*Log[1+a/(b*(F^(g*(e+f*x)))^n) ],x] /; FreeQ[{F,a,b,c,d,e,f,g,n},x] && IGtQ[m,0] *)
Int[(c_. + d_.*x_)^m_.*(a_ + b_.*(F_^(g_.*(e_. + f_.*x_)))^n_.)^p_, x_Symbol] := 1/a*Int[(c + d*x)^m*(a + b*(F^(g*(e + f*x)))^n)^(p + 1), x] - b/a* Int[(c + d*x)^m*(F^(g*(e + f*x)))^n*(a + b*(F^(g*(e + f*x)))^n)^p, x] /; FreeQ[{F, a, b, c, d, e, f, g, n}, x] && ILtQ[p, 0] && IGtQ[m, 0]
Int[(c_. + d_.*x_)^m_.*(a_ + b_.*(F_^(g_.*(e_. + f_.*x_)))^n_.)^p_, x_Symbol] := With[{u = IntHide[(a + b*(F^(g*(e + f*x)))^n)^p, x]}, Dist[(c + d*x)^m, u, x] - d*m*Int[(c + d*x)^(m - 1)*u, x]] /; FreeQ[{F, a, b, c, d, e, f, g, n}, x] && IGtQ[m, 0] && LtQ[p, -1]
Int[u_^m_.*(a_. + b_.*(F_^(g_.*v_))^n_.)^p_., x_Symbol] := Int[NormalizePowerOfLinear[u, x]^ m*(a + b*(F^(g*ExpandToSum[v, x]))^n)^p, x] /; FreeQ[{F, a, b, g, n, p}, x] && LinearQ[v, x] && PowerOfLinearQ[u, x] && Not[LinearMatchQ[v, x] && PowerOfLinearMatchQ[u, x]] && IntegerQ[m]
Int[u_^m_.*(a_. + b_.*(F_^(g_.*v_))^n_.)^p_., x_Symbol] := Module[{uu = NormalizePowerOfLinear[u, x], z}, z = If[PowerQ[uu] && FreeQ[uu[[2]], x], uu[[1]]^(m*uu[[2]]), uu^m]; uu^m/z*Int[z*(a + b*(F^(g*ExpandToSum[v, x]))^n)^p, x]] /; FreeQ[{F, a, b, g, m, n, p}, x] && LinearQ[v, x] && PowerOfLinearQ[u, x] && Not[LinearMatchQ[v, x] && PowerOfLinearMatchQ[u, x]] && Not[IntegerQ[m]]
Int[(c_. + d_.*x_)^m_.*(a_ + b_.*(F_^(g_.*(e_. + f_.*x_)))^n_.)^p_., x_Symbol] := Unintegrable[(c + d*x)^m*(a + b*(F^(g*(e + f*x)))^n)^p, x] /; FreeQ[{a, b, c, d, e, f, g, m, n, p}, x]
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

(* ::Subsection::Closed:: *)
(* 2.2 (c+d x)^m (F^(g (e+f x)))^n (a+b (F^(g (e+f x)))^n)^p *)
Int[(c_. + d_.*x_)^ m_.*(F_^(g_.*(e_. + f_.*x_)))^ n_./(a_ + b_.*(F_^(g_.*(e_. + f_.*x_)))^n_.), x_Symbol] := (c + d*x)^m/(b*f*g*n*Log[F])*Log[1 + b*(F^(g*(e + f*x)))^n/a] - d*m/(b*f*g*n*Log[F])* Int[(c + d*x)^(m - 1)*Log[1 + b*(F^(g*(e + f*x)))^n/a], x] /; FreeQ[{F, a, b, c, d, e, f, g, n}, x] && IGtQ[m, 0]
Int[(c_. + d_.*x_)^m_.*(F_^(g_.*(e_. + f_.*x_)))^ n_.*(a_. + b_.*(F_^(g_.*(e_. + f_.*x_)))^n_.)^p_., x_Symbol] := (c + d*x)^ m*(a + b*(F^(g*(e + f*x)))^n)^(p + 1)/(b*f*g*n*(p + 1)* Log[F]) - d*m/(b*f*g*n*(p + 1)*Log[F])* Int[(c + d*x)^(m - 1)*(a + b*(F^(g*(e + f*x)))^n)^(p + 1), x] /; FreeQ[{F, a, b, c, d, e, f, g, m, n, p}, x] && NeQ[p, -1]
Int[(c_. + d_.*x_)^m_.*(F_^(g_.*(e_. + f_.*x_)))^ n_.*(a_. + b_.*(F_^(g_.*(e_. + f_.*x_)))^n_.)^p_., x_Symbol] := Unintegrable[(c + d*x)^m*(F^(g*(e + f*x)))^ n*(a + b*(F^(g*(e + f*x)))^n)^p, x] /; FreeQ[{F, a, b, c, d, e, f, g, m, n, p}, x]
Int[(c_. + d_.*x_)^m_.*(k_.*G_^(j_.*(h_. + i_.*x_)))^ q_.*(a_. + b_.*(F_^(g_.*(e_. + f_.*x_)))^n_.)^p_., x_Symbol] := (k*G^(j*(h + i*x)))^q/(F^(g*(e + f*x)))^n* Int[(c + d*x)^m*(F^(g*(e + f*x)))^n*(a + b*(F^(g*(e + f*x)))^n)^p, x] /; FreeQ[{F, a, b, c, d, e, f, g, h, i, j, k, m, n, p, q}, x] && EqQ[f*g*n*Log[F] - i*j*q*Log[G], 0] && NeQ[(k*G^(j*(h + i*x)))^q - (F^(g*(e + f*x)))^n, 0]
Loading