package org.matheclipse.core.integrate.rubi42;


import static org.matheclipse.core.expression.F.*;
import static org.matheclipse.core.integrate.rubi42.UtilityFunctionCtors.*;
import static org.matheclipse.core.integrate.rubi42.UtilityFunctions.*;

import org.matheclipse.core.interfaces.IAST;
import org.matheclipse.core.interfaces.IExpr;
import org.matheclipse.core.interfaces.ISymbol;
/** 
 * IntegrationRules rules from the Rubi -
 * rule-based integrator.
 *  
 */
public class IntegrationRulesForExpressionsInvolvingSpecialFunctions0 { 
  public static IAST RULES = List( 
SetDelayed(Int(Power(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(c,true)),$p(p)),$p(x,SymbolHead)),
    Condition(Plus(Times(Plus(a,Times(b,x)),Power(Times(c,ProductLog(Plus(a,Times(b,x)))),p),Power(Times(b,Plus(p,C1)),CN1)),Times(p,Power(Times(c,Plus(p,C1)),CN1),Int(Times(Power(Times(c,ProductLog(Plus(a,Times(b,x)))),Plus(p,C1)),Power(Plus(C1,ProductLog(Plus(a,Times(b,x)))),CN1)),x))),And(And(FreeQ(List(a,b,c),x),RationalQ(p)),Less(p,CN1)))),
SetDelayed(Int(Power(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(c,true)),$p(p,true)),$p(x,SymbolHead)),
    Condition(Plus(Times(Plus(a,Times(b,x)),Power(Times(c,ProductLog(Plus(a,Times(b,x)))),p),Power(b,CN1)),Times(CN1,p,Int(Times(Power(Times(c,ProductLog(Plus(a,Times(b,x)))),p),Power(Plus(C1,ProductLog(Plus(a,Times(b,x)))),CN1)),x))),And(FreeQ(List(a,b,c),x),Not(And(RationalQ(p),Less(p,CN1)))))),
SetDelayed(Int(Times(Power(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(Power(b,CN1),Subst(Int(ExpandIntegrand(Power(Times(c,ProductLog(x)),p),Power(Plus(Times(CN1,a,Power(b,CN1)),Times(x,Power(b,CN1))),m),x),x),x,Plus(a,Times(b,x)))),And(FreeQ(List(a,b,c,p),x),PositiveIntegerQ(m)))),
SetDelayed(Int(Power(Times(ProductLog(Times(Power($p(x),$p(n)),$p(a,true))),$p(c,true)),$p(p,true)),$p(x,SymbolHead)),
    Condition(Plus(Times(x,Power(Times(c,ProductLog(Times(a,Power(x,n)))),p)),Times(CN1,n,p,Int(Times(Power(Times(c,ProductLog(Times(a,Power(x,n)))),p),Power(Plus(C1,ProductLog(Times(a,Power(x,n)))),CN1)),x))),And(FreeQ(List(a,c,n,p),x),Or(ZeroQ(Plus(Times(n,Plus(p,Times(CN1,C1))),C1)),And(IntegerQ(Plus(p,Times(CN1,C1D2))),ZeroQ(Plus(Times(n,Plus(p,Times(CN1,C1D2))),C1))))))),
SetDelayed(Int(Power(Times(ProductLog(Times(Power($p(x),$p(n)),$p(a,true))),$p(c,true)),$p(p,true)),$p(x,SymbolHead)),
    Condition(Plus(Times(x,Power(Times(c,ProductLog(Times(a,Power(x,n)))),p),Power(Plus(Times(n,p),C1),CN1)),Times(n,p,Power(Times(c,Plus(Times(n,p),C1)),CN1),Int(Times(Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,C1)),Power(Plus(C1,ProductLog(Times(a,Power(x,n)))),CN1)),x))),And(FreeQ(List(a,c,n),x),Or(And(IntegerQ(p),ZeroQ(Plus(Times(n,Plus(p,C1)),C1))),And(IntegerQ(Plus(p,Times(CN1,C1D2))),ZeroQ(Plus(Times(n,Plus(p,C1D2)),C1))))))),
SetDelayed(Int(Power(Times(ProductLog(Times(Power($p(x),$p(n)),$p(a,true))),$p(c,true)),$p(p,true)),$p(x,SymbolHead)),
    Condition(Times(CN1,Subst(Int(Times(Power(Times(c,ProductLog(Times(a,Power(x,Times(CN1,n))))),p),Power(Power(x,C2),CN1)),x),x,Power(x,CN1))),And(FreeQ(List(a,c,p),x),NegativeIntegerQ(n)))),
SetDelayed(Int(Times(Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Plus(Times(Power(x,Plus(m,C1)),Power(Times(c,ProductLog(Times(a,Power(x,n)))),p),Power(Plus(m,C1),CN1)),Times(CN1,n,p,Power(Plus(m,C1),CN1),Int(Times(Power(x,m),Power(Times(c,ProductLog(Times(a,Power(x,n)))),p),Power(Plus(C1,ProductLog(Times(a,Power(x,n)))),CN1)),x))),And(And(FreeQ(List(a,c,m,n,p),x),NonzeroQ(Plus(m,C1))),Or(And(And(IntegerQ(Plus(p,Times(CN1,C1D2))),IntegerQ(Times(C2,Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1))))))),Greater(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))),C0)),And(And(Not(IntegerQ(Plus(p,Times(CN1,C1D2)))),IntegerQ(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))))),GreaterEqual(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))),C0)))))),
SetDelayed(Int(Times(Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Plus(Times(Power(x,Plus(m,C1)),Power(Times(c,ProductLog(Times(a,Power(x,n)))),p),Power(Plus(m,Times(n,p),C1),CN1)),Times(n,p,Power(Times(c,Plus(m,Times(n,p),C1)),CN1),Int(Times(Power(x,m),Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,C1)),Power(Plus(C1,ProductLog(Times(a,Power(x,n)))),CN1)),x))),And(FreeQ(List(a,c,m,n,p),x),Or(Or(ZeroQ(Plus(m,C1)),And(And(IntegerQ(Plus(p,Times(CN1,C1D2))),IntegerQ(Plus(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))),Times(CN1,C1D2)))),Less(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))),C0))),And(And(Not(IntegerQ(Plus(p,Times(CN1,C1D2)))),IntegerQ(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))))),Less(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))),C0)))))),
SetDelayed(Int(Times(Power(Times(ProductLog(Times($p(a,true),$p(x))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Plus(Int(Times(Power(x,m),Power(Times(c,ProductLog(Times(a,x))),p),Power(Plus(C1,ProductLog(Times(a,x))),CN1)),x),Times(Power(c,CN1),Int(Times(Power(x,m),Power(Times(c,ProductLog(Times(a,x))),Plus(p,C1)),Power(Plus(C1,ProductLog(Times(a,x))),CN1)),x))),FreeQ(List(a,c,m),x))),
SetDelayed(Int(Times(Power(Times(ProductLog(Times(Power($p(x),$p(n)),$p(a,true))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(CN1,Subst(Int(Times(Power(Times(c,ProductLog(Times(a,Power(x,Times(CN1,n))))),p),Power(Power(x,Plus(m,C2)),CN1)),x),x,Power(x,CN1))),And(And(And(FreeQ(List(a,c,p),x),IntegersQ(m,n)),Less(n,C0)),NonzeroQ(Plus(m,C1))))),
SetDelayed(Int(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(d,true)),$p(d)),CN1),$p(x,SymbolHead)),
    Condition(Times(Plus(a,Times(b,x)),Power(Times(b,d,ProductLog(Plus(a,Times(b,x)))),CN1)),FreeQ(List(a,b,d),x))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(d,true)),$p(d)),CN1),ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true)))),$p(x,SymbolHead)),
    Condition(Plus(Times(d,x),Times(CN1,Int(Power(Plus(d,Times(d,ProductLog(Plus(a,Times(b,x))))),CN1),x))),FreeQ(List(a,b,d),x))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(c,true)),$p(p))),$p(x,SymbolHead)),
    Condition(Plus(Times(c,Plus(a,Times(b,x)),Power(Times(c,ProductLog(Plus(a,Times(b,x)))),Plus(p,Times(CN1,C1))),Power(Times(b,d),CN1)),Times(CN1,c,p,Int(Times(Power(Times(c,ProductLog(Plus(a,Times(b,x)))),Plus(p,Times(CN1,C1))),Power(Plus(d,Times(d,ProductLog(Plus(a,Times(b,x))))),CN1)),x))),And(And(FreeQ(List(a,b,c,d),x),RationalQ(p)),Greater(p,C0)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),CN1)),$p(x,SymbolHead)),
    Condition(Times(ExpIntegralEi(ProductLog(Plus(a,Times(b,x)))),Power(Times(b,d),CN1)),FreeQ(List(a,b,d),x))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(c,true)),CN1D2)),$p(x,SymbolHead)),
    Condition(Times(Rt(Times(Pi,c),C2),Erfi(Times(Sqrt(Times(c,ProductLog(Plus(a,Times(b,x))))),Power(Rt(c,C2),CN1))),Power(Times(b,c,d),CN1)),And(FreeQ(List(a,b,c,d),x),PosQ(c)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(c,true)),CN1D2)),$p(x,SymbolHead)),
    Condition(Times(Rt(Times(CN1,Pi,c),C2),Erf(Times(Sqrt(Times(c,ProductLog(Plus(a,Times(b,x))))),Power(Rt(Times(CN1,c),C2),CN1))),Power(Times(b,c,d),CN1)),And(FreeQ(List(a,b,c,d),x),NegQ(c)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(c,true)),$p(p))),$p(x,SymbolHead)),
    Condition(Plus(Times(Plus(a,Times(b,x)),Power(Times(c,ProductLog(Plus(a,Times(b,x)))),p),Power(Times(b,d,Plus(p,C1)),CN1)),Times(CN1,Power(Times(c,Plus(p,C1)),CN1),Int(Times(Power(Times(c,ProductLog(Plus(a,Times(b,x)))),Plus(p,C1)),Power(Plus(d,Times(d,ProductLog(Plus(a,Times(b,x))))),CN1)),x))),And(And(FreeQ(List(a,b,c,d),x),RationalQ(p)),Less(p,CN1)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a,true))),$p(c,true)),$p(p,true))),$p(x,SymbolHead)),
    Condition(Times(Gamma(Plus(p,C1),Times(CN1,ProductLog(Plus(a,Times(b,x))))),Power(Times(c,ProductLog(Plus(a,Times(b,x)))),p),Power(Times(b,d,Power(Times(CN1,ProductLog(Plus(a,Times(b,x)))),p)),CN1)),FreeQ(List(a,b,c,d,p),x))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a))),$p(d,true)),$p(d)),CN1),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(Power(b,CN1),Subst(Int(ExpandIntegrand(Power(Plus(d,Times(d,ProductLog(x))),CN1),Power(Plus(Times(CN1,a,Power(b,CN1)),Times(x,Power(b,CN1))),m),x),x),x,Plus(a,Times(b,x)))),And(FreeQ(List(a,b,d),x),PositiveIntegerQ(m)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Plus(Times($p(b,true),$p(x)),$p(a))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(Power(b,CN1),Subst(Int(ExpandIntegrand(Times(Power(Times(c,ProductLog(x)),p),Power(Plus(d,Times(d,ProductLog(x))),CN1)),Power(Plus(Times(CN1,a,Power(b,CN1)),Times(x,Power(b,CN1))),m),x),x),x,Plus(a,Times(b,x)))),And(FreeQ(List(a,b,c,d,p),x),PositiveIntegerQ(m)))),
SetDelayed(Int(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n)),$p(a,true))),$p(d,true)),$p(d)),CN1),$p(x,SymbolHead)),
    Condition(Times(CN1,Subst(Int(Power(Times(Power(x,C2),Plus(d,Times(d,ProductLog(Times(a,Power(x,Times(CN1,n))))))),CN1),x),x,Power(x,CN1))),And(FreeQ(List(a,d),x),NegativeIntegerQ(n)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true))),$p(x,SymbolHead)),
    Condition(Times(c,x,Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,Times(CN1,C1))),Power(d,CN1)),And(FreeQ(List(a,c,d,n,p),x),ZeroQ(Plus(Times(n,Plus(p,Times(CN1,C1))),C1))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(p,true))),$p(x,SymbolHead)),
    Condition(Times(Power(a,p),ExpIntegralEi(Times(CN1,p,ProductLog(Times(a,Power(x,n))))),Power(Times(d,n),CN1)),And(And(FreeQ(List(a,d),x),IntegerQ(Power(n,CN1))),ZeroQ(Plus(p,Power(n,CN1)))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p))),$p(x,SymbolHead)),
    Condition(Times(Rt(Times(Pi,c,n),C2),Power(Times(d,n,Power(a,Power(n,CN1)),Power(c,Power(n,CN1))),CN1),Erfi(Times(Sqrt(Times(c,ProductLog(Times(a,Power(x,n))))),Power(Rt(Times(c,n),C2),CN1)))),And(And(And(FreeQ(List(a,c,d),x),IntegerQ(Power(n,CN1))),ZeroQ(Plus(p,Times(CN1,C1D2),Power(n,CN1)))),PosQ(Times(c,n))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p))),$p(x,SymbolHead)),
    Condition(Times(Rt(Times(CN1,Pi,c,n),C2),Power(Times(d,n,Power(a,Power(n,CN1)),Power(c,Power(n,CN1))),CN1),Erf(Times(Sqrt(Times(c,ProductLog(Times(a,Power(x,n))))),Power(Rt(Times(CN1,c,n),C2),CN1)))),And(And(And(FreeQ(List(a,c,d),x),IntegerQ(Power(n,CN1))),ZeroQ(Plus(p,Times(CN1,C1D2),Power(n,CN1)))),NegQ(Times(c,n))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true))),$p(x,SymbolHead)),
    Condition(Plus(Times(c,x,Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,Times(CN1,C1))),Power(d,CN1)),Times(CN1,c,Plus(Times(n,Plus(p,Times(CN1,C1))),C1),Int(Times(Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,Times(CN1,C1))),Power(Plus(d,Times(d,ProductLog(Times(a,Power(x,n))))),CN1)),x))),And(And(And(FreeQ(List(a,c,d),x),RationalQ(n,p)),Greater(n,C0)),Greater(Plus(Times(n,Plus(p,Times(CN1,C1))),C1),C0)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true))),$p(x,SymbolHead)),
    Condition(Plus(Times(x,Power(Times(c,ProductLog(Times(a,Power(x,n)))),p),Power(Times(d,Plus(Times(n,p),C1)),CN1)),Times(CN1,Power(Times(c,Plus(Times(n,p),C1)),CN1),Int(Times(Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,C1)),Power(Plus(d,Times(d,ProductLog(Times(a,Power(x,n))))),CN1)),x))),And(And(And(FreeQ(List(a,c,d),x),RationalQ(n,p)),Greater(n,C0)),Less(Plus(Times(n,p),C1),C0)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n)),$p(a,true))),$p(c,true)),$p(p,true))),$p(x,SymbolHead)),
    Condition(Times(CN1,Subst(Int(Times(Power(Times(c,ProductLog(Times(a,Power(x,Times(CN1,n))))),p),Power(Times(Power(x,C2),Plus(d,Times(d,ProductLog(Times(a,Power(x,Times(CN1,n))))))),CN1)),x),x,Power(x,CN1))),And(FreeQ(List(a,c,d,p),x),NegativeIntegerQ(n)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times($p(a,true),$p(x))),$p(d,true)),$p(d)),CN1),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Plus(Times(Power(x,Plus(m,C1)),Power(Times(d,Plus(m,C1),ProductLog(Times(a,x))),CN1)),Times(CN1,m,Power(Plus(m,C1),CN1),Int(Times(Power(x,m),Power(Times(ProductLog(Times(a,x)),Plus(d,Times(d,ProductLog(Times(a,x))))),CN1)),x))),And(And(FreeQ(List(a,d),x),RationalQ(m)),Greater(m,C0)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times($p(a,true),$p(x))),$p(d,true)),$p(d)),CN1),Power($p(x),CN1)),$p(x,SymbolHead)),
    Condition(Times(Log(ProductLog(Times(a,x))),Power(d,CN1)),FreeQ(List(a,d),x))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times($p(a,true),$p(x))),$p(d,true)),$p(d)),CN1),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Plus(Times(Power(x,Plus(m,C1)),Power(Times(d,Plus(m,C1)),CN1)),Times(CN1,Int(Times(Power(x,m),ProductLog(Times(a,x)),Power(Plus(d,Times(d,ProductLog(Times(a,x)))),CN1)),x))),And(And(FreeQ(List(a,d),x),RationalQ(m)),Less(m,CN1)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times($p(a,true),$p(x))),$p(d,true)),$p(d)),CN1),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(Power(x,m),Gamma(Plus(m,C1),Times(CN1,Plus(m,C1),ProductLog(Times(a,x)))),Power(Times(a,d,Plus(m,C1),Power(E,Times(m,ProductLog(Times(a,x)))),Power(Times(CN1,Plus(m,C1),ProductLog(Times(a,x))),m)),CN1)),And(FreeQ(List(a,d,m),x),Not(IntegerQ(m))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power($p(x),CN1)),$p(x,SymbolHead)),
    Condition(Times(Log(ProductLog(Times(a,Power(x,n)))),Power(Times(d,n),CN1)),FreeQ(List(a,d,n),x))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(CN1,Subst(Int(Power(Times(Power(x,Plus(m,C2)),Plus(d,Times(d,ProductLog(Times(a,Power(x,Times(CN1,n))))))),CN1),x),x,Power(x,CN1))),And(And(And(FreeQ(List(a,d),x),IntegersQ(m,n)),Less(n,C0)),NonzeroQ(Plus(m,C1))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true)),Power($p(x),CN1)),$p(x,SymbolHead)),
    Condition(Times(Power(Times(c,ProductLog(Times(a,Power(x,n)))),p),Power(Times(d,n,p),CN1)),FreeQ(List(a,c,d,n,p),x))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(c,Power(x,Plus(m,C1)),Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,Times(CN1,C1))),Power(Times(d,Plus(m,C1)),CN1)),And(And(FreeQ(List(a,c,d,m,n,p),x),NonzeroQ(Plus(m,C1))),ZeroQ(Plus(m,Times(n,Plus(p,Times(CN1,C1))),C1))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(Power(a,p),ExpIntegralEi(Times(CN1,p,ProductLog(Times(a,Power(x,n))))),Power(Times(d,n),CN1)),And(And(FreeQ(List(a,d,m,n),x),IntegerQ(p)),ZeroQ(Plus(m,Times(n,p),C1))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(Power(a,Plus(p,Times(CN1,C1D2))),Power(c,Plus(p,Times(CN1,C1D2))),Rt(Times(Pi,c,Power(Plus(p,Times(CN1,C1D2)),CN1)),C2),Erf(Times(Sqrt(Times(c,ProductLog(Times(a,Power(x,n))))),Power(Rt(Times(c,Power(Plus(p,Times(CN1,C1D2)),CN1)),C2),CN1))),Power(Times(d,n),CN1)),And(And(And(And(FreeQ(List(a,c,d,m,n),x),NonzeroQ(Plus(m,C1))),IntegerQ(Plus(p,Times(CN1,C1D2)))),ZeroQ(Plus(m,Times(n,Plus(p,Times(CN1,C1D2))),C1))),PosQ(Times(c,Power(Plus(p,Times(CN1,C1D2)),CN1)))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(Power(a,Plus(p,Times(CN1,C1D2))),Power(c,Plus(p,Times(CN1,C1D2))),Rt(Times(CN1,Pi,c,Power(Plus(p,Times(CN1,C1D2)),CN1)),C2),Erfi(Times(Sqrt(Times(c,ProductLog(Times(a,Power(x,n))))),Power(Rt(Times(CN1,c,Power(Plus(p,Times(CN1,C1D2)),CN1)),C2),CN1))),Power(Times(d,n),CN1)),And(And(And(And(FreeQ(List(a,c,d,m,n),x),NonzeroQ(Plus(m,C1))),IntegerQ(Plus(p,Times(CN1,C1D2)))),ZeroQ(Plus(m,Times(n,Plus(p,Times(CN1,C1D2))),C1))),NegQ(Times(c,Power(Plus(p,Times(CN1,C1D2)),CN1)))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Plus(Times(c,Power(x,Plus(m,C1)),Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,Times(CN1,C1))),Power(Times(d,Plus(m,C1)),CN1)),Times(CN1,c,Plus(m,Times(n,Plus(p,Times(CN1,C1))),C1),Power(Plus(m,C1),CN1),Int(Times(Power(x,m),Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,Times(CN1,C1))),Power(Plus(d,Times(d,ProductLog(Times(a,Power(x,n))))),CN1)),x))),And(And(And(FreeQ(List(a,c,d,m,n,p),x),NonzeroQ(Plus(m,C1))),RationalQ(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))))),Greater(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))),C1)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Plus(Times(Power(x,Plus(m,C1)),Power(Times(c,ProductLog(Times(a,Power(x,n)))),p),Power(Times(d,Plus(m,Times(n,p),C1)),CN1)),Times(CN1,Plus(m,C1),Power(Times(c,Plus(m,Times(n,p),C1)),CN1),Int(Times(Power(x,m),Power(Times(c,ProductLog(Times(a,Power(x,n)))),Plus(p,C1)),Power(Plus(d,Times(d,ProductLog(Times(a,Power(x,n))))),CN1)),x))),And(And(And(FreeQ(List(a,c,d,m,n,p),x),NonzeroQ(Plus(m,C1))),RationalQ(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))))),Less(Simplify(Plus(p,Times(Plus(m,C1),Power(n,CN1)))),C0)))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times($p(a,true),$p(x))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times($p(a,true),$p(x))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(Power(x,m),Gamma(Plus(m,p,C1),Times(CN1,Plus(m,C1),ProductLog(Times(a,x)))),Power(Times(c,ProductLog(Times(a,x))),p),Power(Times(a,d,Plus(m,C1),Power(E,Times(m,ProductLog(Times(a,x)))),Power(Times(CN1,Plus(m,C1),ProductLog(Times(a,x))),Plus(m,p))),CN1)),And(FreeQ(List(a,c,d,m,p),x),NonzeroQ(Plus(m,C1))))),
SetDelayed(Int(Times(Power(Plus(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(d,true)),$p(d)),CN1),Power(Times(ProductLog(Times(Power($p(x),$p(n,true)),$p(a,true))),$p(c,true)),$p(p,true)),Power($p(x),$p(m,true))),$p(x,SymbolHead)),
    Condition(Times(CN1,Subst(Int(Times(Power(Times(c,ProductLog(Times(a,Power(x,Times(CN1,n))))),p),Power(Times(Power(x,Plus(m,C2)),Plus(d,Times(d,ProductLog(Times(a,Power(x,Times(CN1,n))))))),CN1)),x),x,Power(x,CN1))),And(And(And(FreeQ(List(a,c,d,p),x),NonzeroQ(Plus(m,C1))),IntegersQ(m,n)),Less(n,C0)))),
SetDelayed(Int($p(u),$p(x,SymbolHead)),
    Condition(Subst(Int(SimplifyIntegrand(Times(Plus(x,C1),Power(E,x),SubstFor(ProductLog(x),u,x)),x),x),x,ProductLog(x)),FunctionOfQ(ProductLog(x),u,x)))
  );
}

 

Ads help maintain this website.