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 IntegrationRulesForMiscellaneousExpressions7 { 
  public static IAST RULES = List( 
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($p(v),$p(m,true)),$p(a,true)),Times(Power($p(v),$p(n,true)),$p(b,true))),$p(p)),$p(u,true))),
    Condition(Times(u,Power(v,Times(m,p)),Power(TrigSimplifyAux(Plus(a,Times(b,Power(v,Plus(n,Times(CN1,m)))))),p)),And(And(And(InertTrigQ(v),IntegerQ(p)),RationalQ(m,n)),Less(m,n)))),
SetDelayed(TrigSimplifyAux(Plus(Times(Power($($s("§cos"),$p(u)),C2),$p(a,true)),Times(Power($($s("§sin"),$p(u)),C2),$p(b,true)),$p(v,true))),
    Condition(Plus(a,v),SameQ(a,b))),
SetDelayed(TrigSimplifyAux(Plus(Times(Power($($s("§sec"),$p(u)),C2),$p(a,true)),Times(Power($($s("§tan"),$p(u)),C2),$p(b,true)),$p(v,true))),
    Condition(Plus(a,v),SameQ(a,Times(CN1,b)))),
SetDelayed(TrigSimplifyAux(Plus(Times(Power($($s("§csc"),$p(u)),C2),$p(a,true)),Times(Power($($s("§cot"),$p(u)),C2),$p(b,true)),$p(v,true))),
    Condition(Plus(a,v),SameQ(a,Times(CN1,b)))),
SetDelayed(TrigSimplifyAux(Power(Plus(Times(Power($($s("§cos"),$p(u)),C2),$p(a,true)),Times(Power($($s("§sin"),$p(u)),C2),$p(b,true)),$p(v,true)),$p(n))),
    Power(Plus(Times(Plus(b,Times(CN1,a)),Power(Sin(u),C2)),a,v),n)),
SetDelayed(TrigSimplifyAux(Plus(Times(Power($($s("§sin"),$p(z)),C2),$p(v,true)),$p(u),$p(w,true))),
    Condition(Plus(Times(u,Power(Cos(z),C2)),w),SameQ(u,Times(CN1,v)))),
SetDelayed(TrigSimplifyAux(Plus(Times(Power($($s("§cos"),$p(z)),C2),$p(v,true)),$p(u),$p(w,true))),
    Condition(Plus(Times(u,Power(Sin(z),C2)),w),SameQ(u,Times(CN1,v)))),
SetDelayed(TrigSimplifyAux(Plus(Times(Power($($s("§tan"),$p(z)),C2),$p(v,true)),$p(u),$p(w,true))),
    Condition(Plus(Times(u,Power(Sec(z),C2)),w),SameQ(u,v))),
SetDelayed(TrigSimplifyAux(Plus(Times(Power($($s("§cot"),$p(z)),C2),$p(v,true)),$p(u),$p(w,true))),
    Condition(Plus(Times(u,Power(Csc(z),C2)),w),SameQ(u,v))),
SetDelayed(TrigSimplifyAux(Plus(Times(Power($($s("§sec"),$p(z)),C2),$p(v,true)),$p(u),$p(w,true))),
    Condition(Plus(Times(v,Power(Tan(z),C2)),w),SameQ(u,Times(CN1,v)))),
SetDelayed(TrigSimplifyAux(Plus(Times(Power($($s("§csc"),$p(z)),C2),$p(v,true)),$p(u),$p(w,true))),
    Condition(Plus(Times(v,Power(Cot(z),C2)),w),SameQ(u,Times(CN1,v)))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times($($s("§cos"),$p(v)),$p(b,true)),$p(a)),CN1),Power($($s("§sin"),$p(v)),C2),$p(u,true))),
    Condition(Times(u,Plus(Power(a,CN1),Times(CN1,Cos(v),Power(b,CN1)))),ZeroQ(Plus(Power(a,C2),Times(CN1,Power(b,C2)))))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times($($s("§sin"),$p(v)),$p(b,true)),$p(a)),CN1),Power($($s("§cos"),$p(v)),C2),$p(u,true))),
    Condition(Times(u,Plus(Power(a,CN1),Times(CN1,Sin(v),Power(b,CN1)))),ZeroQ(Plus(Power(a,C2),Times(CN1,Power(b,C2)))))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§tan"),$p(v)),$p(n,true)),$p(b,true)),$p(a)),CN1),Power($($s("§tan"),$p(v)),$p(n,true)),$p(u,true))),
    Condition(Times(u,Power(Plus(b,Times(a,Power(Cot(v),n))),CN1)),And(PositiveIntegerQ(n),NonsumQ(a)))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§cot"),$p(v)),$p(n,true)),$p(b,true)),$p(a)),CN1),Power($($s("§cot"),$p(v)),$p(n,true)),$p(u,true))),
    Condition(Times(u,Power(Plus(b,Times(a,Power(Tan(v),n))),CN1)),And(PositiveIntegerQ(n),NonsumQ(a)))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§sec"),$p(v)),$p(n,true)),$p(b,true)),$p(a)),CN1),Power($($s("§sec"),$p(v)),$p(n,true)),$p(u,true))),
    Condition(Times(u,Power(Plus(b,Times(a,Power(Cos(v),n))),CN1)),And(PositiveIntegerQ(n),NonsumQ(a)))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§csc"),$p(v)),$p(n,true)),$p(b,true)),$p(a)),CN1),Power($($s("§csc"),$p(v)),$p(n,true)),$p(u,true))),
    Condition(Times(u,Power(Plus(b,Times(a,Power(Sin(v),n))),CN1)),And(PositiveIntegerQ(n),NonsumQ(a)))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§sec"),$p(v)),$p(n,true)),$p(b,true)),$p(a)),CN1),Power($($s("§tan"),$p(v)),$p(n,true)),$p(u,true))),
    Condition(Times(u,Power(Sin(v),n),Power(Plus(b,Times(a,Power(Cos(v),n))),CN1)),And(PositiveIntegerQ(n),NonsumQ(a)))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§csc"),$p(v)),$p(n,true)),$p(b,true)),$p(a)),CN1),Power($($s("§cot"),$p(v)),$p(n,true)),$p(u,true))),
    Condition(Times(u,Power(Cos(v),n),Power(Plus(b,Times(a,Power(Sin(v),n))),CN1)),And(PositiveIntegerQ(n),NonsumQ(a)))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§sec"),$p(v)),$p(n,true)),$p(a,true)),Times(Power($($s("§tan"),$p(v)),$p(n,true)),$p(b,true))),$p(p,true)),$p(u,true))),
    Condition(Times(u,Power(Sec(v),Times(n,p)),Power(Plus(a,Times(b,Power(Sin(v),n))),p)),IntegersQ(n,p))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§csc"),$p(v)),$p(n,true)),$p(a,true)),Times(Power($($s("§cot"),$p(v)),$p(n,true)),$p(b,true))),$p(p,true)),$p(u,true))),
    Condition(Times(u,Power(Csc(v),Times(n,p)),Power(Plus(a,Times(b,Power(Cos(v),n))),p)),IntegersQ(n,p))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§tan"),$p(v)),$p(n,true)),$p(a,true)),Times(Power($($s("§sin"),$p(v)),$p(n,true)),$p(b,true))),$p(p,true)),$p(u,true))),
    Condition(Times(u,Power(Tan(v),Times(n,p)),Power(Plus(a,Times(b,Power(Cos(v),n))),p)),IntegersQ(n,p))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§cot"),$p(v)),$p(n,true)),$p(a,true)),Times(Power($($s("§cos"),$p(v)),$p(n,true)),$p(b,true))),$p(p,true)),$p(u,true))),
    Condition(Times(u,Power(Cot(v),Times(n,p)),Power(Plus(a,Times(b,Power(Sin(v),n))),p)),IntegersQ(n,p))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§tan"),$p(v)),$p(n,true)),$p(b,true)),Times(Power($($s("§sec"),$p(v)),$p(n,true)),$p(c,true)),$p(a,true)),$p(p,true)),Power($($s("§cos"),$p(v)),$p(m,true)),$p(u,true))),
    Condition(Times(u,Power(Cos(v),Plus(m,Times(CN1,n,p))),Power(Plus(c,Times(b,Power(Sin(v),n)),Times(a,Power(Cos(v),n))),p)),IntegersQ(m,n,p))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§tan"),$p(v)),$p(n,true)),$p(b,true)),Times(Power($($s("§sec"),$p(v)),$p(n,true)),$p(c,true)),$p(a,true)),$p(p,true)),Power($($s("§sec"),$p(v)),$p(m,true)),$p(u,true))),
    Condition(Times(u,Power(Sec(v),Plus(m,Times(n,p))),Power(Plus(c,Times(b,Power(Sin(v),n)),Times(a,Power(Cos(v),n))),p)),IntegersQ(m,n,p))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§cot"),$p(v)),$p(n,true)),$p(b,true)),Times(Power($($s("§csc"),$p(v)),$p(n,true)),$p(c,true)),$p(a,true)),$p(p,true)),Power($($s("§sin"),$p(v)),$p(m,true)),$p(u,true))),
    Condition(Times(u,Power(Sin(v),Plus(m,Times(CN1,n,p))),Power(Plus(c,Times(b,Power(Cos(v),n)),Times(a,Power(Sin(v),n))),p)),IntegersQ(m,n,p))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§cot"),$p(v)),$p(n,true)),$p(b,true)),Times(Power($($s("§csc"),$p(v)),$p(n,true)),$p(c,true)),$p(a,true)),$p(p,true)),Power($($s("§csc"),$p(v)),$p(m,true)),$p(u,true))),
    Condition(Times(u,Power(Csc(v),Plus(m,Times(n,p))),Power(Plus(c,Times(b,Power(Cos(v),n)),Times(a,Power(Sin(v),n))),p)),IntegersQ(m,n,p))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§csc"),$p(v)),$p(m,true)),$p(a,true)),Times(Power($($s("§sin"),$p(v)),$p(n,true)),$p(b,true))),$p(p,true)),$p(u,true))),
    Condition(If(And(ZeroQ(Plus(m,n,Times(CN1,C2))),ZeroQ(Plus(a,b))),Times(u,Power(Times(a,Power(Cos(v),C2),Power(Power(Sin(v),m),CN1)),p)),Times(u,Power(Times(Plus(a,Times(b,Power(Sin(v),Plus(m,n)))),Power(Power(Sin(v),m),CN1)),p))),IntegersQ(m,n))),
SetDelayed(TrigSimplifyAux(Times(Power(Plus(Times(Power($($s("§sec"),$p(v)),$p(m,true)),$p(a,true)),Times(Power($($s("§cos"),$p(v)),$p(n,true)),$p(b,true))),$p(p,true)),$p(u,true))),
    Condition(If(And(ZeroQ(Plus(m,n,Times(CN1,C2))),ZeroQ(Plus(a,b))),Times(u,Power(Times(a,Power(Sin(v),C2),Power(Power(Cos(v),m),CN1)),p)),Times(u,Power(Times(Plus(a,Times(b,Power(Cos(v),Plus(m,n)))),Power(Power(Cos(v),m),CN1)),p))),IntegersQ(m,n))),
SetDelayed(TrigSimplifyAux($p(u)),
    u),
SetDelayed(RemoveContent($p("expn"),$p(x,SymbolHead)),
    Module(List(Set(u,NonfreeFactors(ContentFactor($s("expn")),x))),If(And(SumQ(u),NegQ(First(u))),Times(CN1,u),u))),
SetDelayed(ContentFactor($p("expn")),
    TimeConstrained(ContentFactorAux($s("expn")),$s("TimeLimit"),$s("expn"))),
SetDelayed(ContentFactorAux($p("expn")),
    If(AtomQ($s("expn")),$s("expn"),If(IntegerPowerQ($s("expn")),If(And(SumQ(Part($s("expn"),C1)),Less(NumericFactor(Part($s("expn"),C1,C1)),C0)),Times(Power(CN1,Part($s("expn"),C2)),Power(ContentFactorAux(Times(CN1,Part($s("expn"),C1))),Part($s("expn"),C2))),Power(ContentFactorAux(Part($s("expn"),C1)),Part($s("expn"),C2))),If(ProductQ($s("expn")),Module(List(Set($s("num"),C1),$s("tmp")),CompoundExpression(Set($s("tmp"),Map(Function(If(And(SumQ(Slot1),Less(NumericFactor(Part(Slot1,C1)),C0)),CompoundExpression(Set($s("num"),Times(CN1,$s("num"))),ContentFactorAux(Times(CN1,Slot1))),ContentFactorAux(Slot1))),$s("expn"))),Times($s("num"),UnifyNegativeBaseFactors($s("tmp"))))),If(SumQ($s("expn")),Module(List(Set($s("lst"),CommonFactors(Apply($s("List"),$s("expn"))))),If(Or(SameQ(Part($s("lst"),C1),C1),SameQ(Part($s("lst"),C1),CN1)),$s("expn"),Times(Part($s("lst"),C1),Apply($s("Plus"),Rest($s("lst")))))),$s("expn")))))),
SetDelayed(UnifyNegativeBaseFactors(Times(Power(Times(CN1,$p(v)),$p(m)),Power($p(v),$p(n,true)),$p(u,true))),
    Condition(UnifyNegativeBaseFactors(Times(Power(CN1,n),u,Power(Times(CN1,v),Plus(m,n)))),IntegerQ(n))),
SetDelayed(UnifyNegativeBaseFactors($p(u)),
    u),
SetDelayed(CommonFactors($p("lst")),
    Module(List($s("lst1"),$s("lst2"),$s("lst3"),$s("lst4"),$s("common"),$s("base"),$s("num")),CompoundExpression(CompoundExpression(CompoundExpression(CompoundExpression(CompoundExpression(Set($s("lst1"),Map($s("Integrate::NonabsurdNumberFactors"),$s("lst"))),Set($s("lst2"),Map($s("Integrate::AbsurdNumberFactors"),$s("lst")))),Set($s("num"),Apply($s("Integrate::AbsurdNumberGCD"),$s("lst2")))),Set($s("common"),$s("num"))),Set($s("lst2"),Map(Function(Times(Slot1,Power($s("num"),CN1))),$s("lst2")))),While(True,CompoundExpression(CompoundExpression(Set($s("lst3"),Map($s("Integrate::LeadFactor"),$s("lst1"))),If(Apply($s("SameQ"),$s("lst3")),CompoundExpression(Set($s("common"),Times($s("common"),Part($s("lst3"),C1))),Set($s("lst1"),Map($s("Integrate::RemainingFactors"),$s("lst1")))),If(And(MapAnd(Function(And(And(LogQ(Slot1),IntegerQ(First(Slot1))),Greater(First(Slot1),C0))),$s("lst3")),MapAnd($s("Integrate::RationalQ"),Set($s("lst4"),Map(Function(FullSimplify(Times(Slot1,Power(First($s("lst3")),CN1)))),$s("lst3"))))),CompoundExpression(CompoundExpression(CompoundExpression(Set($s("num"),Apply($s("GCD"),$s("lst4"))),Set($s("common"),Times($s("common"),Log(Power(Part(First($s("lst3")),C1),$s("num")))))),Set($s("lst2"),Map2(Function(Times(Slot1,Slot2,Power($s("num"),CN1))),$s("lst2"),$s("lst4")))),Set($s("lst1"),Map($s("Integrate::RemainingFactors"),$s("lst1")))),CompoundExpression(Set($s("lst4"),Map($s("Integrate::LeadDegree"),$s("lst1"))),If(And(Apply($s("SameQ"),Map($s("Integrate::LeadBase"),$s("lst1"))),MapAnd($s("Integrate::RationalQ"),$s("lst4"))),CompoundExpression(CompoundExpression(CompoundExpression(CompoundExpression(Set($s("num"),Smallest($s("lst4"))),Set($s("base"),LeadBase(Part($s("lst1"),C1)))),If(Unequal($s("num"),C0),Set($s("common"),Times($s("common"),Power($s("base"),$s("num")))))),Set($s("lst2"),Map2(Function(Times(Slot1,Power($s("base"),Plus(Slot2,Times(CN1,$s("num")))))),$s("lst2"),$s("lst4")))),Set($s("lst1"),Map($s("Integrate::RemainingFactors"),$s("lst1")))),If(And(And(And(And(Equal(Length($s("lst1")),C2),ZeroQ(Plus(LeadBase(Part($s("lst1"),C1)),LeadBase(Part($s("lst1"),C2))))),NonzeroQ(Plus(Part($s("lst1"),C1),Times(CN1,C1)))),IntegerQ(Part($s("lst4"),C1))),FractionQ(Part($s("lst4"),C2))),CompoundExpression(CompoundExpression(CompoundExpression(CompoundExpression(CompoundExpression(Set($s("num"),Min($s("lst4"))),Set($s("base"),LeadBase(Part($s("lst1"),C2)))),If(Unequal($s("num"),C0),Set($s("common"),Times($s("common"),Power($s("base"),$s("num")))))),Set($s("lst2"),List(Times(Part($s("lst2"),C1),Power(CN1,Part($s("lst4"),C1))),Part($s("lst2"),C2)))),Set($s("lst2"),Map2(Function(Times(Slot1,Power($s("base"),Plus(Slot2,Times(CN1,$s("num")))))),$s("lst2"),$s("lst4")))),Set($s("lst1"),Map($s("Integrate::RemainingFactors"),$s("lst1")))),If(And(And(And(And(Equal(Length($s("lst1")),C2),ZeroQ(Plus(LeadBase(Part($s("lst1"),C1)),LeadBase(Part($s("lst1"),C2))))),NonzeroQ(Plus(Part($s("lst1"),C2),Times(CN1,C1)))),IntegerQ(Part($s("lst4"),C2))),FractionQ(Part($s("lst4"),C1))),CompoundExpression(CompoundExpression(CompoundExpression(CompoundExpression(CompoundExpression(Set($s("num"),Min($s("lst4"))),Set($s("base"),LeadBase(Part($s("lst1"),C1)))),If(Unequal($s("num"),C0),Set($s("common"),Times($s("common"),Power($s("base"),$s("num")))))),Set($s("lst2"),List(Part($s("lst2"),C1),Times(Part($s("lst2"),C2),Power(CN1,Part($s("lst4"),C2)))))),Set($s("lst2"),Map2(Function(Times(Slot1,Power($s("base"),Plus(Slot2,Times(CN1,$s("num")))))),$s("lst2"),$s("lst4")))),Set($s("lst1"),Map($s("Integrate::RemainingFactors"),$s("lst1")))),CompoundExpression(CompoundExpression(Set($s("num"),MostMainFactorPosition($s("lst3"))),Set($s("lst2"),ReplacePart($s("lst2"),Times(Part($s("lst3"),$s("num")),Part($s("lst2"),$s("num"))),$s("num")))),Set($s("lst1"),ReplacePart($s("lst1"),RemainingFactors(Part($s("lst1"),$s("num"))),$s("num"))))))))))),If(MapAnd(Function(SameQ(Slot1,C1)),$s("lst1")),Return(Prepend($s("lst2"),$s("common"))))))))),
SetDelayed(MostMainFactorPosition($p("lst",$s("List"))),
    Module(List(Set($s("factor"),C1),Set($s("num"),C1),i),CompoundExpression(Do(If(Greater(FactorOrder(Part($s("lst"),i),$s("factor")),C0),CompoundExpression(Set($s("factor"),Part($s("lst"),i)),Set($s("num"),i))),List(i,Length($s("lst")))),$s("num")))),
SetDelayed(FactorOrder($p(u),$p(v)),
    If(SameQ(u,C1),If(SameQ(v,C1),C0,CN1),If(SameQ(v,C1),C1,Order(u,v)))),
SetDelayed(Smallest($p("num1"),$p("num2")),
    If(Greater($s("num1"),C0),If(Greater($s("num2"),C0),Min($s("num1"),$s("num2")),C0),If(Greater($s("num2"),C0),C0,Max($s("num1"),$s("num2"))))),
SetDelayed(Smallest($p("lst",$s("List"))),
    Module(List(Set($s("num"),Part($s("lst"),C1))),CompoundExpression(Scan(Function(Set($s("num"),Smallest($s("num"),Slot1))),Rest($s("lst"))),$s("num")))),
SetDelayed(MonomialFactor($p(u),$p(x,SymbolHead)),
    If(AtomQ(u),If(SameQ(u,x),List(C1,C1),List(C0,u)),If(PowerQ(u),If(IntegerQ(Part(u,C2)),Module(List(Set($s("lst"),MonomialFactor(Part(u,C1),x))),List(Times(Part($s("lst"),C1),Part(u,C2)),Power(Part($s("lst"),C2),Part(u,C2)))),If(And(SameQ(Part(u,C1),x),FreeQ(Part(u,C2),x)),List(Part(u,C2),C1),List(C0,u))),If(ProductQ(u),Module(List(Set($s("lst1"),MonomialFactor(First(u),x)),Set($s("lst2"),MonomialFactor(Rest(u),x))),List(Plus(Part($s("lst1"),C1),Part($s("lst2"),C1)),Times(Part($s("lst1"),C2),Part($s("lst2"),C2)))),If(SumQ(u),Module(List($s("lst"),$s("deg")),CompoundExpression(CompoundExpression(CompoundExpression(Set($s("lst"),Map(Function(MonomialFactor(Slot1,x)),Apply($s("List"),u))),Set($s("deg"),Part($s("lst"),C1,C1))),Scan(Function(Set($s("deg"),MinimumDegree($s("deg"),Part(Slot1,C1)))),Rest($s("lst")))),If(Or(ZeroQ($s("deg")),And(RationalQ($s("deg")),Less($s("deg"),C0))),List(C0,u),List($s("deg"),Apply($s("Plus"),Map(Function(Times(Power(x,Plus(Part(Slot1,C1),Times(CN1,$s("deg")))),Part(Slot1,C2))),$s("lst"))))))),List(C0,u)))))),
SetDelayed(MinimumDegree($p("deg1"),$p("deg2")),
    If(RationalQ($s("deg1")),If(RationalQ($s("deg2")),Min($s("deg1"),$s("deg2")),$s("deg1")),If(RationalQ($s("deg2")),$s("deg2"),Module(List(Set($s("deg"),Simplify(Plus($s("deg1"),Times(CN1,$s("deg2")))))),If(RationalQ($s("deg")),If(Greater($s("deg"),C0),$s("deg2"),$s("deg1")),If(OrderedQ(List($s("deg1"),$s("deg2"))),$s("deg1"),$s("deg2"))))))),
SetDelayed(ConstantFactor($p(u),$p(x,SymbolHead)),
    If(FreeQ(u,x),List(u,C1),If(AtomQ(u),List(C1,u),If(And(PowerQ(u),FreeQ(Part(u,C2),x)),Module(List(Set($s("lst"),ConstantFactor(Part(u,C1),x)),$s("tmp")),If(IntegerQ(Part(u,C2)),List(Power(Part($s("lst"),C1),Part(u,C2)),Power(Part($s("lst"),C2),Part(u,C2))),CompoundExpression(Set($s("tmp"),PositiveFactors(Part($s("lst"),C1))),If(SameQ($s("tmp"),C1),List(C1,u),List(Power($s("tmp"),Part(u,C2)),Power(Times(NonpositiveFactors(Part($s("lst"),C1)),Part($s("lst"),C2)),Part(u,C2))))))),If(ProductQ(u),Module(List(Set($s("lst"),Map(Function(ConstantFactor(Slot1,x)),Apply($s("List"),u)))),List(Apply($s("Times"),Map($s("First"),$s("lst"))),Apply($s("Times"),Map(Function(Part(Slot1,C2)),$s("lst"))))),If(SumQ(u),Module(List(Set($s("lst1"),Map(Function(ConstantFactor(Slot1,x)),Apply($s("List"),u)))),If(Apply($s("SameQ"),Map(Function(Part(Slot1,C2)),$s("lst1"))),List(Apply($s("Plus"),Map($s("First"),$s("lst1"))),Part($s("lst1"),C1,C2)),Module(List(Set($s("lst2"),CommonFactors(Map($s("First"),$s("lst1"))))),List(First($s("lst2")),Apply($s("Plus"),Map2($s("Times"),Rest($s("lst2")),Map(Function(Part(Slot1,C2)),$s("lst1")))))))),List(C1,u))))))),
SetDelayed(PositiveFactors($p(u)),
    If(ZeroQ(u),C1,If(RationalQ(u),Abs(u),If(PositiveQ(u),u,If(ProductQ(u),Map($s("Integrate::PositiveFactors"),u),C1))))),
SetDelayed(NonpositiveFactors($p(u)),
    If(ZeroQ(u),u,If(RationalQ(u),Sign(u),If(PositiveQ(u),C1,If(ProductQ(u),Map($s("Integrate::NonpositiveFactors"),u),u))))),
SetDelayed(PolynomialInQ($p(u),$p(v),$p(x,SymbolHead)),
    PolynomialInAuxQ(u,NonfreeFactors(NonfreeTerms(v,x),x),x)),
SetDelayed(PolynomialInAuxQ($p(u),$p(v),$p(x)),
    If(SameQ(u,v),True,If(AtomQ(u),UnsameQ(u,x),If(PowerQ(u),If(And(PowerQ(v),SameQ(Part(u,C1),Part(v,C1))),PositiveIntegerQ(Times(Part(u,C2),Power(Part(v,C2),CN1))),And(PositiveIntegerQ(Part(u,C2)),PolynomialInAuxQ(Part(u,C1),v,x))),If(Or(SumQ(u),ProductQ(u)),Catch(CompoundExpression(Scan(Function(If(Not(PolynomialInAuxQ(Slot1,v,x)),Throw(False))),u),True)),False))))),
SetDelayed(ExponentIn($p(u),$p(v),$p(x,SymbolHead)),
    ExponentInAux(u,NonfreeFactors(NonfreeTerms(v,x),x),x)),
SetDelayed(ExponentInAux($p(u),$p(v),$p(x)),
    If(SameQ(u,v),C1,If(AtomQ(u),C0,If(PowerQ(u),If(And(PowerQ(v),SameQ(Part(u,C1),Part(v,C1))),Times(Part(u,C2),Power(Part(v,C2),CN1)),Times(Part(u,C2),ExponentInAux(Part(u,C1),v,x))),If(ProductQ(u),Apply($s("Plus"),Map(Function(ExponentInAux(Slot1,v,x)),Apply($s("List"),u))),Apply($s("Max"),Map(Function(ExponentInAux(Slot1,v,x)),Apply($s("List"),u)))))))),
SetDelayed(PolynomialInSubst($p(u),$p(v),$p(x,SymbolHead)),
    Module(List(Set(w,NonfreeTerms(v,x))),ReplaceAll(PolynomialInSubstAux(u,NonfreeFactors(w,x),x),List(Rule(x,Times(Plus(x,Times(CN1,FreeTerms(v,x))),Power(FreeFactors(w,x),CN1)))))))
  );
}

 

Ads help maintain this website.