前言
今天 跟进一个线上问题,full gc频繁。
分析过程
工具
jprofiler分析首先是string相关的一些调研
string类型的点点滴滴
1.首先参考自己之前写的随笔字符串那些事
2.java6 7 8字符串常量池的区别
7,8移动到了堆中,可以配置大小,jvm参数:PrintStringTableStatistics可以打印使用信息
3.java内存分配和String类型的深度解析
4.java string常量池的几个例子
-
怀疑logger导致的内存泄漏
a memory leak caused by log4j logger
memory leak in log4j hierarchy
看了这两篇相关的issue,和我的case不一样啊,我的logger都是static。
另外,log4j开发组不可能说打了info之后还保持对这个string的引用啊,应该被gc掉(logger 源码) -
怀疑是string过长,直接进入老年代导致的
参考jvm内存分配jvm内存管理
结论
log.info打印了很长的string,进入老年代,频繁触发full gc
解决和经验
code review要注意,log的打印也要放进去
1.首先是debug日志,一定要使用类似slf4j的占位符来进行处理
2.不能打印太长的string
其中一个log info的实际例子
{{2*Sin(x)*Sin(x),2*Sin(x)*Sin(x),2*Sin(x)^2,{{{2<0,False}}}},2*Integrate(Sin(x)^
2,x),{{{{2<0,False}}},{{FreeQ({1,1,2},x)&&integrate::trigq(Sin)&&integrate::binomialq(x,x)&&!integrate::binomialmatchq(x,x),FreeQ({
1,1,2},x)&&integrate::trigq(Sin)&&integrate::binomialq(x,x)&&!integrate::binomialmatchq(x,x),{FreeQ({
1,1,2},x),True},{{{{AtomQ(Sin),True},Sin},True},True},{{{ListQ(x),False},integrate::notfalseq(integrate::binomialtest(x,x)),{{{PolynomialQ(x,x),True},If(Exponent(x,x)>
0,Module({lst=Exponent(x,x,List)},If(Length(lst)==1,{0,Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},If(Length(lst)==
2&&(lst[[1]])==0,{Coefficient(x,x,0),Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},False))),False),{{{ExpandAll(x),x},Max(
1),1},1>0,True},Module({lst=Exponent(x,x,List)},If(Length(lst)==1,{0,Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},If(Length(lst)==
2&&(lst[[1]])==0,{Coefficient(x,x,0),Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},False))),{{ExpandAll(x),x},{
1}},{{{{lst$1,{1}},1},1==1,True},{0,Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},{{{ExpandAll(x),x},Max(
1),1},Coefficient(x,x,1),{ExpandAll(x),x},1},{{ExpandAll(x),x},Max(1),1},{0,1,1}},{
0,1,1}},{0,1,1}},integrate::notfalseq({0,1,1}),{{0,1,1}=!=False,True},True},True},{{{{ListQ(x),False},MatchQ(x,a_.+b_.*x^n_./;FreeQ({a,b,n},x)),True},True},!True,False},False}},{{FreeQ({
1,1,2},x)&&integrate::hyperbolicq(Sin)&&integrate::binomialq(x,x)&&!integrate::binomialmatchq(x,x),FreeQ({
1,1,2},x)&&integrate::hyperbolicq(Sin)&&integrate::binomialq(x,x)&&!integrate::binomialmatchq(x,x),{FreeQ({
1,1,2},x),True},{{{{AtomQ(Sin),True},Sin},False},False},False}},{{FreeQ({0,1,2},x)&&integrate::linearq(Sin(x),x)&&integrate::nonzeroq(Sin(x)-x),FreeQ({
0,1,2},x)&&integrate::linearq(Sin(x),x)&&integrate::nonzeroq(Sin(x)-x),{FreeQ({0,
1,2},x),True},{{{{ListQ(Sin(x)),False},PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==
1&&Coefficient(Sin(x),x,1)=!=0,PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==1&&Coefficient(Sin(x),x,
1)=!=0,{PolynomialQ(Sin(x),x),False},False},False},False},False}},{{FreeQ(2,x)&&integrate::linearq(Sin(x),x)&&!integrate::linearmatchq(Sin(x),x),FreeQ(
2,x)&&integrate::linearq(Sin(x),x)&&!integrate::linearmatchq(Sin(x),x),{FreeQ(2,x),True},{{{{ListQ(Sin(x)),False},PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==
1&&Coefficient(Sin(x),x,1)=!=0,PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==1&&Coefficient(Sin(x),x,
1)=!=0,{PolynomialQ(Sin(x),x),False},False},False},False},False}},{{FreeQ(2,x)&&integrate::binomialq(Sin(x),x)&&!integrate::binomialmatchq(Sin(x),x),FreeQ(
2,x)&&integrate::binomialq(Sin(x),x)&&!integrate::binomialmatchq(Sin(x),x),{FreeQ(
2,x),True},{{{ListQ(Sin(x)),False},integrate::notfalseq(integrate::binomialtest(Sin(x),x)),{{{PolynomialQ(Sin(x),x),False},If(integrate::powerq(Sin(x)),If(Sin(x)[[
1]]===x&&FreeQ(Sin(x)[[2]],x),{0,1,Sin(x)[[2]]},False),Module({lst1,lst2},If(integrate::productq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,{First(Sin(x))*(lst2[[
1]]),First(Sin(x))*(lst2[[2]]),(lst2[[3]])}),If(FreeQ(Rest(Sin(x)),x),lst1=integrate::binomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,{(lst1[[
1]])*Rest(Sin(x)),(lst1[[2]])*Rest(Sin(x)),(lst1[[3]])}),lst1=integrate::binomialtest(First(Sin(x)),x);lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst1)||integrate::falseq(lst2),False,Module({a,b,c,d,m,n},{a,b,m}=lst1;{c,d,n}=lst2;If(integrate::zeroq(a),If(integrate::zeroq(c),{
0,b*d,m+n},If(integrate::zeroq(m+n),{b*d,b*c,m},False)),If(integrate::zeroq(c),If(integrate::zeroq(m+n),{b*d,a*d,n},False),If(integrate::zeroq(m-n)&&integrate::zeroq(b*c+a*d),{a*c,b*d,
2*m},False))))))),If(integrate::sumq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,{First(Sin(x))+(lst2[[
1]]),(lst2[[2]]),(lst2[[3]])}),If(FreeQ(Rest(Sin(x)),x),lst1=integrate::binomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,{(lst1[[
1]])+Rest(Sin(x)),(lst1[[2]]),(lst1[[3]])}),lst1=integrate::binomialtest(First(Sin(x)),x);lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst1)||integrate::falseq(lst2),False,If(integrate::zeroq(-(lst2[[
3]])+(lst1[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst1[[2]])+(lst2[[2]]),(lst1[[3]])},False)))),False)))),{{{Head(Sin(x)),Sin},Sin===Power,False},False},Module({lst1,lst2},If(integrate::productq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,{First(Sin(x))*(lst2[[
1]]),First(Sin(x))*(lst2[[2]]),(lst2[[3]])}),If(FreeQ(Rest(Sin(x)),x),lst1=integrate::binomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,{(lst1[[
1]])*Rest(Sin(x)),(lst1[[2]])*Rest(Sin(x)),(lst1[[3]])}),lst1=integrate::binomialtest(First(Sin(x)),x);lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst1)||integrate::falseq(lst2),False,Module({a,b,c,d,m,n},{a,b,m}=lst1;{c,d,n}=lst2;If(integrate::zeroq(a),If(integrate::zeroq(c),{
0,b*d,m+n},If(integrate::zeroq(m+n),{b*d,b*c,m},False)),If(integrate::zeroq(c),If(integrate::zeroq(m+n),{b*d,a*d,n},False),If(integrate::zeroq(m-n)&&integrate::zeroq(b*c+a*d),{a*c,b*d,
2*m},False))))))),If(integrate::sumq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,{First(Sin(x))+(lst2[[
1]]),(lst2[[2]]),(lst2[[3]])}),If(FreeQ(Rest(Sin(x)),x),lst1=integrate::binomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,{(lst1[[
1]])+Rest(Sin(x)),(lst1[[2]]),(lst1[[3]])}),lst1=integrate::binomialtest(First(Sin(x)),x);lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst1)||integrate::falseq(lst2),False,If(integrate::zeroq(-(lst2[[
3]])+(lst1[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst1[[2]])+(lst2[[2]]),(lst1[[3]])},False)))),False))),{{{{Head(Sin(x)),Sin},Sin===Times,False},False},If(integrate::sumq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2$2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2$2),False,{First(Sin(x))+(lst2$2[[
1]]),(lst2$2[[2]]),(lst2$2[[3]])}),If(FreeQ(Rest(Sin(x)),x),lst1$2=integrate::binomialtest(First(Sin(x)),x);If(integrate::falseq(lst1$2),False,{(lst1$2[[
1]])+Rest(Sin(x)),(lst1$2[[2]]),(lst1$2[[3]])}),lst1$2=integrate::binomialtest(First(Sin(x)),x);lst2$2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst1$2)||integrate::falseq(lst2$2),False,If(integrate::zeroq(-(lst2$2[[
3]])+(lst1$2[[3]])),{(lst1$2[[1]])+(lst2$2[[1]]),(lst1$2[[2]])+(lst2$2[[2]]),(lst1$2[[
3]])},False)))),False),{{{Head(Sin(x)),Sin},Sin===Plus,False},False},False},False},False},integrate::notfalseq(False),{False=!=False,False},False},False},False}},{{FreeQ(
2,x)&&integrate::generalizedbinomialq(Sin(x),x)&&!integrate::generalizedbinomialmatchq(Sin(x),x),FreeQ(
2,x)&&integrate::generalizedbinomialq(Sin(x),x)&&!integrate::generalizedbinomialmatchq(Sin(x),x),{FreeQ(
2,x),True},{{{ListQ(Sin(x)),False},integrate::notfalseq(integrate::generalizedbinomialtest(Sin(x),x)),{integrate::generalizedbinomialtest(Sin(x),x),False},integrate::notfalseq(False),{False=!=False,False},False},False},False}},{{FreeQ(
2,x)&&integrate::quadraticq(Sin(x),x)&&!integrate::quadraticmatchq(Sin(x),x),FreeQ(
2,x)&&integrate::quadraticq(Sin(x),x)&&!integrate::quadraticmatchq(Sin(x),x),{FreeQ(
2,x),True},{{{{ListQ(Sin(x)),False},PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==2&&Coefficient(Sin(x),x,
2)=!=0,PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==2&&Coefficient(Sin(x),x,2)=!=0,{PolynomialQ(Sin(x),x),False},False},False},False},False}},{{FreeQ(
2,x)&&integrate::trinomialq(Sin(x),x)&&!integrate::trinomialmatchq(Sin(x),x),FreeQ(
2,x)&&integrate::trinomialq(Sin(x),x)&&!integrate::trinomialmatchq(Sin(x),x),{FreeQ(
2,x),True},{{{ListQ(Sin(x)),False},integrate::notfalseq(integrate::trinomialtest(Sin(x),x))&&!integrate::quadraticq(Sin(x),x)&&!MatchQ(Sin(x),w_^
2/;integrate::binomialq(w,x)),integrate::notfalseq(integrate::trinomialtest(Sin(x),x))&&!integrate::quadraticq(Sin(x),x)&&!MatchQ(Sin(x),w_^
2/;integrate::binomialq(w,x)),{{{{PolynomialQ(Sin(x),x),False},If(integrate::powerq(Sin(x)),If(integrate::zeroq(
-2+Sin(x)[[2]]),Module({lst=integrate::binomialtest(Sin(x)[[1]],x)},If(integrate::falseq(lst),False,{(lst[[
1]])^2,2*(lst[[1]])*(lst[[2]]),(lst[[2]])^2,(lst[[3]])})),False),Module({lst1,lst2},If(integrate::productq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,{First(Sin(x))*(lst2[[
1]]),First(Sin(x))*(lst2[[2]]),First(Sin(x))*(lst2[[3]]),(lst2[[4]])}),If(FreeQ(Rest(Sin(x)),x),lst1=integrate::trinomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,{(lst1[[
1]])*Rest(Sin(x)),(lst1[[2]])*Rest(Sin(x)),(lst1[[3]])*Rest(Sin(x)),(lst1[[4]])}),lst1=integrate::binomialtest(First(Sin(x)),x);lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst1)||integrate::falseq(lst2),False,Module({a,b,c,d,m,n},{a,b,m}=lst1;{c,d,n}=lst2;If(integrate::zeroq(m-n)&&integrate::nonzeroq(b*c+a*d),{a*c,b*c+a*d,b*d,m},False))))),If(integrate::sumq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,{First(Sin(x))+(lst2[[
1]]),(lst2[[2]]),(lst2[[3]]),(lst2[[4]])}),If(FreeQ(Rest(Sin(x)),x),lst1=integrate::trinomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,{(lst1[[
1]])+Rest(Sin(x)),(lst1[[2]]),(lst1[[3]]),(lst1[[4]])}),lst1=integrate::trinomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),lst1=integrate::binomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,lst2=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,If(integrate::zeroq((
-1)*2*(lst2[[3]])+(lst1[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst2[[2]]),(lst1[[2]]),(lst2[[
3]])},If(integrate::zeroq((-1)*2*(lst1[[3]])+(lst2[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst1[[
2]]),(lst2[[2]]),(lst1[[3]])},False))),If(integrate::zeroq(-(lst2[[4]])+(lst1[[3]]))&&integrate::nonzeroq((lst1[[
2]])+(lst2[[2]])),{(lst1[[1]])+(lst2[[1]]),(lst1[[2]])+(lst2[[2]]),(lst2[[3]]),(lst2[[
4]])},If(integrate::zeroq((-1)*2*(lst2[[4]])+(lst1[[3]]))&&integrate::nonzeroq((lst1[[
2]])+(lst2[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst2[[2]]),(lst1[[2]])+(lst2[[3]]),(lst2[[
4]])},False)))),lst2=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,If(integrate::zeroq(-(lst1[[
4]])+(lst2[[3]]))&&integrate::nonzeroq((lst1[[2]])+(lst2[[2]])),{(lst1[[1]])+(lst2[[
1]]),(lst1[[2]])+(lst2[[2]]),(lst1[[3]]),(lst1[[4]])},If(integrate::zeroq((-1)*2*(lst1[[
4]])+(lst2[[3]]))&&integrate::nonzeroq((lst1[[3]])+(lst2[[2]])),{(lst1[[1]])+(lst2[[
1]]),(lst1[[2]]),(lst1[[3]])+(lst2[[2]]),(lst1[[4]])},False))),If(integrate::zeroq(-(lst2[[
4]])+(lst1[[4]]))&&integrate::nonzeroq((lst1[[2]])+(lst2[[2]]))&&integrate::nonzeroq((lst1[[
3]])+(lst2[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst1[[2]])+(lst2[[2]]),(lst1[[3]])+(lst2[[
3]]),(lst1[[4]])},False))))),False)))),{{{Head(Sin(x)),Sin},Sin===Power,False},False},Module({lst1,lst2},If(integrate::productq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,{First(Sin(x))*(lst2[[
1]]),First(Sin(x))*(lst2[[2]]),First(Sin(x))*(lst2[[3]]),(lst2[[4]])}),If(FreeQ(Rest(Sin(x)),x),lst1=integrate::trinomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,{(lst1[[
1]])*Rest(Sin(x)),(lst1[[2]])*Rest(Sin(x)),(lst1[[3]])*Rest(Sin(x)),(lst1[[4]])}),lst1=integrate::binomialtest(First(Sin(x)),x);lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst1)||integrate::falseq(lst2),False,Module({a,b,c,d,m,n},{a,b,m}=lst1;{c,d,n}=lst2;If(integrate::zeroq(m-n)&&integrate::nonzeroq(b*c+a*d),{a*c,b*c+a*d,b*d,m},False))))),If(integrate::sumq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,{First(Sin(x))+(lst2[[
1]]),(lst2[[2]]),(lst2[[3]]),(lst2[[4]])}),If(FreeQ(Rest(Sin(x)),x),lst1=integrate::trinomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,{(lst1[[
1]])+Rest(Sin(x)),(lst1[[2]]),(lst1[[3]]),(lst1[[4]])}),lst1=integrate::trinomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),lst1=integrate::binomialtest(First(Sin(x)),x);If(integrate::falseq(lst1),False,lst2=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,If(integrate::zeroq((
-1)*2*(lst2[[3]])+(lst1[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst2[[2]]),(lst1[[2]]),(lst2[[
3]])},If(integrate::zeroq((-1)*2*(lst1[[3]])+(lst2[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst1[[
2]]),(lst2[[2]]),(lst1[[3]])},False))),If(integrate::zeroq(-(lst2[[4]])+(lst1[[3]]))&&integrate::nonzeroq((lst1[[
2]])+(lst2[[2]])),{(lst1[[1]])+(lst2[[1]]),(lst1[[2]])+(lst2[[2]]),(lst2[[3]]),(lst2[[
4]])},If(integrate::zeroq((-1)*2*(lst2[[4]])+(lst1[[3]]))&&integrate::nonzeroq((lst1[[
2]])+(lst2[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst2[[2]]),(lst1[[2]])+(lst2[[3]]),(lst2[[
4]])},False)))),lst2=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),lst2=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2),False,If(integrate::zeroq(-(lst1[[
4]])+(lst2[[3]]))&&integrate::nonzeroq((lst1[[2]])+(lst2[[2]])),{(lst1[[1]])+(lst2[[
1]]),(lst1[[2]])+(lst2[[2]]),(lst1[[3]]),(lst1[[4]])},If(integrate::zeroq((-1)*2*(lst1[[
4]])+(lst2[[3]]))&&integrate::nonzeroq((lst1[[3]])+(lst2[[2]])),{(lst1[[1]])+(lst2[[
1]]),(lst1[[2]]),(lst1[[3]])+(lst2[[2]]),(lst1[[4]])},False))),If(integrate::zeroq(-(lst2[[
4]])+(lst1[[4]]))&&integrate::nonzeroq((lst1[[2]])+(lst2[[2]]))&&integrate::nonzeroq((lst1[[
3]])+(lst2[[3]])),{(lst1[[1]])+(lst2[[1]]),(lst1[[2]])+(lst2[[2]]),(lst1[[3]])+(lst2[[
3]]),(lst1[[4]])},False))))),False))),{{{{Head(Sin(x)),Sin},Sin===Times,False},False},If(integrate::sumq(Sin(x)),If(FreeQ(First(Sin(x)),x),lst2$3=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2$3),False,{First(Sin(x))+(lst2$3[[
1]]),(lst2$3[[2]]),(lst2$3[[3]]),(lst2$3[[4]])}),If(FreeQ(Rest(Sin(x)),x),lst1$3=integrate::trinomialtest(First(Sin(x)),x);If(integrate::falseq(lst1$3),False,{(lst1$3[[
1]])+Rest(Sin(x)),(lst1$3[[2]]),(lst1$3[[3]]),(lst1$3[[4]])}),lst1$3=integrate::trinomialtest(First(Sin(x)),x);If(integrate::falseq(lst1$3),lst1$3=integrate::binomialtest(First(Sin(x)),x);If(integrate::falseq(lst1$3),False,lst2$3=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2$3),lst2$3=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2$3),False,If(integrate::zeroq((
-1)*2*(lst2$3[[3]])+(lst1$3[[3]])),{(lst1$3[[1]])+(lst2$3[[1]]),(lst2$3[[2]]),(lst1$3[[
2]]),(lst2$3[[3]])},If(integrate::zeroq((-1)*2*(lst1$3[[3]])+(lst2$3[[3]])),{(lst1$3[[
1]])+(lst2$3[[1]]),(lst1$3[[2]]),(lst2$3[[2]]),(lst1$3[[3]])},False))),If(integrate::zeroq(-(lst2$3[[
4]])+(lst1$3[[3]]))&&integrate::nonzeroq((lst1$3[[2]])+(lst2$3[[2]])),{(lst1$3[[
1]])+(lst2$3[[1]]),(lst1$3[[2]])+(lst2$3[[2]]),(lst2$3[[3]]),(lst2$3[[4]])},If(integrate::zeroq((
-1)*2*(lst2$3[[4]])+(lst1$3[[3]]))&&integrate::nonzeroq((lst1$3[[2]])+(lst2$3[[3]])),{(lst1$3[[
1]])+(lst2$3[[1]]),(lst2$3[[2]]),(lst1$3[[2]])+(lst2$3[[3]]),(lst2$3[[4]])},False)))),lst2$3=integrate::trinomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2$3),lst2$3=integrate::binomialtest(Rest(Sin(x)),x);If(integrate::falseq(lst2$3),False,If(integrate::zeroq(-(lst1$3[[
4]])+(lst2$3[[3]]))&&integrate::nonzeroq((lst1$3[[2]])+(lst2$3[[2]])),{(lst1$3[[
1]])+(lst2$3[[1]]),(lst1$3[[2]])+(lst2$3[[2]]),(lst1$3[[3]]),(lst1$3[[4]])},If(integrate::zeroq((
-1)*2*(lst1$3[[4]])+(lst2$3[[3]]))&&integrate::nonzeroq((lst1$3[[3]])+(lst2$3[[2]])),{(lst1$3[[
1]])+(lst2$3[[1]]),(lst1$3[[2]]),(lst1$3[[3]])+(lst2$3[[2]]),(lst1$3[[4]])},False))),If(integrate::zeroq(-(lst2$3[[
4]])+(lst1$3[[4]]))&&integrate::nonzeroq((lst1$3[[2]])+(lst2$3[[2]]))&&integrate::nonzeroq((lst1$3[[
3]])+(lst2$3[[3]])),{(lst1$3[[1]])+(lst2$3[[1]]),(lst1$3[[2]])+(lst2$3[[2]]),(lst1$3[[
3]])+(lst2$3[[3]]),(lst1$3[[4]])},False))))),False),{{{Head(Sin(x)),Sin},Sin===Plus,False},False},False},False},False},integrate::notfalseq(False),{False=!=False,False},False},False},False},False}},{{FreeQ(
2,x)&&integrate::generalizedtrinomialq(Sin(x),x)&&!integrate::generalizedtrinomialmatchq(Sin(x),x),FreeQ(
2,x)&&integrate::generalizedtrinomialq(Sin(x),x)&&!integrate::generalizedtrinomialmatchq(Sin(x),x),{FreeQ(
2,x),True},{{{ListQ(Sin(x)),False},integrate::notfalseq(integrate::generalizedtrinomialtest(Sin(x),x)),{integrate::generalizedtrinomialtest(Sin(x),x),False},integrate::notfalseq(False),{False=!=False,False},False},False},False}},{{FreeQ(
2,x)&&integrate::polyq(Sin(x),x,3)&&!integrate::cubicmatchq(Sin(x),x),FreeQ(2,x)&&integrate::polyq(Sin(x),x,
3)&&!integrate::cubicmatchq(Sin(x),x),{FreeQ(2,x),True},{{{ListQ(Sin(x)),False},PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==
3&&Coefficient(Sin(x),x,3)=!=0,PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==3&&Coefficient(Sin(x),x,
3)=!=0,{PolynomialQ(Sin(x),x),False},False},False},False}},{{FreeQ(2,x)&&PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==
4&&2=!=2&&2=!=3,FreeQ(2,x)&&PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==4&&2=!=2&&
2=!=3,{FreeQ(2,x),True},{PolynomialQ(Sin(x),x),False},False}},{{FreeQ(2,x)&&PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==
4&&IntegerQ(2*2),FreeQ(2,x)&&PolynomialQ(Sin(x),x)&&Exponent(Sin(x),x)==4&&IntegerQ(
2*2),{FreeQ(2,x),True},{PolynomialQ(Sin(x),x),False},False}},{{FreeQ(Sin(x),x)&&integrate::quadraticq(
2,x)&&!integrate::quadraticmatchq(2,x),FreeQ(Sin(x),x)&&integrate::quadraticq(2,x)&&!integrate::quadraticmatchq(
2,x),{FreeQ(Sin(x),x),False},False}},{{FreeQ({Sin(x),0,1},x)&&PolynomialQ(1,x)&&integrate::poweroflinearq(
2,x)&&!integrate::poweroflinearmatchq(2,x),FreeQ({Sin(x),0,1},x)&&PolynomialQ(1,x)&&integrate::poweroflinearq(
2,x)&&!integrate::poweroflinearmatchq(2,x),{FreeQ({Sin(x),0,1},x),False},False}},{{integrate::positiveintegerq(
2)&&integrate::quadraticq(x,x)&&!integrate::quadraticmatchq(x,x),integrate::positiveintegerq(
2)&&integrate::quadraticq(x,x)&&!integrate::quadraticmatchq(x,x),{{{{{{Sequence(
2)},{2}},Scan(If(IntegerQ(#1)&>0,Null,Throw(False))&,{2}),{{If(IntegerQ(#1)&>
0,Null,Throw(False))&[2],If(IntegerQ(2)&&2>0,Null,Throw(False)),{{IntegerQ(2),True},{
2>0,True},True},Null},{Null}},Null},True},True},True},{{{{ListQ(x),False},PolynomialQ(x,x)&&Exponent(x,x)==
2&&Coefficient(x,x,2)=!=0,PolynomialQ(x,x)&&Exponent(x,x)==2&&Coefficient(x,x,2)=!=
0,{PolynomialQ(x,x),True},{{{ExpandAll(x),x},Max(1),1},1==2,False},False},False},False},False}},{{FreeQ(
2,x)&&integrate::trigq(Sin)&&integrate::binomialq(x,x)&&!integrate::binomialmatchq(x,x),FreeQ(
2,x)&&integrate::trigq(Sin)&&integrate::binomialq(x,x)&&!integrate::binomialmatchq(x,x),{FreeQ(
2,x),True},{{{{AtomQ(Sin),True},Sin},True},True},{{{ListQ(x),False},integrate::notfalseq(integrate::binomialtest(x,x)),{{{PolynomialQ(x,x),True},If(Exponent(x,x)>
0,Module({lst=Exponent(x,x,List)},If(Length(lst)==1,{0,Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},If(Length(lst)==
2&&(lst[[1]])==0,{Coefficient(x,x,0),Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},False))),False),{{{ExpandAll(x),x},Max(
1),1},1>0,True},Module({lst=Exponent(x,x,List)},If(Length(lst)==1,{0,Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},If(Length(lst)==
2&&(lst[[1]])==0,{Coefficient(x,x,0),Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},False))),{{ExpandAll(x),x},{
1}},{{{{lst$4,{1}},1},1==1,True},{0,Coefficient(x,x,Exponent(x,x)),Exponent(x,x)},{{{ExpandAll(x),x},Max(
1),1},Coefficient(x,x,1),{ExpandAll(x),x},1},{{ExpandAll(x),x},Max(1),1},{0,1,1}},{
0,1,1}},{0,1,1}},integrate::notfalseq({0,1,1}),{{0,1,1}=!=False,True},True},True},{{{{ListQ(x),False},MatchQ(x,a_.+b_.*x^n_./;FreeQ({a,b,n},x)),True},True},!True,False},False}},{{FreeQ(
2,x)&&integrate::hyperbolicq(Sin)&&integrate::binomialq(x,x)&&!integrate::binomialmatchq(x,x),FreeQ(
2,x)&&integrate::hyperbolicq(Sin)&&integrate::binomialq(x,x)&&!integrate::binomialmatchq(x,x),{FreeQ(
2,x),True},{{{{AtomQ(Sin),True},Sin},False},False},False}},{{{{{2<0,False}}},{{{{{{
2<0,False}}},{{{{{2<0,False}}},False},If(Sin(x)^2===x||integrate::calculusq(Sin(x)^
2),False,If(integrate::powerq(Sin(x)^2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::linearq(Sin(x)^
2[[2]],x),§$exponflag$=True;integrate::functionofexponentialtestaux(Sin(x)^2[[1]],Sin(x)^
2[[2]],x),If(integrate::hyperbolicq(Sin(x)^2)&&integrate::linearq(Sin(x)^2[[1]],x),integrate::functionofexponentialtestaux(E,Sin(x)^
2[[1]],x),If(integrate::powerq(Sin(x)^2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::sumq(Sin(x)^
2[[2]]),integrate::functionofexponentialtest(Sin(x)^2[[1]]^First(Sin(x)^2[[2]]),x)&&integrate::functionofexponentialtest(Sin(x)^
2[[1]]^Rest(Sin(x)^2[[2]]),x),Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x)^
2);True))))),{{{{{2<0,False}}},False},{{{{2<0,False}}},{{{{{2<0,False}}},Power},False},False},False},If(integrate::powerq(Sin(x)^
2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::linearq(Sin(x)^2[[2]],x),§$exponflag$=True;integrate::functionofexponentialtestaux(Sin(x)^
2[[1]],Sin(x)^2[[2]],x),If(integrate::hyperbolicq(Sin(x)^2)&&integrate::linearq(Sin(x)^
2[[1]],x),integrate::functionofexponentialtestaux(E,Sin(x)^2[[1]],x),If(integrate::powerq(Sin(x)^
2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::sumq(Sin(x)^2[[2]]),integrate::functionofexponentialtest(Sin(x)^
2[[1]]^First(Sin(x)^2[[2]]),x)&&integrate::functionofexponentialtest(Sin(x)^2[[1]]^Rest(Sin(x)^
2[[2]]),x),Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x)^
2);True)))),{integrate::powerq(Sin(x)^2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::linearq(Sin(x)^
2[[2]],x),integrate::powerq(Sin(x)^2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::linearq(Sin(x)^
2[[2]],x),{{{{2<0,False}}},{{{{{2<0,False}}},Power},Power===Power,True},True},{{{{{
2<0,False}}},Sin(x)},False},False},If(integrate::hyperbolicq(Sin(x)^2)&&integrate::linearq(Sin(x)^
2[[1]],x),integrate::functionofexponentialtestaux(E,Sin(x)^2[[1]],x),If(integrate::powerq(Sin(x)^
2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::sumq(Sin(x)^2[[2]]),integrate::functionofexponentialtest(Sin(x)^
2[[1]]^First(Sin(x)^2[[2]]),x)&&integrate::functionofexponentialtest(Sin(x)^2[[1]]^Rest(Sin(x)^
2[[2]]),x),Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x)^
2);True))),{{{{{2<0,False}}},{{{{{{2<0,False}}},False},Head(Sin(x)^2),{{{2<0,False}}},Power},False},False},False},If(integrate::powerq(Sin(x)^
2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::sumq(Sin(x)^2[[2]]),integrate::functionofexponentialtest(Sin(x)^
2[[1]]^First(Sin(x)^2[[2]]),x)&&integrate::functionofexponentialtest(Sin(x)^2[[1]]^Rest(Sin(x)^
2[[2]]),x),Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x)^
2);True)),{integrate::powerq(Sin(x)^2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::sumq(Sin(x)^
2[[2]]),integrate::powerq(Sin(x)^2)&&FreeQ(Sin(x)^2[[1]],x)&&integrate::sumq(Sin(x)^
2[[2]]),{{{{2<0,False}}},{{{{{2<0,False}}},Power},Power===Power,True},True},{{{{{
2<0,False}}},Sin(x)},False},False},Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x)^
2);True),{{{{{2<0,False}}},{{If(!integrate::functionofexponentialtest(#1,x),Throw(False))&[Sin(x)],If(!integrate::functionofexponentialtest(Sin(x),x),Throw(False)),{{{{FreeQ(Sin(x),x),False},If(Sin(x)===x||integrate::calculusq(Sin(x)),False,If(integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
1]],x)&&integrate::linearq(Sin(x)[[2]],x),§$exponflag$=True;integrate::functionofexponentialtestaux(Sin(x)[[
1]],Sin(x)[[2]],x),If(integrate::hyperbolicq(Sin(x))&&integrate::linearq(Sin(x)[[
1]],x),integrate::functionofexponentialtestaux(E,Sin(x)[[1]],x),If(integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
1]],x)&&integrate::sumq(Sin(x)[[2]]),integrate::functionofexponentialtest(Sin(x)[[
1]]^First(Sin(x)[[2]]),x)&&integrate::functionofexponentialtest(Sin(x)[[1]]^Rest(Sin(x)[[
2]]),x),Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x));True))))),{{Sin(x)===x,False},{{{Head(Sin(x)),Sin},False},False},False},If(integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
1]],x)&&integrate::linearq(Sin(x)[[2]],x),§$exponflag$=True;integrate::functionofexponentialtestaux(Sin(x)[[
1]],Sin(x)[[2]],x),If(integrate::hyperbolicq(Sin(x))&&integrate::linearq(Sin(x)[[
1]],x),integrate::functionofexponentialtestaux(E,Sin(x)[[1]],x),If(integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
1]],x)&&integrate::sumq(Sin(x)[[2]]),integrate::functionofexponentialtest(Sin(x)[[
1]]^First(Sin(x)[[2]]),x)&&integrate::functionofexponentialtest(Sin(x)[[1]]^Rest(Sin(x)[[
2]]),x),Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x));True)))),{integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
1]],x)&&integrate::linearq(Sin(x)[[2]],x),integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
1]],x)&&integrate::linearq(Sin(x)[[2]],x),{{{Head(Sin(x)),Sin},Sin===Power,False},False},False},If(integrate::hyperbolicq(Sin(x))&&integrate::linearq(Sin(x)[[
1]],x),integrate::functionofexponentialtestaux(E,Sin(x)[[1]],x),If(integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
1]],x)&&integrate::sumq(Sin(x)[[2]]),integrate::functionofexponentialtest(Sin(x)[[
1]]^First(Sin(x)[[2]]),x)&&integrate::functionofexponentialtest(Sin(x)[[1]]^Rest(Sin(x)[[
2]]),x),Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x));True))),{{{{{AtomQ(Sin(x)),False},Head(Sin(x)),Sin},False},False},False},If(integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
1]],x)&&integrate::sumq(Sin(x)[[2]]),integrate::functionofexponentialtest(Sin(x)[[
1]]^First(Sin(x)[[2]]),x)&&integrate::functionofexponentialtest(Sin(x)[[1]]^Rest(Sin(x)[[
2]]),x),Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x));True)),{integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
1]],x)&&integrate::sumq(Sin(x)[[2]]),integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[1]],x)&&integrate::sumq(Sin(x)[[
2]]),{{{Head(Sin(x)),Sin},Sin===Power,False},False},False},Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,Sin(x));True),{{{{If(!integrate::functionofexponentialtest(#1,x),Throw(False))&[x],If(!integrate::functionofexponentialtest(x,x),Throw(False)),{{{{FreeQ(x,x),False},If(x===x||integrate::calculusq(x),False,If(integrate::powerq(x)&&FreeQ((x[[
1]]),x)&&integrate::linearq((x[[2]]),x),§$exponflag$=True;integrate::functionofexponentialtestaux((x[[
1]]),(x[[2]]),x),If(integrate::hyperbolicq(x)&&integrate::linearq((x[[1]]),x),integrate::functionofexponentialtestaux(E,(x[[
1]]),x),If(integrate::powerq(x)&&FreeQ((x[[1]]),x)&&integrate::sumq((x[[2]])),integrate::functionofexponentialtest((x[[
1]])^First((x[[2]])),x)&&integrate::functionofexponentialtest((x[[1]])^Rest((x[[
2]])),x),Catch(Scan(If(!integrate::functionofexponentialtest(#1,x),Throw(False))&,x);True))))),{{x===x,True},True},False},False},!False,True},Throw(False)}}}},False},False},!False,True},Throw(False)}}}},False},False},False},False},False}},{{{{{
2<0,False}}},{{{{{2<0,False}}},Power},Power=!=Plus,True},True},{{{{{{{2<0,False}}}},{{{{{
2<0,False}}}},x*Sin(x)^2,{{{2<0,False}}}},x*Sin(x)^2,{{{2<0,False}}}},integrate::functionoflog(x*Sin(x)^
2,x),{{{{2<0,False}}}},{{{{{{2<0,False}}}},{{{{{{2<0,False}}}},False},If(integrate::calculusq(x*Sin(x)^
2),False,Module({lst},If(integrate::logq(x*Sin(x)^2)&&integrate::notfalseq(lst=integrate::binomialtest(x*Sin(x)^
2[[1]],x))&&integrate::zeroq((lst[[1]])),If(integrate::falseq(False)||x*Sin(x)^2[[
1]]===False,{x,x*Sin(x)^2[[1]],(lst[[3]])},False),lst={0,False,False};Catch({((lst=integrate::functionoflog(#1,(lst[[
2]]),(lst[[3]]),x);If(integrate::falseq(lst),Throw(False),(lst[[1]])))&)/@(x*Sin(x)^
2),(lst[[2]]),(lst[[3]])})))),{{{{{2<0,False}}}},{{{{{{2<0,False}}}},Times},False},False},Module({lst},If(integrate::logq(x*Sin(x)^
2)&&integrate::notfalseq(lst=integrate::binomialtest(x*Sin(x)^2[[1]],x))&&integrate::zeroq((lst[[
1]])),If(integrate::falseq(False)||x*Sin(x)^2[[1]]===False,{x,x*Sin(x)^2[[1]],(lst[[
3]])},False),lst={0,False,False};Catch({((lst=integrate::functionoflog(#1,(lst[[
2]]),(lst[[3]]),x);If(integrate::falseq(lst),Throw(False),(lst[[1]])))&)/@(x*Sin(x)^
2),(lst[[2]]),(lst[[3]])}))),{{integrate::logq(x*Sin(x)^2)&&integrate::notfalseq(lst$7=integrate::binomialtest(x*Sin(x)^
2[[1]],x))&&integrate::zeroq((lst$7[[1]])),integrate::logq(x*Sin(x)^2)&&integrate::notfalseq(lst$7=integrate::binomialtest(x*Sin(x)^
2[[1]],x))&&integrate::zeroq((lst$7[[1]])),{{{{{2<0,False}}}},{{{{{{2<0,False}}}},Times},Times===Log,False},False},False},lst$7={
0,False,False};Catch({((lst$7=integrate::functionoflog(#1,(lst$7[[2]]),(lst$7[[3]]),x);If(integrate::falseq(lst$7),Throw(False),(lst$7[[
1]])))&)/@(x*Sin(x)^2),(lst$7[[2]]),(lst$7[[3]])}),{lst$7={0,False,False},{0,False,False}},{{{{{{{
2<0,False}}}},(lst$7=integrate::functionoflog(#1,(lst$7[[2]]),(lst$7[[3]]),x);If(integrate::falseq(lst$7),Throw(False),(lst$7[[
1]])))&[x]*(lst$7=integrate::functionoflog(#1,(lst$7[[2]]),(lst$7[[3]]),x);If(integrate::falseq(lst$7),Throw(False),(lst$7[[
1]])))&[Sin(x)^2],{(lst$7=integrate::functionoflog(#1,(lst$7[[2]]),(lst$7[[3]]),x);If(integrate::falseq(lst$7),Throw(False),(lst$7[[
1]])))&[x],lst$7=integrate::functionoflog(x,(lst$7[[2]]),(lst$7[[3]]),x);If(integrate::falseq(lst$7),Throw(False),(lst$7[[
1]])),{{{{lst$7,{0,False,False}},False},{{lst$7,{0,False,False}},False},integrate::functionoflog(x,False,False,x),{{AtomQ(x),True},If(x===x,False,{x,False,False}),{x===x,True},False},False},False},{{{lst$7,False},integrate::falseq(False),{False===False,True},True},Throw(False)}}}},False},False},False},False},{{{{lst$6,False},integrate::falseq(False),{False===False,True},True},True},False},False},False},{{{{lst$5,False},integrate::falseq(False),{False===False,True},True},!True,False}}}},{{{{{
2<0,False}}},{{{{{{{2<0,False}}},{{{{{2<0,False}}},False},If(integrate::trigq(Sin(x)^
2)&&integrate::linearq(Sin(x)^2[[1]],x),If(Null===Null,Sin(x)^2[[1]],Module({a=Coefficient(Null,x,
0),b=Coefficient(Null,x,1),c=Coefficient(Sin(x)^2[[1]],x,0),d=Coefficient(Sin(x)^
2[[1]],x,1)},If(integrate::zeroq(-b*c+a*d)&&integrate::rationalq(b/d),a/Numerator(b/d)+(b*x)/Numerator(b/d),False))),If(integrate::hyperbolicq(Sin(x)^
2)&&integrate::linearq(Sin(x)^2[[1]],x),If(Null===Null,I*Sin(x)^2[[1]],Module({a=Coefficient(Null,x,
0),b=Coefficient(Null,x,1),c=I*Coefficient(Sin(x)^2[[1]],x,0),d=I*Coefficient(Sin(x)^
2[[1]],x,1)},If(integrate::zeroq(-b*c+a*d)&&integrate::rationalq(b/d),a/Numerator(b/d)+(b*x)/Numerator(b/d),False))),If(integrate::calculusq(Sin(x)^
2),False,Module({w=Null},Catch(Scan(If(integrate::falseq(w=integrate::functionoftrig(#1,w,x)),Throw(False))&,Sin(x)^
2);w))))),{{{{{2<0,False}}},{{{{{{2<0,False}}},False},Head(Sin(x)^2),{{{2<0,False}}},Power},False},False},False},If(integrate::hyperbolicq(Sin(x)^
2)&&integrate::linearq(Sin(x)^2[[1]],x),If(Null===Null,I*Sin(x)^2[[1]],Module({a=Coefficient(Null,x,
0),b=Coefficient(Null,x,1),c=I*Coefficient(Sin(x)^2[[1]],x,0),d=I*Coefficient(Sin(x)^
2[[1]],x,1)},If(integrate::zeroq(-b*c+a*d)&&integrate::rationalq(b/d),a/Numerator(b/d)+(b*x)/Numerator(b/d),False))),If(integrate::calculusq(Sin(x)^
2),False,Module({w=Null},Catch(Scan(If(integrate::falseq(w=integrate::functionoftrig(#1,w,x)),Throw(False))&,Sin(x)^
2);w)))),{{{{{2<0,False}}},{{{{{{2<0,False}}},False},Head(Sin(x)^2),{{{2<0,False}}},Power},False},False},False},If(integrate::calculusq(Sin(x)^
2),False,Module({w=Null},Catch(Scan(If(integrate::falseq(w=integrate::functionoftrig(#1,w,x)),Throw(False))&,Sin(x)^
2);w))),{{{{2<0,False}}},{{{{{2<0,False}}},Power},False},False},Module({w=Null},Catch(Scan(If(integrate::falseq(w=integrate::functionoftrig(#1,w,x)),Throw(False))&,Sin(x)^
2);w)),{{{{{{2<0,False}}},{{If(integrate::falseq(w$8=integrate::functionoftrig(#1,w$8,x)),Throw(False))&[Sin(x)],If(integrate::falseq(w$8=integrate::functionoftrig(Sin(x),w$8,x)),Throw(False)),{{{{w$8,Null},integrate::functionoftrig(Sin(x),Null,x),{{AtomQ(Sin(x)),False},If(integrate::trigq(Sin(x))&&integrate::linearq(Sin(x)[[
1]],x),If(Null===Null,Sin(x)[[1]],Module({a=Coefficient(Null,x,0),b=Coefficient(Null,x,
1),c=Coefficient(Sin(x)[[1]],x,0),d=Coefficient(Sin(x)[[1]],x,1)},If(integrate::zeroq(-b*c+a*d)&&integrate::rationalq(b/d),a/Numerator(b/d)+(b*x)/Numerator(b/d),False))),If(integrate::hyperbolicq(Sin(x))&&integrate::linearq(Sin(x)[[
1]],x),If(Null===Null,I*Sin(x)[[1]],Module({a=Coefficient(Null,x,0),b=Coefficient(Null,x,
1),c=I*Coefficient(Sin(x)[[1]],x,0),d=I*Coefficient(Sin(x)[[1]],x,1)},If(integrate::zeroq(-b*c+a*d)&&integrate::rationalq(b/d),a/Numerator(b/d)+(b*x)/Numerator(b/d),False))),If(integrate::calculusq(Sin(x)),False,Module({w=Null},Catch(Scan(If(integrate::falseq(w=integrate::functionoftrig(#1,w,x)),Throw(False))&,Sin(x));w))))),{{{{{AtomQ(Sin(x)),False},Head(Sin(x)),Sin},True},True},{{Sin(x)[[
1]],x},integrate::linearq(x,x),{{{ListQ(x),False},PolynomialQ(x,x)&&Exponent(x,x)==
1&&Coefficient(x,x,1)=!=0,PolynomialQ(x,x)&&Exponent(x,x)==1&&Coefficient(x,x,1)=!=
0,{PolynomialQ(x,x),True},{{{ExpandAll(x),x},Max(1),1},1==1,True},{{{ExpandAll(x),x},
1},1=!=0,True},True},True},True},True},If(Null===Null,Sin(x)[[1]],Module({a=Coefficient(Null,x,
0),b=Coefficient(Null,x,1),c=Coefficient(Sin(x)[[1]],x,0),d=Coefficient(Sin(x)[[
1]],x,1)},If(integrate::zeroq(-b*c+a*d)&&integrate::rationalq(b/d),a/Numerator(b/d)+(b*x)/Numerator(b/d),False))),{Null===Null,True},Sin(x)[[
1]],x},x},x},integrate::falseq(x),{x===False,False},False},Null},{If(integrate::falseq(w$8=integrate::functionoftrig(#1,w$8,x)),Throw(False))&[
2],If(integrate::falseq(w$8=integrate::functionoftrig(2,w$8,x)),Throw(False)),{{{{w$8,x},integrate::functionoftrig(
2,x,x),{{AtomQ(2),True},If(2===x,False,x),{2===x,False},x},x},x},integrate::falseq(x),{x===False,False},False},Null},Null^Null},Null},{w$8,x},x},x},x},x},False},!False,True},{{{{
2<0,False}}},{{{{{2<0,False}}},False},If(integrate::trigq(Sin(x)^2)&&integrate::linearq(Sin(x)^
2[[1]],x),True,If(integrate::hyperbolicq(Sin(x)^2)&&integrate::linearq(Sin(x)^2[[
1]],x),True,If(integrate::powerq(Sin(x)^2)&&FreeQ(Sin(x)^2[[2]],x),integrate::algebraictrigfunctionq(Sin(x)^
2[[1]],x),If(integrate::productq(Sin(x)^2)||integrate::sumq(Sin(x)^2),Catch(Scan(If(!integrate::algebraictrigfunctionq(#1,x),Throw(False))&,Sin(x)^
2);True),False)))),{{{{{2<0,False}}},{{{{{{2<0,False}}},False},Head(Sin(x)^2),{{{
2<0,False}}},Power},False},False},False},If(integrate::hyperbolicq(Sin(x)^2)&&integrate::linearq(Sin(x)^
2[[1]],x),True,If(integrate::powerq(Sin(x)^2)&&FreeQ(Sin(x)^2[[2]],x),integrate::algebraictrigfunctionq(Sin(x)^
2[[1]],x),If(integrate::productq(Sin(x)^2)||integrate::sumq(Sin(x)^2),Catch(Scan(If(!integrate::algebraictrigfunctionq(#1,x),Throw(False))&,Sin(x)^
2);True),False))),{{{{{2<0,False}}},{{{{{{2<0,False}}},False},Head(Sin(x)^2),{{{
2<0,False}}},Power},False},False},False},If(integrate::powerq(Sin(x)^2)&&FreeQ(Sin(x)^
2[[2]],x),integrate::algebraictrigfunctionq(Sin(x)^2[[1]],x),If(integrate::productq(Sin(x)^
2)||integrate::sumq(Sin(x)^2),Catch(Scan(If(!integrate::algebraictrigfunctionq(#1,x),Throw(False))&,Sin(x)^
2);True),False)),{{{{{2<0,False}}},{{{{{2<0,False}}},Power},Power===Power,True},True},{{{{{
2<0,False}}},2},True},True},integrate::algebraictrigfunctionq(Sin(x)^2[[1]],x),{{{{
2<0,False}}},Sin(x)},integrate::algebraictrigfunctionq(Sin(x),x),{{AtomQ(Sin(x)),False},If(integrate::trigq(Sin(x))&&integrate::linearq(Sin(x)[[
1]],x),True,If(integrate::hyperbolicq(Sin(x))&&integrate::linearq(Sin(x)[[1]],x),True,If(integrate::powerq(Sin(x))&&FreeQ(Sin(x)[[
2]],x),integrate::algebraictrigfunctionq(Sin(x)[[1]],x),If(integrate::productq(Sin(x))||integrate::sumq(Sin(x)),Catch(Scan(If(!integrate::algebraictrigfunctionq(#1,x),Throw(False))&,Sin(x));True),False)))),{{{{{AtomQ(Sin(x)),False},Head(Sin(x)),Sin},True},True},{{Sin(x)[[
1]],x},integrate::linearq(x,x),{{{ListQ(x),False},PolynomialQ(x,x)&&Exponent(x,x)==
1&&Coefficient(x,x,1)=!=0,PolynomialQ(x,x)&&Exponent(x,x)==1&&Coefficient(x,x,1)=!=
0,{PolynomialQ(x,x),True},{{{ExpandAll(x),x},Max(1),1},1==1,True},{{{ExpandAll(x),x},
1},1=!=0,True},True},True},True},True},True},True},True},True},True},{{{{{2<0,False}}},{{{{{
2<0,False}}},{{{{{2<0,False}}},False},If(integrate::trigq(Sin(x)^2)&&integrate::linearq(Sin(x)^
2[[1]],x),Module({v=integrate::expandtosum(Sin(x)^2[[1]],x)},If(integrate::sinq(Sin(x)^
2),§sin(v),If(integrate::cosq(Sin(x)^2),§cos(v),If(integrate::tanq(Sin(x)^2),§tan(v),If(integrate::cotq(Sin(x)^
2),§cot(v),If(integrate::secq(Sin(x)^2),§sec(v),§csc(v))))))),If(integrate::hyperbolicq(Sin(x)^
2)&&integrate::linearq(Sin(x)^2[[1]],x),Module({v=integrate::expandtosum(I*Sin(x)^
2[[1]],x)},If(integrate::sinhq(Sin(x)^2),(-1)*I*§sin(v),If(integrate::coshq(Sin(x)^
2),§cos(v),If(integrate::tanhq(Sin(x)^2),(-1)*I*§tan(v),If(integrate::cothq(Sin(x)^
2),I*§cot(v),If(integrate::sechq(Sin(x)^2),§sec(v),I*§csc(v))))))),(integrate::deactivatetrigaux(#1,x)&)/@(Sin(x)^
2))),{{{{{2<0,False}}},{{{{{{2<0,False}}},False},Head(Sin(x)^2),{{{2<0,False}}},Power},False},False},False},If(integrate::hyperbolicq(Sin(x)^
2)&&integrate::linearq(Sin(x)^2[[1]],x),Module({v=integrate::expandtosum(I*Sin(x)^
2[[1]],x)},If(integrate::sinhq(Sin(x)^2),(-1)*I*§sin(v),If(integrate::coshq(Sin(x)^
2),§cos(v),If(integrate::tanhq(Sin(x)^2),(-1)*I*§tan(v),If(integrate::cothq(Sin(x)^
2),I*§cot(v),If(integrate::sechq(Sin(x)^2),§sec(v),I*§csc(v))))))),(integrate::deactivatetrigaux(#1,x)&)/@(Sin(x)^
2)),{{{{{2<0,False}}},{{{{{{2<0,False}}},False},Head(Sin(x)^2),{{{2<0,False}}},Power},False},False},False},(integrate::deactivatetrigaux(#1,x)&)/@(Sin(x)^
2),{{{2<0,False}}},integrate::deactivatetrigaux(#1,x)&[Sin(x)]^integrate::deactivatetrigaux(#1,x)&[
2],{integrate::deactivatetrigaux(#1,x)&[Sin(x)],integrate::deactivatetrigaux(Sin(x),x),{{AtomQ(Sin(x)),False},If(integrate::trigq(Sin(x))&&integrate::linearq(Sin(x)[[
1]],x),Module({v=integrate::expandtosum(Sin(x)[[1]],x)},If(integrate::sinq(Sin(x)),§sin(v),If(integrate::cosq(Sin(x)),§cos(v),If(integrate::tanq(Sin(x)),§tan(v),If(integrate::cotq(Sin(x)),§cot(v),If(integrate::secq(Sin(x)),§sec(v),§csc(v))))))),If(integrate::hyperbolicq(Sin(x))&&integrate::linearq(Sin(x)[[
1]],x),Module({v=integrate::expandtosum(I*Sin(x)[[1]],x)},If(integrate::sinhq(Sin(x)),(
-1)*I*§sin(v),If(integrate::coshq(Sin(x)),§cos(v),If(integrate::tanhq(Sin(x)),(
-1)*I*§tan(v),If(integrate::cothq(Sin(x)),I*§cot(v),If(integrate::sechq(Sin(x)),§sec(v),I*§csc(v))))))),(integrate::deactivatetrigaux(#1,x)&)/@Sin(x))),{{{{{AtomQ(Sin(x)),False},Head(Sin(x)),Sin},True},True},{{Sin(x)[[
1]],x},integrate::linearq(x,x),{{{ListQ(x),False},PolynomialQ(x,x)&&Exponent(x,x)==
1&&Coefficient(x,x,1)=!=0,PolynomialQ(x,x)&&Exponent(x,x)==1&&Coefficient(x,x,1)=!=
0,{PolynomialQ(x,x),True},{{{ExpandAll(x),x},Max(1),1},1==1,True},{{{ExpandAll(x),x},
1},1=!=0,True},True},True},True},True},Module({v=integrate::expandtosum(Sin(x)[[
1]],x)},If(integrate::sinq(Sin(x)),§sin(v),If(integrate::cosq(Sin(x)),§cos(v),If(integrate::tanq(Sin(x)),§tan(v),If(integrate::cotq(Sin(x)),§cot(v),If(integrate::secq(Sin(x)),§sec(v),§csc(v))))))),{{Sin(x)[[
1]],x},integrate::expandtosum(x,x),{{PolynomialQ(x,x),True},Plus@@(x^#1*Coefficient(x,x,#1)&)/@Exponent(x,x,List),{{{ExpandAll(x),x},{
1}},(x^#1*Coefficient(x,x,#1)&)/@{1},{x^#1*Coefficient(x,x,#1)&[1]},{x^#1*Coefficient(x,x,#1)&[
1],x^1*Coefficient(x,x,1),{x^1,x},{{ExpandAll(x),x},1},1*x,x},{x}},Plus(x),x},x},{{{{Head(Sin(x)),Sin},Sin===Sin,True},True},§sin(v$9),{v$9,x},§sin(x)},§sin(x)},§sin(x)},{integrate::deactivatetrigaux(#1,x)&[
2],integrate::deactivatetrigaux(2,x),{{AtomQ(2),True},2},2},§sin(x)^2},§sin(x)^2},integrate::fixinerttrigfunction(§sin(x)^
2,x),§sin(x)^2},§sin(x)^2},{{FreeQ({0,1,1},x)&&integrate::rationalq(2)&&2>1&&!OddQ(
2),FreeQ({0,1,1},x)&&integrate::rationalq(2)&&2>1&&!OddQ(2),{FreeQ({0,1,1},x),True},{{{{{{Sequence(
2)},{2}},Scan(If(IntegerQ(#1)||Head(#1)===Rational,Null,Throw(False))&,{2}),{{If(IntegerQ(#1)||Head(#1)===Rational,Null,Throw(False))&[
2],If(IntegerQ(2)||Head(2)===Rational,Null,Throw(False)),{{IntegerQ(2),True},True},Null},{Null}},Null},True},True},True},{
2>1,True},{{OddQ(2),False},!False,True},True},{{{{{1*x,x},0+x,x},Cos(x)},{{{{{1*x,x},
0+x,x},Sin(x)},1*Sin(x),Sin(x)},{-1+2,1},Sin(x)^1,{{1<0,False}},Sin(x)},{{1*2,2},1/
2,1/2},(-1)*1/2*1*Cos(x)*Sin(x),-1/2*Cos(x)*Sin(x)},{{1^2,1},{-1+2,1},{1/2,1/2},{{{{{{
1*x,x},0+x,x},Sin(x)},1*Sin(x),Sin(x)},{-2+2,0},Sin(x)^0,{{0<0,False}},1},1*x,x},
1/2*1*1*x,x/2},-1/2*Cos(x)*Sin(x)+x/2},-1/2*Cos(x)*Sin(x)+x/2},-1/2*Cos(x)*Sin(x)+x/
2},-1/2*Cos(x)*Sin(x)+x/2},-1/2*Cos(x)*Sin(x)+x/2},2*(-1/2*Cos(x)*Sin(x)+x/2)}
\sqrt{x}