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;
/** 
 * UtilityFunctions rules from the Rubi -
 * rule-based integrator.
 *  
 */
public class UtilityFunctions5 { 
  public static IAST RULES = List( 
SetDelayed(FractionalPowerOfLinear($p(u),$p(n),$p(v),$p(x)),
    If(Or(AtomQ(u),FreeQ(u,x)),List(n,v),If(CalculusQ(u),False,If(And(And(FractionalPowerQ(u),LinearQ(Part(u,C1),x)),Or(FalseQ(v),ZeroQ(Plus(Part(u,C1),Times(CN1,v))))),List(LCM(Denominator(Part(u,C2)),n),Part(u,C1)),Catch(Module(List(Set($s("lst"),List(n,v))),CompoundExpression(Scan(Function(If(FalseQ(Set($s("lst"),FractionalPowerOfLinear(Slot1,Part($s("lst"),C1),Part($s("lst"),C2),x))),Throw(False))),u),$s("lst")))))))),
SetDelayed(InverseFunctionOfLinear($p(u),$p(x,SymbolHead)),
    If(Or(Or(AtomQ(u),CalculusQ(u)),FreeQ(u,x)),False,If(And(InverseFunctionQ(u),LinearQ(Part(u,C1),x)),u,Module(List($s("tmp")),Catch(CompoundExpression(Scan(Function(If(NotFalseQ(Set($s("tmp"),InverseFunctionOfLinear(Slot1,x))),Throw($s("tmp")))),u),False)))))),
SetDelayed(TryPureTanSubst($p(u),$p(x,SymbolHead)),
    Not(MatchQ(u,Condition($($p("F"),Times($p(c,true),Plus($p(a,true),Times($p(b,true),$($p("G"),$p(v)))))),And(And(And(FreeQ(List(a,b,c),x),MemberQ(List($s("ArcTan"),$s("ArcCot"),$s("ArcTanh"),$s("ArcCoth")),$s("§f"))),MemberQ(List($s("Tan"),$s("Cot"),$s("Tanh"),$s("Coth")),$s("§g"))),LinearQ(v,x)))))),
SetDelayed(TryTanhSubst($p(u),$p(x,SymbolHead)),
    And(And(And(And(And(And(FalseQ(FunctionOfLinear(u,x)),Not(MatchQ(u,Condition(Times($p(r,true),Power(Plus($p(s),$p(t)),$p(n,true))),And(IntegerQ(n),Greater(n,C0)))))),Not(MatchQ(u,Log($p(v))))),Not(MatchQ(u,Condition(Power(Plus($p(a),Times($p(b,true),Power($($p(f),x),$p(n)))),CN1),And(And(SinhCoshQ(f),IntegerQ(n)),Greater(n,C2)))))),Not(MatchQ(u,Condition(Times($($p(f),Times($p(m,true),x)),$($p(g),Times($p(n,true),x))),And(And(IntegersQ(m,n),SinhCoshQ(f)),SinhCoshQ(g)))))),Not(MatchQ(u,Condition(Times($p(r,true),Power(Times($p(a,true),Power($p(s),$p(m))),$p(p))),And(FreeQ(List(a,m,p),x),Not(And(SameQ(m,C2),Or(SameQ(s,Sech(x)),SameQ(s,Csch(x)))))))))),SameQ(u,ExpandIntegrand(u,x)))),
SetDelayed(TryPureTanhSubst($p(u),$p(x,SymbolHead)),
    And(And(And(And(And(Not(MatchQ(u,Log($p(v)))),Not(MatchQ(u,Condition(ArcTanh(Times($p(a,true),Tanh($p(v)))),FreeQ(a,x))))),Not(MatchQ(u,Condition(ArcTanh(Times($p(a,true),Coth($p(v)))),FreeQ(a,x))))),Not(MatchQ(u,Condition(ArcCoth(Times($p(a,true),Tanh($p(v)))),FreeQ(a,x))))),Not(MatchQ(u,Condition(ArcCoth(Times($p(a,true),Coth($p(v)))),FreeQ(a,x))))),SameQ(u,ExpandIntegrand(u,x)))),
SetDelayed(InertTrigQ($p(f)),
    MemberQ(List($s("§sin"),$s("§cos"),$s("§tan"),$s("§cot"),$s("§sec"),$s("§csc")),f)),
SetDelayed(InertTrigQ($p(f),$p(g)),
    If(SameQ(f,g),InertTrigQ(f),Or(InertReciprocalQ(f,g),InertReciprocalQ(g,f)))),
SetDelayed(InertTrigQ($p(f),$p(g),$p(h)),
    And(InertTrigQ(f,g),InertTrigQ(g,h))),
SetDelayed(InertReciprocalQ($p(f),$p(g)),
    Or(Or(And(SameQ(f,$s("§sin")),SameQ(g,$s("§csc"))),And(SameQ(f,$s("§cos")),SameQ(g,$s("§sec")))),And(SameQ(f,$s("§tan")),SameQ(g,$s("§cot"))))),
SetDelayed(InertTrigFreeQ($p(u)),
    And(And(And(And(And(FreeQ(u,$s("§sin")),FreeQ(u,$s("§cos"))),FreeQ(u,$s("§tan"))),FreeQ(u,$s("§cot"))),FreeQ(u,$s("§sec"))),FreeQ(u,$s("§csc")))),
SetDelayed(ActivateTrig($p(u)),
    ReplaceAll(u,List(Rule($s("§sin"),$s("Sin")),Rule($s("§cos"),$s("Cos")),Rule($s("§tan"),$s("Tan")),Rule($s("§cot"),$s("Cot")),Rule($s("§sec"),$s("Sec")),Rule($s("§csc"),$s("Csc"))))),
SetDelayed(DeactivateTrig($p(u),$p(x)),
    FixInertTrigFunction(DeactivateTrigAux(u,x),x)),
SetDelayed(DeactivateTrigAux($p(u),$p(x)),
    If(AtomQ(u),u,If(And(TrigQ(u),LinearQ(Part(u,C1),x)),Module(List(Set(v,ExpandToSum(Part(u,C1),x))),If(SinQ(u),$($s("§sin"),v),If(CosQ(u),$($s("§cos"),v),If(TanQ(u),$($s("§tan"),v),If(CotQ(u),$($s("§cot"),v),If(SecQ(u),$($s("§sec"),v),$($s("§csc"),v))))))),If(And(HyperbolicQ(u),LinearQ(Part(u,C1),x)),Module(List(Set(v,ExpandToSum(Times(CI,Part(u,C1)),x))),If(SinhQ(u),Times(CN1,CI,$($s("§sin"),v)),If(CoshQ(u),$($s("§cos"),v),If(TanhQ(u),Times(CN1,CI,$($s("§tan"),v)),If(CothQ(u),Times(CI,$($s("§cot"),v)),If(SechQ(u),$($s("§sec"),v),Times(CI,$($s("§csc"),v)))))))),Map(Function(DeactivateTrigAux(Slot1,x)),u))))),
SetDelayed(FixInertTrigFunction(Times($p(a),$p(u)),$p(x)),
    Condition(Times(a,FixInertTrigFunction(u,x)),FreeQ(a,x))),
SetDelayed(FixInertTrigFunction(Times(Power(Times(Plus($p(b),$p(v)),$p(a)),$p(n)),$p(u,true)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power(Plus(Times(a,b),Times(a,v)),n)),x),And(FreeQ(List(a,b,n),x),Not(FreeQ(v,x))))),
SetDelayed(FixInertTrigFunction(Times(Power(Times($($s("§sin"),$p(w)),$p(c,true)),$p(n,true)),Power($($s("§sec"),$p(v)),$p(m,true))),$p(x)),
    Condition(FixInertTrigFunction(Times(Power($($s("§cos"),v),Times(CN1,m)),Power(Times(c,$($s("§sin"),w)),n)),x),And(FreeQ(List(c,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Times($($s("§sin"),$p(w)),$p(c,true)),$p(n,true)),Power($($s("§csc"),$p(v)),$p(m,true))),$p(x)),
    Condition(FixInertTrigFunction(Times(Power($($s("§sin"),v),Times(CN1,m)),Power(Times(c,$($s("§sin"),w)),n)),x),And(FreeQ(List(c,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Times($($s("§cos"),$p(w)),$p(c,true)),$p(n,true)),Power($($s("§sec"),$p(v)),$p(m,true))),$p(x)),
    Condition(FixInertTrigFunction(Times(Power($($s("§cos"),v),Times(CN1,m)),Power(Times(c,$($s("§cos"),w)),n)),x),And(FreeQ(List(c,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Times($($s("§cos"),$p(w)),$p(c,true)),$p(n,true)),Power($($s("§csc"),$p(v)),$p(m,true))),$p(x)),
    Condition(FixInertTrigFunction(Times(Power($($s("§sin"),v),Times(CN1,m)),Power(Times(c,$($s("§cos"),w)),n)),x),And(FreeQ(List(c,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§sec"),$p(v)),$p(m,true)),Power($($s("§sec"),$p(w)),$p(n,true))),$p(x)),
    Condition(FixInertTrigFunction(Times(Power($($s("§cos"),v),Times(CN1,m)),Power($($s("§cos"),w),Times(CN1,n))),x),IntegersQ(m,n))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§csc"),$p(v)),$p(m,true)),Power($($s("§csc"),$p(w)),$p(n,true))),$p(x)),
    Condition(FixInertTrigFunction(Times(Power($($s("§sin"),v),Times(CN1,m)),Power($($s("§sin"),w),Times(CN1,n))),x),IntegersQ(m,n))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times(Power(Times($($s("§sin"),$p(w)),$p(c,true)),$p(p)),$p(b,true)),$p(a)),$p(n,true)),Power($($s("§cot"),$p(v)),$p(m,true))),$p(x)),
    Condition(FixInertTrigFunction(Times(Power($($s("§tan"),v),Times(CN1,m)),Power(Plus(a,Times(b,Power(Times(c,$($s("§sin"),w)),p))),n)),x),And(FreeQ(List(a,b,c,n,p),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times($($s("§sin"),$p(w)),$p(b,true)),$p(a)),$p(n,true)),Power($($s("§tan"),$p(v)),$p(m,true)),$p(u,true)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sin"),v),m),Power(Power($($s("§cos"),v),m),CN1),Power(Plus(a,Times(b,$($s("§sin"),w))),n)),x),And(FreeQ(List(a,b,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times($($s("§sin"),$p(w)),$p(b,true)),$p(a)),$p(n,true)),Power($($s("§cot"),$p(v)),$p(m,true)),$p(u,true)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cos"),v),m),Power(Power($($s("§sin"),v),m),CN1),Power(Plus(a,Times(b,$($s("§sin"),w))),n)),x),And(FreeQ(List(a,b,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§sec"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cos"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§sin"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§csc"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sin"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§sin"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times(Power(Times($($s("§cos"),$p(w)),$p(c,true)),$p(p)),$p(b,true)),$p(a)),$p(n,true)),Power($($s("§tan"),$p(v)),$p(m,true))),$p(x)),
    Condition(FixInertTrigFunction(Times(Power($($s("§cot"),v),Times(CN1,m)),Power(Plus(a,Times(b,Power(Times(c,$($s("§cos"),w)),p))),n)),x),And(FreeQ(List(a,b,c,n,p),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times($($s("§cos"),$p(w)),$p(b,true)),$p(a)),$p(n,true)),Power($($s("§tan"),$p(v)),$p(m,true)),$p(u,true)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sin"),v),m),Power(Power($($s("§cos"),v),m),CN1),Power(Plus(a,Times(b,$($s("§cos"),w))),n)),x),And(FreeQ(List(a,b,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times($($s("§cos"),$p(w)),$p(b,true)),$p(a)),$p(n,true)),Power($($s("§cot"),$p(v)),$p(m,true)),$p(u,true)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cos"),v),m),Power(Power($($s("§sin"),v),m),CN1),Power(Plus(a,Times(b,$($s("§cos"),w))),n)),x),And(FreeQ(List(a,b,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§sec"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cos"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§cos"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§csc"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sin"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§cos"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§cot"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§tan"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§tan"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§sec"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cos"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§tan"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§csc"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sin"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§tan"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§tan"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cot"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§cot"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§sec"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cos"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§cot"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§csc"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sin"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§cot"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§cos"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sec"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§sec"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§cot"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§tan"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§sec"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§csc"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sin"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§sec"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§sin"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§csc"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§csc"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§tan"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cot"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§csc"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power($($s("§sec"),$p(v)),$p(m,true)),$p(u,true),$p(w)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cos"),v),Times(CN1,m)),w),x),And(InertTrigSumQ(w,$s("§csc"),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times($($s("§sin"),$p(v)),$p(a,true)),Times($($s("§cos"),$p(v)),$p(b,true))),$p(n,true)),Power($($s("§tan"),$p(v)),$p(m,true)),$p(u,true)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sin"),v),m),Power($($s("§cos"),v),Times(CN1,m)),Power(Plus(Times(a,$($s("§sin"),v)),Times(b,$($s("§cos"),v))),n)),x),And(FreeQ(List(a,b,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times($($s("§sin"),$p(v)),$p(a,true)),Times($($s("§cos"),$p(v)),$p(b,true))),$p(n,true)),Power($($s("§cot"),$p(v)),$p(m,true)),$p(u,true)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cos"),v),m),Power($($s("§sin"),v),Times(CN1,m)),Power(Plus(Times(a,$($s("§sin"),v)),Times(b,$($s("§cos"),v))),n)),x),And(FreeQ(List(a,b,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times($($s("§sin"),$p(v)),$p(a,true)),Times($($s("§cos"),$p(v)),$p(b,true))),$p(n,true)),Power($($s("§sec"),$p(v)),$p(m,true)),$p(u,true)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§cos"),v),Times(CN1,m)),Power(Plus(Times(a,$($s("§sin"),v)),Times(b,$($s("§cos"),v))),n)),x),And(FreeQ(List(a,b,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Power(Plus(Times($($s("§sin"),$p(v)),$p(a,true)),Times($($s("§cos"),$p(v)),$p(b,true))),$p(n,true)),Power($($s("§csc"),$p(v)),$p(m,true)),$p(u,true)),$p(x)),
    Condition(FixInertTrigFunction(Times(u,Power($($s("§sin"),v),Times(CN1,m)),Power(Plus(Times(a,$($s("§sin"),v)),Times(b,$($s("§cos"),v))),n)),x),And(FreeQ(List(a,b,n),x),IntegerQ(m)))),
SetDelayed(FixInertTrigFunction(Times(Plus(Times($($p(g),$p(v)),$p("B",true)),Times(Power($($p(g),$p(v)),C2),$p("C",true)),$p("A",true)),Power($($p(f),$p(v)),$p(m,true))),$p(x)),
    Condition(Times(Power($(g,v),Times(CN1,m)),Plus($s("A"),Times($s("B"),$(g,v)),Times($s("C"),Power($(g,v),C2)))),And(And(FreeQ(List($s("A"),$s("B"),$s("C")),x),IntegerQ(m)),Or(InertReciprocalQ(f,g),InertReciprocalQ(g,f))))),
SetDelayed(FixInertTrigFunction(Times(Plus(Times(Power($($p(g),$p(v)),C2),$p("C",true)),$p("A",true)),Power($($p(f),$p(v)),$p(m,true))),$p(x)),
    Condition(Times(Power($(g,v),Times(CN1,m)),Plus($s("A"),Times($s("C"),Power($(g,v),C2)))),And(And(FreeQ(List($s("A"),$s("C")),x),IntegerQ(m)),Or(InertReciprocalQ(f,g),InertReciprocalQ(g,f))))),
SetDelayed(FixInertTrigFunction(Times(Plus(Times($($p(g),$p(v)),$p("B",true)),Times(Power($($p(g),$p(v)),C2),$p("C",true)),$p("A",true)),Power(Plus(Times($($p(g),$p(v)),$p(b,true)),$p(a,true)),$p(n,true)),Power($($p(f),$p(v)),$p(m,true))),$p(x)),
    Condition(Times(Power($(g,v),Times(CN1,m)),Plus($s("A"),Times($s("B"),$(g,v)),Times($s("C"),Power($(g,v),C2))),Power(Plus(a,Times(b,$(g,v))),n)),And(And(FreeQ(List(a,b,$s("A"),$s("B"),$s("C"),n),x),IntegerQ(m)),Or(InertReciprocalQ(f,g),InertReciprocalQ(g,f))))),
SetDelayed(FixInertTrigFunction(Times(Plus(Times(Power($($p(g),$p(v)),C2),$p("C",true)),$p("A",true)),Power(Plus(Times($($p(g),$p(v)),$p(b,true)),$p(a,true)),$p(n,true)),Power($($p(f),$p(v)),$p(m,true))),$p(x)),
    Condition(Times(Power($(g,v),Times(CN1,m)),Plus($s("A"),Times($s("C"),Power($(g,v),C2))),Power(Plus(a,Times(b,$(g,v))),n)),And(And(FreeQ(List(a,b,$s("A"),$s("C"),n),x),IntegerQ(m)),Or(InertReciprocalQ(f,g),InertReciprocalQ(g,f))))),
SetDelayed(FixInertTrigFunction($p(u),$p(x)),
    u),
SetDelayed(InertTrigSumQ($p(u),$p("func"),$p(x)),
    Or(MatchQ(u,Condition(Power(Plus($p(a),Times($p(b,true),Power(Times($p(c,true),$($s("func"),$p(w))),$p(p,true)))),$p(n,true)),FreeQ(List(a,b,c,n,p),x))),MatchQ(u,Condition(Power(Plus($p(a,true),Times($p(b,true),Power(Times($p(d,true),$($s("func"),$p(w))),$p(p,true))),Times($p(c,true),Power(Times($p(d,true),$($s("func"),$p(w))),$p(q,true)))),$p(n,true)),FreeQ(List(a,b,c,d,n,p,q),x))))),
SetDelayed(PiecewiseLinearQ($p(u),$p(v),$p(x,SymbolHead)),
    And(PiecewiseLinearQ(u,x),PiecewiseLinearQ(v,x))),
SetDelayed(PiecewiseLinearQ($p(u),$p(x,SymbolHead)),
    Or(Or(LinearQ(u,x),MatchQ(u,Condition(Log(Times($p(c,true),Power($p("F"),$p(v)))),And(FreeQ(List($s("§f"),c),x),LinearQ(v,x))))),MatchQ(u,Condition($($p("F"),$($p("G"),$p(v))),And(LinearQ(v,x),MemberQ(List(List($s("ArcTanh"),$s("Tanh")),List($s("ArcTanh"),$s("Coth")),List($s("ArcCoth"),$s("Coth")),List($s("ArcCoth"),$s("Tanh")),List($s("ArcTan"),$s("Tan")),List($s("ArcTan"),$s("Cot")),List($s("ArcCot"),$s("Cot")),List($s("ArcCot"),$s("Tan"))),List($s("§f"),$s("§g")))))))),
SetDelayed(Divides($p(y),$p(u),$p(x,SymbolHead)),
    Module(List(Set(v,Simplify(Times(u,Power(y,CN1))))),If(FreeQ(v,x),v,False))),
SetDelayed(DerivativeDivides($p(y),$p(u),$p(x,SymbolHead)),
    If(MatchQ(y,Condition(Times($p(a,true),x),FreeQ(a,x))),False,If(If(PolynomialQ(y,x),And(PolynomialQ(u,x),Equal(Exponent(u,x),Plus(Exponent(y,x),Times(CN1,C1)))),EasyDQ(y,x)),Module(List(Set(v,Block(List(Set($s("ShowSteps"),False)),D(y,x)))),If(ZeroQ(v),False,CompoundExpression(Set(v,Simplify(Times(u,Power(v,CN1)))),If(FreeQ(v,x),v,False)))),False))),
SetDelayed(EasyDQ(Times(Power($p(x),$p(m,true)),$p(u,true)),$p(x,SymbolHead)),
    Condition(EasyDQ(u,x),FreeQ(m,x))),
SetDelayed(EasyDQ($p(u),$p(x,SymbolHead)),
    If(Or(Or(AtomQ(u),FreeQ(u,x)),Equal(Length(u),C0)),True,If(CalculusQ(u),False,If(Equal(Length(u),C1),EasyDQ(Part(u,C1),x),If(Or(BinomialQ(u,x),ProductOfLinearPowersQ(u,x)),True,If(And(RationalFunctionQ(u,x),SameQ(RationalFunctionExponents(u,x),List(C1,C1))),True,If(ProductQ(u),If(FreeQ(First(u),x),EasyDQ(Rest(u),x),If(FreeQ(Rest(u),x),EasyDQ(First(u),x),False)),If(SumQ(u),And(EasyDQ(First(u),x),EasyDQ(Rest(u),x)),If(Equal(Length(u),C2),If(FreeQ(Part(u,C1),x),EasyDQ(Part(u,C2),x),If(FreeQ(Part(u,C2),x),EasyDQ(Part(u,C1),x),False)),False))))))))),
SetDelayed(ProductOfLinearPowersQ($p(u),$p(x,SymbolHead)),
    Or(Or(FreeQ(u,x),MatchQ(u,Condition(Power($p(v),$p(n,true)),And(LinearQ(v,x),FreeQ(n,x))))),And(And(ProductQ(u),ProductOfLinearPowersQ(First(u),x)),ProductOfLinearPowersQ(Rest(u),x)))),
SetDelayed(Rt($p(u),$p(n,IntegerHead)),
    RtAux(TogetherSimplify(u),n)),
SetDelayed(RtAux(Power($p(u),$p(m)),$p(n)),
    Condition(Power(RtAux(Power(u,Times(CN1,m)),n),CN1),And(RationalQ(m),Less(m,C0)))),
SetDelayed(RtAux(Times(Power($p(u),$p(w)),$p(v,true)),$p(n)),
    Condition(Module(List(Set(m,Numerator(NumericFactor(w)))),Condition(Times(RtAux(v,n),Power(RtAux(Power(u,Times(w,Power(m,CN1))),Times(n,Power(GCD(m,n),CN1))),Times(m,Power(GCD(m,n),CN1)))),Greater(m,C1))),Not(NegativeOrZeroQ(v)))),
SetDelayed(RtAux($p(u),$p(n)),
    Condition(Map(Function(RtAux(Slot1,n)),u),And(ProductQ(u),OddQ(n)))),
SetDelayed(RtAux($p(u),$p(n)),
    Condition(Module(List(i),Catch(CompoundExpression(CompoundExpression(Do(If(PositiveQ(Part(u,i)),Throw(Times(RtAux(Part(u,i),n),RtAux(Delete(u,i),n)))),List(i,C1,Length(u))),Do(If(And(NegativeQ(Part(u,i)),NonzeroQ(Plus(Part(u,i),C1))),Throw(Times(RtAux(Times(CN1,Part(u,i)),n),RtAux(Times(CN1,Delete(u,i)),n)))),List(i,C1,Length(u)))),If(SameQ(Part(u,C1),CN1),CompoundExpression(CompoundExpression(CompoundExpression(Do(If(And(SumQ(Part(u,i)),Or(NegQ(Part(u,i,C1)),NegQ(Part(u,i,C2)))),Throw(Times(RtAux(Plus(Times(CN1,First(Part(u,i))),Times(CN1,Rest(Part(u,i)))),n),RtAux(Times(CN1,Delete(u,i)),n)))),List(i,C2,Length(u))),Do(If(And(And(And(PowerQ(Part(u,i)),OddQ(Part(u,i,C2))),SumQ(Part(u,i,C1))),Or(NegQ(Part(u,i,C1,C1)),NegQ(Part(u,i,C1,C2)))),Throw(Times(RtAux(Power(Plus(Times(CN1,First(Part(u,i,C1))),Times(CN1,Rest(Part(u,i,C1)))),Part(u,i,C2)),n),RtAux(Times(CN1,Delete(u,i)),n)))),List(i,C2,Length(u)))),Do(If(AtomQ(Part(u,i)),Throw(Times(RtAux(Times(CN1,Part(u,i)),n),RtAux(Times(CN1,Delete(u,i)),n)))),List(i,C2,Length(u)))),Times(RtAux(Times(CN1,Part(u,C2)),n),RtAux(Drop(u,C2),n))),CompoundExpression(Do(If(Not(FreeQ(Delete(u,i),RtAux(Times(CN1,Part(u,i)),n))),Throw(Times(RtAux(Times(CN1,Part(u,i)),n),RtAux(Times(CN1,Delete(u,i)),n)))),List(i,C1,Length(u))),Map(Function(RtAux(Slot1,n)),u)))))),And(And(ProductQ(u),EvenQ(n)),Not(And(SameQ(Part(u,C1),CN1),Equal(Length(u),C2)))))),
SetDelayed(RtAux($p(u),$p(n)),
    Condition(Times(CN1,RtAux(Times(CN1,u),n)),And(OddQ(n),NegativeQ(u)))),
SetDelayed(RtAux($p(u),$p(n)),
    Power(u,Power(n,CN1))),
SetDelayed(IntSum($p(u),$p(x,SymbolHead)),
    Plus(Simp(Times(FreeTerms(u,x),x),x),IntTerm(NonfreeTerms(u,x),x))),
SetDelayed(IntTerm(Times(Power($p(v),CN1),$p(c,true)),$p(x,SymbolHead)),
    Condition(Simp(Times(c,Log(RemoveContent(v,x)),Power(Coefficient(v,x,C1),CN1)),x),And(FreeQ(c,x),LinearQ(v,x)))),
SetDelayed(IntTerm(Times(Power($p(v),$p(m,true)),$p(c,true)),$p(x,SymbolHead)),
    Condition(Simp(Times(c,Power(v,Plus(m,C1)),Power(Times(Coefficient(v,x,C1),Plus(m,C1)),CN1)),x),And(And(FreeQ(List(c,m),x),NonzeroQ(Plus(m,C1))),LinearQ(v,x)))),
SetDelayed(IntTerm($p(u),$p(x,SymbolHead)),
    Condition(Map(Function(IntTerm(Slot1,x)),u),SumQ(u))),
SetDelayed(IntTerm($p(u),$p(x,SymbolHead)),
    Dist(FreeFactors(u,x),Int(NonfreeFactors(u,x),x),x)),
SetDelayed(SimplerIntegrandQ($p(u),$p(v),$p(x,SymbolHead)),
    Module(List(Set($s("lst"),CancelCommonFactors(u,v)),$s("u1"),$s("v1")),CompoundExpression(CompoundExpression(Set($s("u1"),Part($s("lst"),C1)),Set($s("v1"),Part($s("lst"),C2))),If(Less(LeafCount($s("u1")),Times(QQ(3L,4L),LeafCount($s("v1")))),True,If(RationalFunctionQ($s("u1"),x),If(RationalFunctionQ($s("v1"),x),Less(Apply($s("Plus"),RationalFunctionExponents($s("u1"),x)),Apply($s("Plus"),RationalFunctionExponents($s("v1"),x))),True),False))))),
SetDelayed(CancelCommonFactors($p(u),$p(v)),
    If(ProductQ(u),If(ProductQ(v),If(MemberQ(v,First(u)),CancelCommonFactors(Rest(u),DeleteCases(v,First(u),C1,C1)),$(Function(List(Times(First(u),Part(Slot1,C1)),Part(Slot1,C2))),CancelCommonFactors(Rest(u),v))),If(MemberQ(u,v),List(DeleteCases(u,v,C1,C1),C1),List(u,v))),If(ProductQ(v),If(MemberQ(v,u),List(C1,DeleteCases(v,u,C1,C1)),List(u,v)),List(u,v)))),
SetDelayed(SumSimplerQ($p(u),$p(v)),
    If(RationalQ(u,v),If(Equal(v,C0),False,If(Greater(v,C0),Less(u,CN1),GreaterEqual(u,Times(CN1,v)))),SumSimplerAuxQ(Expand(u),Expand(v)))),
SetDelayed(SumSimplerAuxQ($p(u),$p(v)),
    Condition(And(Or(RationalQ(First(v)),SumSimplerAuxQ(u,First(v))),Or(RationalQ(Rest(v)),SumSimplerAuxQ(u,Rest(v)))),SumQ(v))),
SetDelayed(SumSimplerAuxQ($p(u),$p(v)),
    Condition(Or(SumSimplerAuxQ(First(u),v),SumSimplerAuxQ(Rest(u),v)),SumQ(u))),
SetDelayed(SumSimplerAuxQ($p(u),$p(v)),
    And(And(UnsameQ(v,C0),SameQ(NonnumericFactors(u),NonnumericFactors(v))),Or(Less(Times(NumericFactor(u),Power(NumericFactor(v),CN1)),CN1D2),And(Equal(Times(NumericFactor(u),Power(NumericFactor(v),CN1)),CN1D2),Less(NumericFactor(u),C0))))),
SetDelayed(SimplerSqrtQ($p(u),$p(v)),
    Module(List(Set($s("sqrtu"),Rt(u,C2)),Set($s("sqrtv"),Rt(v,C2))),If(IntegerQ($s("sqrtu")),If(IntegerQ($s("sqrtv")),Less($s("sqrtu"),$s("sqrtv")),True),If(IntegerQ($s("sqrtv")),False,If(RationalQ(Rt($s("sqrtu"))),If(RationalQ($s("sqrtv")),Less($s("sqrtu"),$s("sqrtv")),True),If(RationalQ($s("sqrtv")),False,If(PosQ(u),If(PosQ(v),Less(LeafCount($s("sqrtu")),LeafCount($s("sqrtv"))),True),If(PosQ(v),False,Less(LeafCount($s("sqrtu")),LeafCount($s("sqrtv")))))))))))
  );
}

 

Ads help maintain this website.