text:
using Rubin
using Tests
using Elliptic
using HypergeometricFunctions
using Polylogarithms
using SpecialFunctions

@test integrate(x^4*exp(im*arctan(a*x)), x) == :(3//8*a^-5*arcsinh(a*x)+1//4*a^-2*x^3*(1+a^2*x^2)^(1/2)+1//120*a^-5*(1+a^2*x^2)^(1/2)*(64im+-45*a*x)+-4//15*im*a^-3*x^2*(1+a^2*x^2)^(1/2)+1//5*im*a^-1*x^4*(1+a^2*x^2)^(1/2))
@test integrate(x^3*exp(im*arctan(a*x)), x) == :(-1//24*a^-4*(1+a^2*x^2)^(1/2)*(16+9*im*a*x)+1//3*a^-2*x^2*(1+a^2*x^2)^(1/2)+3//8*im*a^-4*arcsinh(a*x)+1//4*im*a^-1*x^3*(1+a^2*x^2)^(1/2))
@test integrate(x^2*exp(im*arctan(a*x)), x) == :(-1//2*a^-3*arcsinh(a*x)+(1/2)*x*a^-2*(1+a^2*x^2)^(1/2)+-1*im*a^-3*(1+a^2*x^2)^(1/2)+1//3*im*a^-3*(1+a^2*x^2)^3//2)
@test integrate(x*exp(im*arctan(a*x)), x) == :((1/2)*a^-2*(1+a^2*x^2)^(1/2)*(2+im*a*x)+-1//2*im*a^-2*arcsinh(a*x))
@test integrate(exp(im*arctan(a*x)), x) == :(a^-1*arcsinh(a*x)+im*a^-1*(1+a^2*x^2)^(1/2))
@test integrate(x^-1*exp(im*arctan(a*x)), x) == :(-1*arctanh((1+a^2*x^2)^(1/2))+im*arcsinh(a*x))
@test integrate(x^-2*exp(im*arctan(a*x)), x) == :(-1*x^-1*(1+a^2*x^2)^(1/2)+-1*im*a*arctanh((1+a^2*x^2)^(1/2)))
@test integrate(x^-3*exp(im*arctan(a*x)), x) == :((1/2)*a^2*arctanh((1+a^2*x^2)^(1/2))+-1//2*x^-2*(1+a^2*x^2)^(1/2)+-1*im*a*x^-1*(1+a^2*x^2)^(1/2))
@test integrate(x^-4*exp(im*arctan(a*x)), x) == :(-1//3*x^-3*(1+a^2*x^2)^(1/2)+(1/2)*im*a^3*arctanh((1+a^2*x^2)^(1/2))+2//3*a^2*x^-1*(1+a^2*x^2)^(1/2)+-1//2*im*a*x^-2*(1+a^2*x^2)^(1/2))
@test integrate(x^-5*exp(im*arctan(a*x)), x) == :(-3//8*a^4*arctanh((1+a^2*x^2)^(1/2))+-1//4*x^-4*(1+a^2*x^2)^(1/2)+3//8*a^2*x^-2*(1+a^2*x^2)^(1/2)+-1//3*im*a*x^-3*(1+a^2*x^2)^(1/2)+2//3*im*a^3*x^-1*(1+a^2*x^2)^(1/2))
@test integrate(x^3*exp(2*im*arctan(a*x)), x) == :(-1//4*x^4+a^-2*x^2+-2*a^-4*log(im+a*x)+-2*im*x*a^-3+2//3*im*a^-1*x^3)
@test integrate(x^2*exp(2*im*arctan(a*x)), x) == :(-1//3*x^3+2*x*a^-2+im*a^-1*x^2+-2*im*a^-3*log(im+a*x))
@test integrate(x*exp(2*im*arctan(a*x)), x) == :(-1//2*x^2+2*a^-2*log(im+a*x)+2*im*x*a^-1)
@test integrate(exp(2*im*arctan(a*x)), x) == :(-1x+2*im*a^-1*log(im+a*x))
@test integrate(x^-1*exp(2*im*arctan(a*x)), x) == :(-2*log(im+a*x)+log(x))
@test integrate(x^-2*exp(2*im*arctan(a*x)), x) == :(-1*x^-1+-2*im*a*log(im+a*x)+2*im*a*log(x))
@test integrate(x^-3*exp(2*im*arctan(a*x)), x) == :(-1//2*x^-2+-2*a^2*log(x)+2*a^2*log(im+a*x)+-2*im*a*x^-1)
@test integrate(x^-4*exp(2*im*arctan(a*x)), x) == :(-1//3*x^-3+2*a^2*x^-1+-1*im*a*x^-2+-2*im*a^3*log(x)+2*im*a^3*log(im+a*x))
@test integrate(x^3*exp(3*im*arctan(a*x)), x) == :(27//4*a^-4*(1+a^2*x^2)^(1/2)+a^-4*(1+a^2*x^2)^-1//2*(1+im*a*x)^3+-1*a^-2*x^2*(1+a^2*x^2)^(1/2)+-51//8*im*a^-4*arcsinh(a*x)+-9//8*im*a^-4*(1+a^2*x^2)^(1/2)*(2im+-3*a*x)+-1//4*im*a^-1*x^3*(1+a^2*x^2)^(1/2))
@test integrate(x^2*exp(3*im*arctan(a*x)), x) == :(11//2*a^-3*arcsinh(a*x)+1//6*a^-3*(1+a^2*x^2)^(1/2)*(28im+-3*a*x)+im*a^-3*(1+a^2*x^2)^-1//2*(1+im*a*x)^3+1//3*im*a^-3*(1+a^2*x^2)^(1/2)*(3+im*a*x)^2)
@test integrate(x*exp(3*im*arctan(a*x)), x) == :(-9//2*a^-2*(1+a^2*x^2)^(1/2)+-1*a^-2*(1+a^2*x^2)^5//2*(1+-1*im*a*x)^-3+-3//2*a^-2*(1+a^2*x^2)^3//2*(1+-1*im*a*x)^-1+9//2*im*a^-2*arcsinh(a*x))
@test integrate(exp(3*im*arctan(a*x)), x) == :(-3*a^-1*arcsinh(a*x)+-3*im*a^-1*(1+a^2*x^2)^(1/2)+-2*im*a^-1*(1+a^2*x^2)^-1//2*(1+im*a*x)^2)
@test integrate(x^-1*exp(3*im*arctan(a*x)), x) == :(-1*arctanh((1+a^2*x^2)^(1/2))+-1*im*arcsinh(a*x)+4*im*(1+a^2*x^2)^(1/2)*(im+a*x)^-1)
@test integrate(x^-2*exp(3*im*arctan(a*x)), x) == :(-1*x^-1*(1+a^2*x^2)^(1/2)+-4*a*(1+a^2*x^2)^(1/2)*(im+a*x)^-1+-3*im*a*arctanh((1+a^2*x^2)^(1/2)))
@test integrate(x^-3*exp(3*im*arctan(a*x)), x) == :(-1//2*x^-2*(1+a^2*x^2)^(1/2)+9//2*a^2*arctanh((1+a^2*x^2)^(1/2))+-4*im*a^2*(1+a^2*x^2)^(1/2)*(im+a*x)^-1+-3*im*a*x^-1*(1+a^2*x^2)^(1/2))
@test integrate(x^-4*exp(3*im*arctan(a*x)), x) == :(-1//3*x^-3*(1+a^2*x^2)^(1/2)+4*a^3*(1+a^2*x^2)^(1/2)*(im+a*x)^-1+11//2*im*a^3*arctanh((1+a^2*x^2)^(1/2))+14//3*a^2*x^-1*(1+a^2*x^2)^(1/2)+-3//2*im*a*x^-2*(1+a^2*x^2)^(1/2))
@test integrate(x^3*exp(4*im*arctan(a*x)), x) == :(1//4*x^4+-4*a^-2*x^2+16*a^-4*log(im+a*x)+4*im*a^-4*(im+a*x)^-1+12*im*x*a^-3+-4//3*im*a^-1*x^3)
@test integrate(x^2*exp(4*im*arctan(a*x)), x) == :(1//3*x^3+-8*x*a^-2+-4*a^-3*(im+a*x)^-1+-2*im*a^-1*x^2+12*im*a^-3*log(im+a*x))
@test integrate(x*exp(4*im*arctan(a*x)), x) == :((1/2)*x^2+-8*a^-2*log(im+a*x)+-4*im*x*a^-1+-4*im*a^-2*(im+a*x)^-1)
@test integrate(exp(4*im*arctan(a*x)), x) == :(x+4*a^-1*(im+a*x)^-1+-4*im*a^-1*log(im+a*x))
@test integrate(x^-1*exp(4*im*arctan(a*x)), x) == :(4*im*(im+a*x)^-1+log(x))
@test integrate(x^-2*exp(4*im*arctan(a*x)), x) == :(-1*x^-1+-4*a*(im+a*x)^-1+-4*im*a*log(im+a*x)+4*im*a*log(x))
@test integrate(x^-3*exp(4*im*arctan(a*x)), x) == :(-1//2*x^-2+-8*a^2*log(x)+8*a^2*log(im+a*x)+-4*im*a*x^-1+-4*im*a^2*(im+a*x)^-1)
@test integrate(x^-4*exp(4*im*arctan(a*x)), x) == :(-1//3*x^-3+4*a^3*(im+a*x)^-1+8*a^2*x^-1+-12*im*a^3*log(x)+-2*im*a*x^-2+12*im*a^3*log(im+a*x))
@test integrate(x^3*exp(-1*im*arctan(a*x)), x) == :(-3//8*im*a^-4*arcsinh(a*x)+-1//24*a^-4*(1+a^2*x^2)^(1/2)*(16+-9*im*a*x)+1//3*a^-2*x^2*(1+a^2*x^2)^(1/2)+-1//4*im*a^-1*x^3*(1+a^2*x^2)^(1/2))
@test integrate(x^2*exp(-1*im*arctan(a*x)), x) == :(-1//2*a^-3*arcsinh(a*x)+im*a^-3*(1+a^2*x^2)^(1/2)+(1/2)*x*a^-2*(1+a^2*x^2)^(1/2)+-1//3*im*a^-3*(1+a^2*x^2)^3//2)
@test integrate(x*exp(-1*im*arctan(a*x)), x) == :((1/2)*im*a^-2*arcsinh(a*x)+(1/2)*a^-2*(1+a^2*x^2)^(1/2)*(2+-1*im*a*x))
@test integrate(exp(-1*im*arctan(a*x)), x) == :(a^-1*arcsinh(a*x)+-1*im*a^-1*(1+a^2*x^2)^(1/2))
@test integrate(x^-1*exp(-1*im*arctan(a*x)), x) == :(-1*arctanh((1+a^2*x^2)^(1/2))+-1*im*arcsinh(a*x))
@test integrate(x^-2*exp(-1*im*arctan(a*x)), x) == :(-1*x^-1*(1+a^2*x^2)^(1/2)+im*a*arctanh((1+a^2*x^2)^(1/2)))
@test integrate(x^-3*exp(-1*im*arctan(a*x)), x) == :((1/2)*a^2*arctanh((1+a^2*x^2)^(1/2))+-1//2*x^-2*(1+a^2*x^2)^(1/2)+im*a*x^-1*(1+a^2*x^2)^(1/2))
@test integrate(x^-4*exp(-1*im*arctan(a*x)), x) == :(-1//3*x^-3*(1+a^2*x^2)^(1/2)+-1//2*im*a^3*arctanh((1+a^2*x^2)^(1/2))+2//3*a^2*x^-1*(1+a^2*x^2)^(1/2)+(1/2)*im*a*x^-2*(1+a^2*x^2)^(1/2))
@test integrate(x^-5*exp(-1*im*arctan(a*x)), x) == :(-3//8*a^4*arctanh((1+a^2*x^2)^(1/2))+-1//4*x^-4*(1+a^2*x^2)^(1/2)+3//8*a^2*x^-2*(1+a^2*x^2)^(1/2)+-2//3*im*a^3*x^-1*(1+a^2*x^2)^(1/2)+1//3*im*a*x^-3*(1+a^2*x^2)^(1/2))
@test integrate(x^3*exp(-2*im*arctan(a*x)), x) == :(-1//4*x^4+a^-2*x^2+-2*a^-4*log(im+-1*a*x)+2*im*x*a^-3+-2//3*im*a^-1*x^3)
@test integrate(x^2*exp(-2*im*arctan(a*x)), x) == :(-1//3*x^3+2*x*a^-2+-1*im*a^-1*x^2+2*im*a^-3*log(im+-1*a*x))
@test integrate(x*exp(-2*im*arctan(a*x)), x) == :(-1//2*x^2+2*a^-2*log(im+-1*a*x)+-2*im*x*a^-1)
@test integrate(exp(-2*im*arctan(a*x)), x) == :(-1x+-2*im*a^-1*log(im+-1*a*x))
@test integrate(x^-1*exp(-2*im*arctan(a*x)), x) == :(-2*log(im+-1*a*x)+log(x))
@test integrate(x^-2*exp(-2*im*arctan(a*x)), x) == :(-1*x^-1+-2*im*a*log(x)+2*im*a*log(im+-1*a*x))
@test integrate(x^-3*exp(-2*im*arctan(a*x)), x) == :(-1//2*x^-2+-2*a^2*log(x)+2*a^2*log(im+-1*a*x)+2*im*a*x^-1)
@test integrate(x^-4*exp(-2*im*arctan(a*x)), x) == :(-1//3*x^-3+2*a^2*x^-1+im*a*x^-2+-2*im*a^3*log(im+-1*a*x)+2*im*a^3*log(x))
@test integrate(x^3*exp(-3*im*arctan(a*x)), x) == :(27//4*a^-4*(1+a^2*x^2)^(1/2)+a^-4*(1+a^2*x^2)^-1//2*(1+-1*im*a*x)^3+-1*a^-2*x^2*(1+a^2*x^2)^(1/2)+51//8*im*a^-4*arcsinh(a*x)+-9//8*im*a^-4*(1+a^2*x^2)^(1/2)*(2im+3*a*x)+1//4*im*a^-1*x^3*(1+a^2*x^2)^(1/2))
@test integrate(x^2*exp(-3*im*arctan(a*x)), x) == :(11//2*a^-3*arcsinh(a*x)+-1//6*a^-3*(1+a^2*x^2)^(1/2)*(28im+3*a*x)+-1*im*a^-3*(1+a^2*x^2)^-1//2*(1+-1*im*a*x)^3+-1//3*im*a^-3*(1+a^2*x^2)^(1/2)*(3+-1*im*a*x)^2)
@test integrate(x*exp(-3*im*arctan(a*x)), x) == :(-9//2*a^-2*(1+a^2*x^2)^(1/2)+-1*a^-2*(1+a^2*x^2)^5//2*(1+im*a*x)^-3+-9//2*im*a^-2*arcsinh(a*x)+-3//2*a^-2*(1+a^2*x^2)^3//2*(1+im*a*x)^-1)
@test integrate(exp(-3*im*arctan(a*x)), x) == :(-3*a^-1*arcsinh(a*x)+3*im*a^-1*(1+a^2*x^2)^(1/2)+2*im*a^-1*(1+a^2*x^2)^-1//2*(1+-1*im*a*x)^2)
@test integrate(x^-1*exp(-3*im*arctan(a*x)), x) == :(-1*arctanh((1+a^2*x^2)^(1/2))+im*arcsinh(a*x)+4*im*(1+a^2*x^2)^(1/2)*(im+-1*a*x)^-1)
@test integrate(x^-2*exp(-3*im*arctan(a*x)), x) == :(-1*x^-1*(1+a^2*x^2)^(1/2)+3*im*a*arctanh((1+a^2*x^2)^(1/2))+4*a*(1+a^2*x^2)^(1/2)*(im+-1*a*x)^-1)
@test integrate(x^-3*exp(-3*im*arctan(a*x)), x) == :(-1//2*x^-2*(1+a^2*x^2)^(1/2)+9//2*a^2*arctanh((1+a^2*x^2)^(1/2))+-4*im*a^2*(1+a^2*x^2)^(1/2)*(im+-1*a*x)^-1+3*im*a*x^-1*(1+a^2*x^2)^(1/2))
@test integrate(x^-4*exp(-3*im*arctan(a*x)), x) == :(-1//3*x^-3*(1+a^2*x^2)^(1/2)+-4*a^3*(1+a^2*x^2)^(1/2)*(im+-1*a*x)^-1+-11//2*im*a^3*arctanh((1+a^2*x^2)^(1/2))+14//3*a^2*x^-1*(1+a^2*x^2)^(1/2)+3//2*im*a*x^-2*(1+a^2*x^2)^(1/2))
@test integrate(x^-5*exp(-3*im*arctan(a*x)), x) == :(-51//8*a^4*arctanh((1+a^2*x^2)^(1/2))+-1//4*x^-4*(1+a^2*x^2)^(1/2)+19//8*a^2*x^-2*(1+a^2*x^2)^(1/2)+im*a*x^-3*(1+a^2*x^2)^(1/2)+-6*im*a^3*x^-1*(1+a^2*x^2)^(1/2)+4*im*a^4*(1+a^2*x^2)^(1/2)*(im+-1*a*x)^-1)
@test integrate(x^2*exp((1/2)*im*arctan(a*x)), x) == :(-3//8*im*a^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+-3//16*im*2^(1/2)*a^-3*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-3//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//12*im*a^-3*(1+im*a*x)^5//4*(1+-1*im*a*x)^3//4+1//3*x*a^-2*(1+im*a*x)^5//4*(1+-1*im*a*x)^3//4+3//16*im*2^(1/2)*a^-3*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+3//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x*exp((1/2)*im*arctan(a*x)), x) == :((1/2)*a^-2*(1+im*a*x)^5//4*(1+-1*im*a*x)^3//4+-1//8*2^(1/2)*a^-2*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+1//4*a^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+1//8*2^(1/2)*a^-2*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+1//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(exp((1/2)*im*arctan(a*x)), x) == :(im*a^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+(1/2)*im*2^(1/2)*a^-1*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//2*im*2^(1/2)*a^-1*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+1//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-1*exp((1/2)*im*arctan(a*x)), x) == :(-2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+(1/2)*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1*2^(1/2)*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//2*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-2*exp((1/2)*im*arctan(a*x)), x) == :(-1*im*a*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1*im*a*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4)
@test integrate(x^-3*exp((1/2)*im*arctan(a*x)), x) == :(1//4*a^2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+1//4*a^2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//2*x^-2*(1+im*a*x)^5//4*(1+-1*im*a*x)^3//4+-1//4*im*a*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4)
@test integrate(x^-4*exp((1/2)*im*arctan(a*x)), x) == :(-1//3*x^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+3//8*im*a^3*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+3//8*im*a^3*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+11//24*a^2*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+-5//12*im*a*x^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4)
@test integrate(x^-5*exp((1/2)*im*arctan(a*x)), x) == :(-11//64*a^4*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-11//64*a^4*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//4*x^-4*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+29//96*a^2*x^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+-7//24*im*a*x^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+83//192*im*a^3*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4)
@test integrate(x^-6*exp((1/2)*im*arctan(a*x)), x) == :(-31//128*im*a^5*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-31//128*im*a^5*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//5*x^-5*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+-611//1920*a^4*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+11//48*a^2*x^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+-9//40*im*a*x^-4*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+269//960*im*a^3*x^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4)
@test integrate(x^3*exp(3//2*im*arctan(a*x)), x) == :(-123//128*2^(1/2)*a^-4*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-123//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-41//64*a^-4*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+123//128*2^(1/2)*a^-4*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+123//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//32*a^-4*(1+im*a*x)^7//4*(1+-1*im*a*x)^1//4*(11+4*im*a*x)+1//4*a^-2*x^2*(1+im*a*x)^7//4*(1+-1*im*a*x)^1//4)
@test integrate(x^2*exp(3//2*im*arctan(a*x)), x) == :(-17//16*im*2^(1/2)*a^-3*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-17//24*im*a^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-17//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//4*im*a^-3*(1+im*a*x)^7//4*(1+-1*im*a*x)^1//4+1//3*x*a^-2*(1+im*a*x)^7//4*(1+-1*im*a*x)^1//4+17//16*im*2^(1/2)*a^-3*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+17//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x*exp(3//2*im*arctan(a*x)), x) == :((1/2)*a^-2*(1+im*a*x)^7//4*(1+-1*im*a*x)^1//4+-9//8*2^(1/2)*a^-2*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-9//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+3//4*a^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+9//8*2^(1/2)*a^-2*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+9//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(exp(3//2*im*arctan(a*x)), x) == :(im*a^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-3//2*im*2^(1/2)*a^-1*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-3//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+3//2*im*2^(1/2)*a^-1*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+3//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-1*exp(3//2*im*arctan(a*x)), x) == :(-2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+(1/2)*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1*2^(1/2)*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//2*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-2*exp(3//2*im*arctan(a*x)), x) == :(-1*x^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-3*im*a*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+3*im*a*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4))
@test integrate(x^-3*exp(3//2*im*arctan(a*x)), x) == :(-9//4*a^2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+9//4*a^2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//2*x^-2*(1+im*a*x)^7//4*(1+-1*im*a*x)^1//4+-3//4*im*a*x^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4)
@test integrate(x^-4*exp(3//2*im*arctan(a*x)), x) == :(-17//8*im*a^3*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//3*x^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+17//8*im*a^3*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+23//24*a^2*x^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-7//12*im*a*x^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4)
@test integrate(x^-5*exp(3//2*im*arctan(a*x)), x) == :(-123//64*a^4*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+123//64*a^4*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//4*x^-4*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+15//32*a^2*x^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-3//8*im*a*x^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+63//64*im*a^3*x^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4)
@test integrate(x^3*exp(5//2*im*arctan(a*x)), x) == :(-475//128*2^(1/2)*a^-4*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-475//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+475//64*a^-4*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+475//128*2^(1/2)*a^-4*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+475//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-17//4*a^-2*x^2*(1+im*a*x)^5//4*(1+-1*im*a*x)^3//4+-4*im*a^-1*x^3*(1+im*a*x)^5//4*(1+-1*im*a*x)^-1//4+-1//96*im*a^-4*(1+im*a*x)^5//4*(1+-1*im*a*x)^3//4*(521im+-452*a*x))
@test integrate(x^2*exp(5//2*im*arctan(a*x)), x) == :(2*im*a^-3*(1+im*a*x)^9//4*(1+-1*im*a*x)^-1//4+-55//16*im*2^(1/2)*a^-3*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-55//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+1//3*im*a^-3*(1+im*a*x)^9//4*(1+-1*im*a*x)^3//4+11//4*im*a^-3*(1+im*a*x)^5//4*(1+-1*im*a*x)^3//4+55//8*im*a^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+55//16*im*2^(1/2)*a^-3*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+55//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x*exp(5//2*im*arctan(a*x)), x) == :(-2*a^-2*(1+im*a*x)^9//4*(1+-1*im*a*x)^-1//4+-25//4*a^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+-25//8*2^(1/2)*a^-2*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-25//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-5//2*a^-2*(1+im*a*x)^5//4*(1+-1*im*a*x)^3//4+25//8*2^(1/2)*a^-2*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+25//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(exp(5//2*im*arctan(a*x)), x) == :(-5*im*a^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+-4*im*a^-1*(1+im*a*x)^5//4*(1+-1*im*a*x)^-1//4+-5//2*im*2^(1/2)*a^-1*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-5//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+5//2*im*2^(1/2)*a^-1*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+5//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-1*exp(5//2*im*arctan(a*x)), x) == :(-2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+2^(1/2)*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+(1/2)*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1*2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+8*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+-1//2*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-2*exp(5//2*im*arctan(a*x)), x) == :(-1*x^-1*(1+im*a*x)^5//4*(1+-1*im*a*x)^-1//4+-5*im*a*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-5*im*a*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+10*im*a*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)
@test integrate(x^-3*exp(5//2*im*arctan(a*x)), x) == :(25//4*a^2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+25//4*a^2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-25//2*a^2*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+-1//2*x^-2*(1+im*a*x)^9//4*(1+-1*im*a*x)^-1//4+-5//4*im*a*x^-1*(1+im*a*x)^5//4*(1+-1*im*a*x)^-1//4)
@test integrate(x^-4*exp(5//2*im*arctan(a*x)), x) == :(-1//3*x^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+55//8*im*a^3*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+55//8*im*a^3*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-287//24*im*a^3*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+61//24*a^2*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+-13//12*im*a*x^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)
@test integrate(x^-5*exp(5//2*im*arctan(a*x)), x) == :(-475//64*a^4*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-475//64*a^4*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//4*x^-4*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+2467//192*a^4*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+113//96*a^2*x^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+-17//24*im*a*x^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+521//192*im*a^3*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)
@test integrate(x^3*exp(-1//2*im*arctan(a*x)), x) == :(-11//64*a^-4*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-11//128*2^(1/2)*a^-4*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-11//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+11//128*2^(1/2)*a^-4*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+11//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//96*a^-4*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4*(25+-4*im*a*x)+1//4*a^-2*x^2*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4)
@test integrate(x^2*exp(-1//2*im*arctan(a*x)), x) == :(-3//16*im*2^(1/2)*a^-3*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-3//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+1//3*x*a^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4+1//12*im*a^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4+3//8*im*a^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+3//16*im*2^(1/2)*a^-3*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+3//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x*exp(-1//2*im*arctan(a*x)), x) == :((1/2)*a^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4+-1//8*2^(1/2)*a^-2*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+1//4*a^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+1//8*2^(1/2)*a^-2*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+1//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(exp(-1//2*im*arctan(a*x)), x) == :((1/2)*im*2^(1/2)*a^-1*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1*im*a^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-1//2*im*2^(1/2)*a^-1*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+1//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-1*exp(-1//2*im*arctan(a*x)), x) == :(-2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+2^(1/2)*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+(1/2)*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1*2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//2*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-2*exp(-1//2*im*arctan(a*x)), x) == :(im*a*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1*im*a*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1*x^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4)
@test integrate(x^-3*exp(-1//2*im*arctan(a*x)), x) == :(-1//4*a^2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+1//4*a^2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//2*x^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4+1//4*im*a*x^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4)
@test integrate(x^-4*exp(-1//2*im*arctan(a*x)), x) == :(-3//8*im*a^3*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//3*x^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+3//8*im*a^3*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+11//24*a^2*x^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+5//12*im*a*x^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4)
@test integrate(x^-5*exp(-1//2*im*arctan(a*x)), x) == :(-11//64*a^4*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+11//64*a^4*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//4*x^-4*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+29//96*a^2*x^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-83//192*im*a^3*x^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+7//24*im*a*x^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4)
@test integrate(x^3*exp(-3//2*im*arctan(a*x)), x) == :(-123//128*2^(1/2)*a^-4*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-123//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-41//64*a^-4*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+123//128*2^(1/2)*a^-4*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+123//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//32*a^-4*(1+im*a*x)^1//4*(1+-1*im*a*x)^7//4*(11+-4*im*a*x)+1//4*a^-2*x^2*(1+im*a*x)^1//4*(1+-1*im*a*x)^7//4)
@test integrate(x^2*exp(-3//2*im*arctan(a*x)), x) == :(-17//16*im*2^(1/2)*a^-3*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-17//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+1//3*x*a^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^7//4+1//4*im*a^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^7//4+17//16*im*2^(1/2)*a^-3*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+17//24*im*a^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+17//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x*exp(-3//2*im*arctan(a*x)), x) == :((1/2)*a^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^7//4+-9//8*2^(1/2)*a^-2*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-9//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+3//4*a^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+9//8*2^(1/2)*a^-2*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+9//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(exp(-3//2*im*arctan(a*x)), x) == :(-1*im*a^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+-3//2*im*2^(1/2)*a^-1*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-3//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+3//2*im*2^(1/2)*a^-1*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+3//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-1*exp(-3//2*im*arctan(a*x)), x) == :(-2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+2^(1/2)*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+(1/2)*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1*2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1//2*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-2*exp(-3//2*im*arctan(a*x)), x) == :(-1*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+3*im*a*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+3*im*a*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4))
@test integrate(x^-3*exp(-3//2*im*arctan(a*x)), x) == :(9//4*a^2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+9//4*a^2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//2*x^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^7//4+3//4*im*a*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4)
@test integrate(x^-4*exp(-3//2*im*arctan(a*x)), x) == :(-17//8*im*a^3*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-17//8*im*a^3*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//3*x^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+23//24*a^2*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+7//12*im*a*x^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4)
@test integrate(x^-5*exp(-3//2*im*arctan(a*x)), x) == :(-123//64*a^4*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-123//64*a^4*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//4*x^-4*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+15//32*a^2*x^-2*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+-63//64*im*a^3*x^-1*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4+3//8*im*a*x^-3*(1+im*a*x)^1//4*(1+-1*im*a*x)^3//4)
@test integrate(x^3*exp(-5//2*im*arctan(a*x)), x) == :(-475//128*2^(1/2)*a^-4*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-475//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+475//64*a^-4*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+475//128*2^(1/2)*a^-4*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+475//256*2^(1/2)*a^-4*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-17//4*a^-2*x^2*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4+4*im*a^-1*x^3*(1+im*a*x)^-1//4*(1+-1*im*a*x)^5//4+-1//96*im*a^-4*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4*(521im+452*a*x))
@test integrate(x^2*exp(-5//2*im*arctan(a*x)), x) == :(-2*im*a^-3*(1+im*a*x)^-1//4*(1+-1*im*a*x)^9//4+-55//8*im*a^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-55//16*im*2^(1/2)*a^-3*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-55//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-11//4*im*a^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4+-1//3*im*a^-3*(1+im*a*x)^3//4*(1+-1*im*a*x)^9//4+55//16*im*2^(1/2)*a^-3*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+55//32*im*2^(1/2)*a^-3*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x*exp(-5//2*im*arctan(a*x)), x) == :(-2*a^-2*(1+im*a*x)^-1//4*(1+-1*im*a*x)^9//4+-25//4*a^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-25//8*2^(1/2)*a^-2*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-25//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-5//2*a^-2*(1+im*a*x)^3//4*(1+-1*im*a*x)^5//4+25//8*2^(1/2)*a^-2*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+25//16*2^(1/2)*a^-2*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(exp(-5//2*im*arctan(a*x)), x) == :(4*im*a^-1*(1+im*a*x)^-1//4*(1+-1*im*a*x)^5//4+5*im*a^-1*(1+im*a*x)^3//4*(1+-1*im*a*x)^1//4+-5//2*im*2^(1/2)*a^-1*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-5//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+5//2*im*2^(1/2)*a^-1*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+5//4*im*2^(1/2)*a^-1*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-1*exp(-5//2*im*arctan(a*x)), x) == :(-2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+(1/2)*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+-1*2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+-1*2^(1/2)*arctan(1+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)+8*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1//2*2^(1/2)*log(1+(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2^(1/2)*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4))
@test integrate(x^-2*exp(-5//2*im*arctan(a*x)), x) == :(-1*x^-1*(1+im*a*x)^-1//4*(1+-1*im*a*x)^5//4+-5*im*a*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+5*im*a*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-10*im*a*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)
@test integrate(x^-3*exp(-5//2*im*arctan(a*x)), x) == :(-25//4*a^2*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+25//4*a^2*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-25//2*a^2*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1//2*x^-2*(1+im*a*x)^-1//4*(1+-1*im*a*x)^9//4+5//4*im*a*x^-1*(1+im*a*x)^-1//4*(1+-1*im*a*x)^5//4)
@test integrate(x^-4*exp(-5//2*im*arctan(a*x)), x) == :(-55//8*im*a^3*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//3*x^-3*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+55//8*im*a^3*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+61//24*a^2*x^-1*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+287//24*im*a^3*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+13//12*im*a*x^-2*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)
@test integrate(x^-5*exp(-5//2*im*arctan(a*x)), x) == :(-475//64*a^4*arctanh((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+475//64*a^4*arctan((1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4)+-1//4*x^-4*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+2467//192*a^4*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+113//96*a^2*x^-2*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-521//192*im*a^3*x^-1*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+17//24*im*a*x^-3*(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4)
@test integrate(x^2*exp(1//3*im*arctan(x)), x) == :(-19//81*im*arctan((1+im*x)^-1//6*(1+-1*im*x)^1//6)+-19//162*im*arctan(3^(1/2)+2*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+19//162*im*arctan(3^(1/2)+-2*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+-19//54*im*(1+im*x)^1//6*(1+-1*im*x)^5//6+-19//324*im*3^(1/2)*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3+-1*3^(1/2)*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+-1//18*im*(1+im*x)^7//6*(1+-1*im*x)^5//6+1//3*x*(1+im*x)^7//6*(1+-1*im*x)^5//6+19//324*im*3^(1/2)*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3+3^(1/2)*(1+im*x)^-1//6*(1+-1*im*x)^1//6))
@test integrate(x*exp(1//3*im*arctan(x)), x) == :(-1//18*arctan(3^(1/2)+-2*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+1//9*arctan((1+im*x)^-1//6*(1+-1*im*x)^1//6)+1//18*arctan(3^(1/2)+2*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+(1/2)*(1+im*x)^7//6*(1+-1*im*x)^5//6+-1//36*3^(1/2)*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3+3^(1/2)*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+1//6*(1+im*x)^1//6*(1+-1*im*x)^5//6+1//36*3^(1/2)*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3+-1*3^(1/2)*(1+im*x)^-1//6*(1+-1*im*x)^1//6))
@test integrate(exp(1//3*im*arctan(x)), x) == :(-1//3*im*arctan(3^(1/2)+-2*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+1//3*im*arctan(3^(1/2)+2*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+2//3*im*arctan((1+im*x)^-1//6*(1+-1*im*x)^1//6)+im*(1+im*x)^1//6*(1+-1*im*x)^5//6+-1//6*im*3^(1/2)*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3+3^(1/2)*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+1//6*im*3^(1/2)*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3+-1*3^(1/2)*(1+im*x)^-1//6*(1+-1*im*x)^1//6))
@test integrate(x^-1*exp(1//3*im*arctan(x)), x) == :((1/2)*log(1+(1+im*x)^1//3*(1+-1*im*x)^-1//3+-1*(1+im*x)^1//6*(1+-1*im*x)^-1//6)+-1*arctan(3^(1/2)+2*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+-2*arctan((1+im*x)^-1//6*(1+-1*im*x)^1//6)+-2*arctanh((1+im*x)^1//6*(1+-1*im*x)^-1//6)+-1//2*log(1+(1+im*x)^1//3*(1+-1*im*x)^-1//3+(1+im*x)^1//6*(1+-1*im*x)^-1//6)+3^(1/2)*arctan(1//3*3^(1/2)*(1+-2*(1+im*x)^1//6*(1+-1*im*x)^-1//6))+(1/2)*3^(1/2)*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3+3^(1/2)*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+-1*3^(1/2)*arctan(1//3*3^(1/2)*(1+2*(1+im*x)^1//6*(1+-1*im*x)^-1//6))+-1//2*3^(1/2)*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3+-1*3^(1/2)*(1+im*x)^-1//6*(1+-1*im*x)^1//6)+arctan(3^(1/2)+-2*(1+im*x)^-1//6*(1+-1*im*x)^1//6))
@test integrate(x^-2*exp(1//3*im*arctan(x)), x) == :(-2//3*im*arctanh((1+im*x)^1//6*(1+-1*im*x)^-1//6)+-1//6*im*log(1+(1+im*x)^1//3*(1+-1*im*x)^-1//3+(1+im*x)^1//6*(1+-1*im*x)^-1//6)+1//6*im*log(1+(1+im*x)^1//3*(1+-1*im*x)^-1//3+-1*(1+im*x)^1//6*(1+-1*im*x)^-1//6)+-1*x^-1*(1+im*x)^1//6*(1+-1*im*x)^5//6+-1//3*im*3^(1/2)*arctan(1//3*3^(1/2)*(1+2*(1+im*x)^1//6*(1+-1*im*x)^-1//6))+1//3*im*3^(1/2)*arctan(1//3*3^(1/2)*(1+-2*(1+im*x)^1//6*(1+-1*im*x)^-1//6)))
@test integrate(x^-3*exp(1//3*im*arctan(x)), x) == :(-1//36*log(1+(1+im*x)^1//3*(1+-1*im*x)^-1//3+-1*(1+im*x)^1//6*(1+-1*im*x)^-1//6)+1//9*arctanh((1+im*x)^1//6*(1+-1*im*x)^-1//6)+1//36*log(1+(1+im*x)^1//3*(1+-1*im*x)^-1//3+(1+im*x)^1//6*(1+-1*im*x)^-1//6)+-1//18*3^(1/2)*arctan(1//3*3^(1/2)*(1+-2*(1+im*x)^1//6*(1+-1*im*x)^-1//6))+1//18*3^(1/2)*arctan(1//3*3^(1/2)*(1+2*(1+im*x)^1//6*(1+-1*im*x)^-1//6))+-1//2*x^-2*(1+im*x)^7//6*(1+-1*im*x)^5//6+-1//6*im*x^-1*(1+im*x)^1//6*(1+-1*im*x)^5//6)
@test integrate(x^-4*exp(1//3*im*arctan(x)), x) == :(-19//324*im*log(1+(1+im*x)^1//3*(1+-1*im*x)^-1//3+-1*(1+im*x)^1//6*(1+-1*im*x)^-1//6)+19//81*im*arctanh((1+im*x)^1//6*(1+-1*im*x)^-1//6)+19//324*im*log(1+(1+im*x)^1//3*(1+-1*im*x)^-1//3+(1+im*x)^1//6*(1+-1*im*x)^-1//6)+-19//162*im*3^(1/2)*arctan(1//3*3^(1/2)*(1+-2*(1+im*x)^1//6*(1+-1*im*x)^-1//6))+-1//3*x^-3*(1+im*x)^1//6*(1+-1*im*x)^5//6+11//27*x^-1*(1+im*x)^1//6*(1+-1*im*x)^5//6+19//162*im*3^(1/2)*arctan(1//3*3^(1/2)*(1+2*(1+im*x)^1//6*(1+-1*im*x)^-1//6))+-7//18*im*x^-2*(1+im*x)^1//6*(1+-1*im*x)^5//6)
@test integrate(x^2*exp(2//3*im*arctan(x)), x) == :(11//27*im*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3)+11//81*im*log(1+im*x)+-11//27*im*(1+im*x)^1//3*(1+-1*im*x)^2//3+-1//9*im*(1+im*x)^4//3*(1+-1*im*x)^2//3+1//3*x*(1+im*x)^4//3*(1+-1*im*x)^2//3+22//81*im*3^(1/2)*arctan(1//3*3^(1/2)+-2//3*3^(1/2)*(1+im*x)^-1//3*(1+-1*im*x)^1//3))
@test integrate(x*exp(2//3*im*arctan(x)), x) == :(-1//3*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3)+-1//9*log(1+im*x)+(1/2)*(1+im*x)^4//3*(1+-1*im*x)^2//3+-2//9*3^(1/2)*arctan(1//3*3^(1/2)+-2//3*3^(1/2)*(1+im*x)^-1//3*(1+-1*im*x)^1//3)+1//3*(1+im*x)^1//3*(1+-1*im*x)^2//3)
@test integrate(exp(2//3*im*arctan(x)), x) == :(-1*im*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3)+-1//3*im*log(1+im*x)+im*(1+im*x)^1//3*(1+-1*im*x)^2//3+-2//3*im*3^(1/2)*arctan(1//3*3^(1/2)+-2//3*3^(1/2)*(1+im*x)^-1//3*(1+-1*im*x)^1//3))
@test integrate(x^-1*exp(2//3*im*arctan(x)), x) == :((1/2)*log(1+im*x)+-1//2*log(x)+3//2*log(1+(1+im*x)^-1//3*(1+-1*im*x)^1//3)+3//2*log((1+-1*im*x)^1//3+-1*(1+im*x)^1//3)+3^(1/2)*arctan(1//3*3^(1/2)+-2//3*3^(1/2)*(1+im*x)^-1//3*(1+-1*im*x)^1//3)+3^(1/2)*arctan(1//3*3^(1/2)+2//3*3^(1/2)*(1+im*x)^-1//3*(1+-1*im*x)^1//3))
@test integrate(x^-2*exp(2//3*im*arctan(x)), x) == :(im*log((1+-1*im*x)^1//3+-1*(1+im*x)^1//3)+-1//3*im*log(x)+-1*x^-1*(1+im*x)^1//3*(1+-1*im*x)^2//3+2//3*im*3^(1/2)*arctan(1//3*3^(1/2)+2//3*3^(1/2)*(1+im*x)^-1//3*(1+-1*im*x)^1//3))
@test integrate(x^-3*exp(2//3*im*arctan(x)), x) == :(-1//3*log((1+-1*im*x)^1//3+-1*(1+im*x)^1//3)+1//9*log(x)+-2//9*3^(1/2)*arctan(1//3*3^(1/2)+2//3*3^(1/2)*(1+im*x)^-1//3*(1+-1*im*x)^1//3)+-1//2*x^-2*(1+im*x)^4//3*(1+-1*im*x)^2//3+-1//3*im*x^-1*(1+im*x)^1//3*(1+-1*im*x)^2//3)
@test integrate(x^2*exp(1//4*im*arctan(a*x)), x) == :(-11//32*im*a^-3*(1+im*a*x)^1//8*(1+-1*im*a*x)^7//8+-11//128*im*a^-3*(2+2^(1/2))^(1/2)*arctan((2+2^(1/2))^-1//2*((2+-1*2^(1/2))^(1/2)+2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+-11//128*im*a^-3*(2+-1*2^(1/2))^(1/2)*arctan((2+-1*2^(1/2))^-1//2*((2+2^(1/2))^(1/2)+2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+-11//256*im*a^-3*(2+2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+2^(1/2))^(1/2))+-11//256*im*a^-3*(2+-1*2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+-1*2^(1/2))^(1/2))+-1//24*im*a^-3*(1+im*a*x)^9//8*(1+-1*im*a*x)^7//8+1//3*x*a^-2*(1+im*a*x)^9//8*(1+-1*im*a*x)^7//8+11//128*im*a^-3*(2+2^(1/2))^(1/2)*arctan((2+2^(1/2))^-1//2*((2+-1*2^(1/2))^(1/2)+-2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+11//128*im*a^-3*(2+-1*2^(1/2))^(1/2)*arctan((2+-1*2^(1/2))^-1//2*((2+2^(1/2))^(1/2)+-2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+11//256*im*a^-3*(2+2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+2^(1/2))^(1/2))+11//256*im*a^-3*(2+-1*2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+-1*2^(1/2))^(1/2)))
@test integrate(x*exp(1//4*im*arctan(a*x)), x) == :((1/2)*a^-2*(1+im*a*x)^9//8*(1+-1*im*a*x)^7//8+-1//32*a^-2*(2+2^(1/2))^(1/2)*arctan((2+2^(1/2))^-1//2*((2+-1*2^(1/2))^(1/2)+-2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+-1//32*a^-2*(2+-1*2^(1/2))^(1/2)*arctan((2+-1*2^(1/2))^-1//2*((2+2^(1/2))^(1/2)+-2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+-1//64*a^-2*(2+2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+2^(1/2))^(1/2))+-1//64*a^-2*(2+-1*2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+-1*2^(1/2))^(1/2))+1//8*a^-2*(1+im*a*x)^1//8*(1+-1*im*a*x)^7//8+1//32*a^-2*(2+2^(1/2))^(1/2)*arctan((2+2^(1/2))^-1//2*((2+-1*2^(1/2))^(1/2)+2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+1//32*a^-2*(2+-1*2^(1/2))^(1/2)*arctan((2+-1*2^(1/2))^-1//2*((2+2^(1/2))^(1/2)+2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+1//64*a^-2*(2+2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+2^(1/2))^(1/2))+1//64*a^-2*(2+-1*2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+-1*2^(1/2))^(1/2)))
@test integrate(exp(1//4*im*arctan(a*x)), x) == :(im*a^-1*(1+im*a*x)^1//8*(1+-1*im*a*x)^7//8+-1//4*im*a^-1*(2+2^(1/2))^(1/2)*arctan((2+2^(1/2))^-1//2*((2+-1*2^(1/2))^(1/2)+-2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+-1//4*im*a^-1*(2+-1*2^(1/2))^(1/2)*arctan((2+-1*2^(1/2))^-1//2*((2+2^(1/2))^(1/2)+-2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+-1//8*im*a^-1*(2+2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+2^(1/2))^(1/2))+-1//8*im*a^-1*(2+-1*2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+-1*2^(1/2))^(1/2))+1//4*im*a^-1*(2+2^(1/2))^(1/2)*arctan((2+2^(1/2))^-1//2*((2+-1*2^(1/2))^(1/2)+2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+1//4*im*a^-1*(2+-1*2^(1/2))^(1/2)*arctan((2+-1*2^(1/2))^-1//2*((2+2^(1/2))^(1/2)+2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+1//8*im*a^-1*(2+2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+2^(1/2))^(1/2))+1//8*im*a^-1*(2+-1*2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+-1*2^(1/2))^(1/2)))
@test integrate(x^-1*exp(1//4*im*arctan(a*x)), x) == :(-2*arctan((1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+-2*arctanh((1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+(2+2^(1/2))^(1/2)*arctan((2+2^(1/2))^-1//2*((2+-1*2^(1/2))^(1/2)+-2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+(2+-1*2^(1/2))^(1/2)*arctan((2+-1*2^(1/2))^-1//2*((2+2^(1/2))^(1/2)+-2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+(1/2)*2^(1/2)*log(1+(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+-1*2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+(1/2)*(2+2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+2^(1/2))^(1/2))+(1/2)*(2+-1*2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+-1*2^(1/2))^(1/2))+-1*2^(1/2)*arctan(1+2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+-1*(2+2^(1/2))^(1/2)*arctan((2+2^(1/2))^-1//2*((2+-1*2^(1/2))^(1/2)+2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+-1*(2+-1*2^(1/2))^(1/2)*arctan((2+-1*2^(1/2))^-1//2*((2+2^(1/2))^(1/2)+2*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8))+-1//2*2^(1/2)*log(1+(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+-1//2*(2+2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+2^(1/2))^(1/2))+-1//2*(2+-1*2^(1/2))^(1/2)*log(1+(1+im*a*x)^-1//4*(1+-1*im*a*x)^1//4+-1*(1+im*a*x)^-1//8*(1+-1*im*a*x)^1//8*(2+-1*2^(1/2))^(1/2)))
@test integrate(x^-2*exp(1//4*im*arctan(a*x)), x) == :(-1*x^-1*(1+im*a*x)^1//8*(1+-1*im*a*x)^7//8+-1//2*im*a*arctan((1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+-1//2*im*a*arctanh((1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+-1//4*im*a*2^(1/2)*arctan(1+2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+-1//8*im*a*2^(1/2)*log(1+(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+1//4*im*a*2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+1//8*im*a*2^(1/2)*log(1+(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+-1*2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8))
@test integrate(x^-3*exp(1//4*im*arctan(a*x)), x) == :(1//16*a^2*arctan((1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+1//16*a^2*arctanh((1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+-1//2*x^-2*(1+im*a*x)^9//8*(1+-1*im*a*x)^7//8+-1//32*2^(1/2)*a^2*arctan(1+-1*2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+-1//64*2^(1/2)*a^2*log(1+(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+-1*2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+1//32*2^(1/2)*a^2*arctan(1+2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+1//64*2^(1/2)*a^2*log(1+(1+im*a*x)^1//4*(1+-1*im*a*x)^-1//4+2^(1/2)*(1+im*a*x)^1//8*(1+-1*im*a*x)^-1//8)+-1//8*im*a*x^-1*(1+im*a*x)^1//8*(1+-1*im*a*x)^7//8)
@test integrate(x^4*exp(im*arctan(a+b*x)), x) == :(1//8*b^-5*(3+-24*a^2+8*a^4+-12*im*a+16*im*a^3)*arcsinh(a+b*x)+1//5*b^-2*x^3*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)+1//8*b^-5*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(-16*a^3+3im+12a+-24*im*a^2+8*im*a^4)+1//120*b^-5*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(-96*a^3+19im+114a+-86*im*a^2+-1*b*x*(26+-72*a^2+-28*im*a))+-1//20*b^-3*x^2*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(im+8a))
@test integrate(x^3*exp(im*arctan(a+b*x)), x) == :(1//8*b^-4*(-8*a^3+3im+12a+-12*im*a^2)*arcsinh(a+b*x)+-1//8*b^-4*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(3+-12*a^2+-12*im*a+8*im*a^3)+-1//24*b^-4*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(7+-18*a^2+-10*im*a+b*x*(2im+12a))+1//4*b^-2*x^2*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2))
@test integrate(x^2*exp(im*arctan(a+b*x)), x) == :(-1//2*b^-3*(1+-2*a^2+-2*im*a)*arcsinh(a+b*x)+-1//2*b^-3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(im+2a+-2*im*a^2)+-1//6*b^-3*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(im+4a)+1//3*x*b^-2*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2))
@test integrate(x*exp(im*arctan(a+b*x)), x) == :((1/2)*b^-2*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1//2*b^-2*(im+2a)*arcsinh(a+b*x)+(1/2)*b^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(1+-2*im*a))
@test integrate(exp(im*arctan(a+b*x)), x) == :(b^-1*arcsinh(a+b*x)+im*b^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2))
@test integrate(x^-1*exp(im*arctan(a+b*x)), x) == :(im*arcsinh(a+b*x)+-2*(im+a)^-1//2*(im+-1a)^(1/2)*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2))
@test integrate(x^-2*exp(im*arctan(a+b*x)), x) == :(-1*x^-1*(1+-1*im*a)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)+2*im*b*(im+a)^-3//2*(im+-1a)^-1//2*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2))
@test integrate(x^-3*exp(im*arctan(a+b*x)), x) == :(-1*x^-2*(2+2*a^2)^-1*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)+b^2*(im+a)^-5//2*(im+-1a)^-3//2*(1+2*im*a)*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+-1*b*x^-1*(im+a)^-2*(-2a+2im)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(1+2*im*a))
@test integrate(x^-4*exp(im*arctan(a+b*x)), x) == :(-1*x^-3*(3+-3*im*a)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)+b^3*(im+a)^-7//2*(im+-1a)^-5//2*(2a+-1*im*(1+-2*a^2))*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+b^2*x^-1*(1+a^2)^-2*(6+-6*im*a)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(4+-2*a^2+9*im*a)+-1*b*x^-2*(1+a^2)^-1*(6+-6*im*a)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(-2a+3im))
@test integrate(x^4*exp(2*im*arctan(a+b*x)), x) == :(-1//5*x^5+(1/2)*im*b^-1*x^4+-2*x*b^-4*(1+-1*im*a)^3+1//3*b^-2*x^3*(2+-2*im*a)+im*b^-3*x^2*(im+a)^2+2*im*b^-5*(im+a)^4*log(im+a+b*x))
@test integrate(x^3*exp(2*im*arctan(a+b*x)), x) == :(-1//4*x^4+b^-2*x^2*(1+-1*im*a)+-2*b^-4*(1+-1*im*a)^3*log(im+a+b*x)+2//3*im*b^-1*x^3+2*im*x*b^-3*(im+a)^2)
@test integrate(x^2*exp(2*im*arctan(a+b*x)), x) == :(-1//3*x^3+im*b^-1*x^2+x*b^-2*(2+-2*im*a)+2*im*b^-3*(im+a)^2*log(im+a+b*x))
@test integrate(x*exp(2*im*arctan(a+b*x)), x) == :(-1//2*x^2+b^-2*(2+-2*im*a)*log(im+a+b*x)+2*im*x*b^-1)
@test integrate(exp(2*im*arctan(a+b*x)), x) == :(-1x+2*im*b^-1*log(im+a+b*x))
@test integrate(x^-1*exp(2*im*arctan(a+b*x)), x) == :(-2*(1+-1*im*a)^-1*log(im+a+b*x)+(im+a)^-1*(im+-1a)*log(x))
@test integrate(x^-2*exp(2*im*arctan(a+b*x)), x) == :(-1*x^-1*(im+a)^-1*(im+-1a)+-2*im*b*(im+a)^-2*log(x)+2*im*b*(im+a)^-2*log(im+a+b*x))
@test integrate(x^-3*exp(2*im*arctan(a+b*x)), x) == :(-1*x^-2*(2im+2a)^-1*(im+-1a)+-2*b^2*(1+-1*im*a)^-3*log(x)+2*b^2*(1+-1*im*a)^-3*log(im+a+b*x)+2*im*b*x^-1*(im+a)^-2)
@test integrate(x^-4*exp(2*im*arctan(a+b*x)), x) == :(-1*x^-3*(3im+3a)^-1*(im+-1a)+2*b^2*x^-1*(1+-1*im*a)^-3+im*b*x^-2*(im+a)^-2+-2*im*b^3*(im+a)^-4*log(x)+2*im*b^3*(im+a)^-4*log(im+a+b*x))
@test integrate(x^4*exp(3*im*arctan(a+b*x)), x) == :(-1//8*b^-5*(57+-264*a^2+24*a^4+-204*im*a+144*im*a^3)*arcsinh(a+b*x)+-11//5*b^-2*x^3*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1//8*b^-5*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(-144*a^3+57im+204a+-264*im*a^2+24*im*a^4)+-2*im*b^-1*x^4*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^-1//2+-1//40*im*b^-5*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(163+-422*a^2+-458*im*a+112*im*a^3+b*x*(122im+236a+-104*im*a^2))+1//20*b^-3*x^2*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(48a+51im))
@test integrate(x^3*exp(3*im*arctan(a+b*x)), x) == :(-1//8*b^-4*(-24*a^3+51im+132a+-108*im*a^2)*arcsinh(a+b*x)+-9//4*b^-2*x^2*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)+1//8*b^-4*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(51+-108*a^2+-132*im*a+24*im*a^3)+-2*im*b^-1*x^3*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^-1//2+-1//8*im*b^-4*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(29im+54a+-22*im*a^2+-1*b*x*(22+-20*im*a)))
@test integrate(x^2*exp(3*im*arctan(a+b*x)), x) == :((1/2)*b^-3*(11+-6*a^2+-18*im*a)*arcsinh(a+b*x)+(1/2)*b^-3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(11im+18a+-6*im*a^2)+1//3*im*b^-3*(1+im*a+im*b*x)^5//2*(1+-1*im*a+-1*im*b*x)^(1/2)+1//6*b^-3*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(11im+18a+-6*im*a^2)+-1*im*b^-3*(im+a)^2*(1+im*a+im*b*x)^5//2*(1+-1*im*a+-1*im*b*x)^-1//2)
@test integrate(x*exp(3*im*arctan(a+b*x)), x) == :((1/2)*b^-2*(6a+9im)*arcsinh(a+b*x)+-1*b^-2*(1+im*a+im*b*x)^5//2*(1+-1*im*a+-1*im*b*x)^-1//2*(1+-1*im*a)+-1//2*b^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(9+-6*im*a)+-1//2*b^-2*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(3+-2*im*a))
@test integrate(exp(3*im*arctan(a+b*x)), x) == :(-3*b^-1*arcsinh(a+b*x)+-3*im*b^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)+-2*im*b^-1*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^-1//2)
@test integrate(x^-1*exp(3*im*arctan(a+b*x)), x) == :(-1*im*arcsinh(a+b*x)+-2*(im+a)^-3//2*(im+-1a)^3//2*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+4*(1+-1*im*a)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)
@test integrate(x^-2*exp(3*im*arctan(a+b*x)), x) == :(-1*x^-1*(1+-1*im*a)^-1*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^-1//2+-6*im*b*(im+a)^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2+6*im*b*(im+a)^-5//2*(im+-1a)^(1/2)*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2))
@test integrate(x^-3*exp(3*im*arctan(a+b*x)), x) == :(-1*x^-2*(2+2*a^2)^-1*(1+im*a+im*b*x)^5//2*(1+-1*im*a+-1*im*b*x)^-1//2+b^2*(im+a)^-7//2*(im+-1a)^-1//2*(9+6*im*a)*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+b^2*(1+im*a)^-1*(im+a)^-3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2*(-6a+9im)+b*x^-1*(2+2*im*a)^-1*(im+a)^-2*(1+im*a+im*b*x)^3//2*(1+-1*im*a+-1*im*b*x)^-1//2*(-2a+3im))
@test integrate(x^-4*exp(3*im*arctan(a+b*x)), x) == :(-1*b^3*(im+a)^-9//2*(im+-1a)^-3//2*(-18a+11im+-6*im*a^2)*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+-1*x^-3*(3im+3a)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2*(im+-1a)+b^3*(im+a)^-4*(-6a+6im)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2*(52+-2*a^2+51*im*a)+7//6*im*b*x^-2*(im+a)^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2+b^2*x^-1*(im+a)^-3*(-6a+6im)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2*(19+16*im*a))
@test integrate(x^4*exp(-1*im*arctan(a+b*x)), x) == :(1//8*b^-5*(3+-24*a^2+8*a^4+-16*im*a^3+12*im*a)*arcsinh(a+b*x)+-1//8*b^-5*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(-12a+3im+16*a^3+-24*im*a^2+8*im*a^4)+-1//120*b^-5*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2*(-114a+19im+96*a^3+-86*im*a^2+b*x*(26+-72*a^2+28*im*a))+1//5*b^-2*x^3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2+1//20*b^-3*x^2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2*(im+-8a))
@test integrate(x^3*exp(-1*im*arctan(a+b*x)), x) == :(-1//8*b^-4*(-12a+3im+8*a^3+-12*im*a^2)*arcsinh(a+b*x)+-1//8*b^-4*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(3+-12*a^2+-8*im*a^3+12*im*a)+-1//24*b^-4*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2*(7+-18*a^2+10*im*a+-1*b*x*(-12a+2im))+1//4*b^-2*x^2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2)
@test integrate(x^2*exp(-1*im*arctan(a+b*x)), x) == :(-1//2*b^-3*(1+-2*a^2+2*im*a)*arcsinh(a+b*x)+(1/2)*b^-3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(im+-2a+-2*im*a^2)+1//3*x*b^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2+1//6*b^-3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2*(im+-4a))
@test integrate(x*exp(-1*im*arctan(a+b*x)), x) == :((1/2)*b^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2+(1/2)*b^-2*(im+-2a)*arcsinh(a+b*x)+(1/2)*b^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(1+2*im*a))
@test integrate(exp(-1*im*arctan(a+b*x)), x) == :(b^-1*arcsinh(a+b*x)+-1*im*b^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2))
@test integrate(x^-1*exp(-1*im*arctan(a+b*x)), x) == :(-1*im*arcsinh(a+b*x)+-2*(im+a)^(1/2)*(im+-1a)^-1//2*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2))
@test integrate(x^-2*exp(-1*im*arctan(a+b*x)), x) == :(-1*x^-1*(1+im*a)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)+-2*im*b*(im+a)^-1//2*(im+-1a)^-3//2*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2))
@test integrate(x^-3*exp(-1*im*arctan(a+b*x)), x) == :(-1*x^-2*(2+2*a^2)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2+b^2*(im+a)^-3//2*(im+-1a)^-5//2*(1+-2*im*a)*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+(1/2)*b*x^-1*(im+a)^-1*(im+-1a)^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(1+-2*im*a))
@test integrate(x^-4*exp(-1*im*arctan(a+b*x)), x) == :(-1*x^-3*(3+3*im*a)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)+b^3*(im+a)^-5//2*(im+-1a)^-7//2*(2a+im*(1+-2*a^2))*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+b^2*x^-1*(1+a^2)^-2*(6+6*im*a)^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(4+-2*a^2+-9*im*a)+1//6*b*x^-2*(im+a)^-1*(im+-1a)^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(3+-2*im*a))
@test integrate(x^4*exp(-2*im*arctan(a+b*x)), x) == :(-1//5*x^5+-2*x*b^-4*(1+im*a)^3+-1//2*im*b^-1*x^4+1//3*b^-2*x^3*(2+2*im*a)+-1*im*b^-3*x^2*(im+-1a)^2+-2*im*b^-5*(im+-1a)^4*log(im+-1a+-1*b*x))
@test integrate(x^3*exp(-2*im*arctan(a+b*x)), x) == :(-1//4*x^4+b^-2*x^2*(1+im*a)+-2*b^-4*(1+im*a)^3*log(im+-1a+-1*b*x)+-2//3*im*b^-1*x^3+-2*im*x*b^-3*(im+-1a)^2)
@test integrate(x^2*exp(-2*im*arctan(a+b*x)), x) == :(-1//3*x^3+x*b^-2*(2+2*im*a)+-1*im*b^-1*x^2+-2*im*b^-3*(im+-1a)^2*log(im+-1a+-1*b*x))
@test integrate(x*exp(-2*im*arctan(a+b*x)), x) == :(-1//2*x^2+b^-2*(2+2*im*a)*log(im+-1a+-1*b*x)+-2*im*x*b^-1)
@test integrate(exp(-2*im*arctan(a+b*x)), x) == :(-1x+-2*im*b^-1*log(im+-1a+-1*b*x))
@test integrate(x^-1*exp(-2*im*arctan(a+b*x)), x) == :(-2*(1+im*a)^-1*log(im+-1a+-1*b*x)+(im+-1a)^-1*(im+a)*log(x))
@test integrate(x^-2*exp(-2*im*arctan(a+b*x)), x) == :(-1*x^-1*(im+-1a)^-1*(im+a)+-2*im*b*(im+-1a)^-2*log(im+-1a+-1*b*x)+2*im*b*(im+-1a)^-2*log(x))
@test integrate(x^-3*exp(-2*im*arctan(a+b*x)), x) == :(x^-2*(-2a+2im)^-1*(-1im+-1a)+-2*b^2*(1+im*a)^-3*log(x)+2*b^2*(1+im*a)^-3*log(im+-1a+-1*b*x)+-2*im*b*x^-1*(im+-1a)^-2)
@test integrate(x^-4*exp(-2*im*arctan(a+b*x)), x) == :(x^-3*(-3a+3im)^-1*(-1im+-1a)+2*b^2*x^-1*(1+im*a)^-3+-1*im*b*x^-2*(im+-1a)^-2+-2*im*b^3*(im+-1a)^-4*log(im+-1a+-1*b*x)+2*im*b^3*(im+-1a)^-4*log(x))
@test integrate(x^4*exp(-3*im*arctan(a+b*x)), x) == :(-1//8*b^-5*(57+-264*a^2+24*a^4+-144*im*a^3+204*im*a)*arcsinh(a+b*x)+-11//5*b^-2*x^3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2+1//8*b^-5*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(-204a+57im+144*a^3+-264*im*a^2+24*im*a^4)+2*im*b^-1*x^4*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^3//2+-1//20*b^-3*x^2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2*(-48a+51im)+1//40*im*b^-5*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2*(163+-422*a^2+-112*im*a^3+458*im*a+-1*b*x*(-236a+122im+-104*im*a^2)))
@test integrate(x^3*exp(-3*im*arctan(a+b*x)), x) == :(1//8*b^-4*(-132a+24*a^3+51im+-108*im*a^2)*arcsinh(a+b*x)+-9//4*b^-2*x^2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2+1//8*b^-4*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(51+-108*a^2+-24*im*a^3+132*im*a)+2*im*b^-1*x^3*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^3//2+-1//8*im*b^-4*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2*(-54a+29im+-22*im*a^2+b*x*(22+20*im*a)))
@test integrate(x^2*exp(-3*im*arctan(a+b*x)), x) == :((1/2)*b^-3*(11+-6*a^2+18*im*a)*arcsinh(a+b*x)+-1//2*b^-3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(-18a+11im+-6*im*a^2)+-1//3*im*b^-3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^5//2+-1//6*b^-3*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2*(-18a+11im+-6*im*a^2)+im*b^-3*(im+-1a)^2*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^5//2)
@test integrate(x*exp(-3*im*arctan(a+b*x)), x) == :(-1//2*b^-2*(-6a+9im)*arcsinh(a+b*x)+-1*b^-2*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^5//2*(1+im*a)+-1//2*b^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2)*(9+6*im*a)+-1//2*b^-2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^3//2*(3+2*im*a))
@test integrate(exp(-3*im*arctan(a+b*x)), x) == :(-3*b^-1*arcsinh(a+b*x)+2*im*b^-1*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^3//2+3*im*b^-1*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^(1/2))
@test integrate(x^-1*exp(-3*im*arctan(a+b*x)), x) == :(im*arcsinh(a+b*x)+-2*(im+a)^3//2*(im+-1a)^-3//2*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+4*(1+im*a)^-1*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2))
@test integrate(x^-2*exp(-3*im*arctan(a+b*x)), x) == :(-1*x^-1*(1+im*a)^-1*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^3//2+-6*im*b*(im+a)^(1/2)*(im+-1a)^-5//2*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+6*im*b*(im+-1a)^-2*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2))
@test integrate(x^-3*exp(-3*im*arctan(a+b*x)), x) == :(-1*x^-2*(2+2*a^2)^-1*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^5//2+b^2*(im+a)^-1//2*(im+-1a)^-7//2*(9+-6*im*a)*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+-1*b^2*(1+im*a)^-3*(im+a)^-1*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(6a+9im)+(1/2)*b*x^-1*(im+a)^-1*(im+-1a)^-2*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^3//2*(3+-2*im*a))
@test integrate(x^-4*exp(-3*im*arctan(a+b*x)), x) == :(b^3*(im+a)^-3//2*(im+-1a)^-9//2*(11im+18a+-6*im*a^2)*arctanh((im+a)^(1/2)*(im+-1a)^-1//2*(1+im*a+im*b*x)^(1/2)*(1+-1*im*a+-1*im*b*x)^-1//2)+-1*x^-3*(-3a+3im)^-1*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(im+a)+-7//6*im*b*x^-2*(im+-1a)^-2*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1//6*b^3*(im+a)^-1*(im+-1a)^-4*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(52+-2*a^2+-51*im*a)+1//6*b^2*x^-1*(im+a)^-1*(im+-1a)^-3*(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)*(19+-16*im*a))
@test integrate(x^2*exp((1/2)*im*arctan(a+b*x)), x) == :(-1//8*b^-3*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^3//4*(3im+4a+-8*im*a^2)+-1//12*b^-3*(1+im*a+im*b*x)^5//4*(1+-1*im*a+-1*im*b*x)^3//4*(im+8a)+-1//16*2^(1/2)*b^-3*(3im+4a+-8*im*a^2)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//32*2^(1/2)*b^-3*(3im+4a+-8*im*a^2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//3*x*b^-2*(1+im*a+im*b*x)^5//4*(1+-1*im*a+-1*im*b*x)^3//4+1//16*2^(1/2)*b^-3*(3im+4a+-8*im*a^2)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//32*2^(1/2)*b^-3*(3im+4a+-8*im*a^2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(x*exp((1/2)*im*arctan(a+b*x)), x) == :((1/2)*b^-2*(1+im*a+im*b*x)^5//4*(1+-1*im*a+-1*im*b*x)^3//4+-1//8*2^(1/2)*b^-2*(1+-4*im*a)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//16*2^(1/2)*b^-2*(1+-4*im*a)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//4*b^-2*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^3//4*(1+-4*im*a)+1//8*2^(1/2)*b^-2*(1+-4*im*a)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//16*2^(1/2)*b^-2*(1+-4*im*a)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(exp((1/2)*im*arctan(a+b*x)), x) == :(im*b^-1*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^3//4+(1/2)*im*2^(1/2)*b^-1*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//2*im*2^(1/2)*b^-1*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//4*im*2^(1/2)*b^-1*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//4*im*2^(1/2)*b^-1*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(x^-1*exp((1/2)*im*arctan(a+b*x)), x) == :(2^(1/2)*arctan(1+2^(1/2)*(1+im*(a+b*x))^1//4*(1+-1*im*(a+b*x))^-1//4)+(1/2)*2^(1/2)*log(1+(1+im*(a+b*x))^(1/2)*(1+-1*im*(a+b*x))^-1//2+2^(1/2)*(1+im*(a+b*x))^1//4*(1+-1*im*(a+b*x))^-1//4)+-1*2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*(a+b*x))^1//4*(1+-1*im*(a+b*x))^-1//4)+-1//2*2^(1/2)*log(1+(1+im*(a+b*x))^(1/2)*(1+-1*im*(a+b*x))^-1//2+-1*2^(1/2)*(1+im*(a+b*x))^1//4*(1+-1*im*(a+b*x))^-1//4)+-2*(im+a)^-1//4*(im+-1a)^1//4*arctan((1+im*(a+b*x))^1//4*(1+-1*im*(a+b*x))^-1//4*(im+a)^1//4*(im+-1a)^-1//4)+-2*(im+a)^-1//4*(im+-1a)^1//4*arctanh((1+im*(a+b*x))^1//4*(1+-1*im*(a+b*x))^-1//4*(im+a)^1//4*(im+-1a)^-1//4))
@test integrate(x^-2*exp((1/2)*im*arctan(a+b*x)), x) == :(im*b*(im+a)^-5//4*(im+-1a)^-3//4*arctan((1+im*(a+b*x))^1//4*(1+-1*im*(a+b*x))^-1//4*(im+a)^1//4*(im+-1a)^-1//4)+im*b*(im+a)^-5//4*(im+-1a)^-3//4*arctanh((1+im*(a+b*x))^1//4*(1+-1*im*(a+b*x))^-1//4*(im+a)^1//4*(im+-1a)^-1//4)+-1*x^-1*(1+im*(a+b*x))^1//4*(1+-1*im*(a+b*x))^-1//4*(im+a)^-1*(im+a+b*x))
@test integrate(x^2*exp(3//2*im*arctan(a+b*x)), x) == :(-1//12*b^-3*(1+im*a+im*b*x)^7//4*(1+-1*im*a+-1*im*b*x)^1//4*(3im+8a)+-1//16*2^(1/2)*b^-3*(17im+36a+-24*im*a^2)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//24*b^-3*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^1//4*(17im+36a+-24*im*a^2)+-1//32*2^(1/2)*b^-3*(17im+36a+-24*im*a^2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//3*x*b^-2*(1+im*a+im*b*x)^7//4*(1+-1*im*a+-1*im*b*x)^1//4+1//16*2^(1/2)*b^-3*(17im+36a+-24*im*a^2)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//32*2^(1/2)*b^-3*(17im+36a+-24*im*a^2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(x*exp(3//2*im*arctan(a+b*x)), x) == :((1/2)*b^-2*(1+im*a+im*b*x)^7//4*(1+-1*im*a+-1*im*b*x)^1//4+-1//8*2^(1/2)*b^-2*(9+-12*im*a)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//16*2^(1/2)*b^-2*(9+-12*im*a)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//4*b^-2*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^1//4*(3+-4*im*a)+1//8*2^(1/2)*b^-2*(9+-12*im*a)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//16*2^(1/2)*b^-2*(9+-12*im*a)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(exp(3//2*im*arctan(a+b*x)), x) == :(im*b^-1*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^1//4+-3//2*im*2^(1/2)*b^-1*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-3//4*im*2^(1/2)*b^-1*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+3//2*im*2^(1/2)*b^-1*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+3//4*im*2^(1/2)*b^-1*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(x^-1*exp(3//2*im*arctan(a+b*x)), x) == :(2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+(1/2)*2^(1/2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1*2^(1/2)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//2*2^(1/2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-2*(im+a)^-3//4*(im+-1a)^3//4*arctanh((im+a)^1//4*(im+-1a)^-1//4*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^-1//4)+2*(im+a)^-3//4*(im+-1a)^3//4*arctan((im+a)^1//4*(im+-1a)^-1//4*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^-1//4))
@test integrate(x^-2*exp(3//2*im*arctan(a+b*x)), x) == :(-1*x^-1*(1+-1*im*a)^-1*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^1//4+-3*im*b*(im+a)^-7//4*(im+-1a)^-1//4*arctan((im+a)^1//4*(im+-1a)^-1//4*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^-1//4)+3*im*b*(im+a)^-7//4*(im+-1a)^-1//4*arctanh((im+a)^1//4*(im+-1a)^-1//4*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^-1//4))
@test integrate(x^2*exp(-1//2*im*arctan(a+b*x)), x) == :(-1//16*2^(1/2)*b^-3*(-4a+3im+-8*im*a^2)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//32*2^(1/2)*b^-3*(-4a+3im+-8*im*a^2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//3*x*b^-2*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^5//4+1//8*b^-3*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^1//4*(-4a+3im+-8*im*a^2)+1//12*b^-3*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^5//4*(im+-8a)+1//16*2^(1/2)*b^-3*(-4a+3im+-8*im*a^2)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//32*2^(1/2)*b^-3*(-4a+3im+-8*im*a^2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(x*exp(-1//2*im*arctan(a+b*x)), x) == :((1/2)*b^-2*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^5//4+-1//8*2^(1/2)*b^-2*(1+4*im*a)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//16*2^(1/2)*b^-2*(1+4*im*a)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//4*b^-2*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^1//4*(1+4*im*a)+1//8*2^(1/2)*b^-2*(1+4*im*a)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//16*2^(1/2)*b^-2*(1+4*im*a)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(exp(-1//2*im*arctan(a+b*x)), x) == :((1/2)*im*2^(1/2)*b^-1*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1*im*b^-1*(1+im*a+im*b*x)^3//4*(1+-1*im*a+-1*im*b*x)^1//4+-1//2*im*2^(1/2)*b^-1*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//4*im*2^(1/2)*b^-1*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//4*im*2^(1/2)*b^-1*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(x^-1*exp(-1//2*im*arctan(a+b*x)), x) == :(2^(1/2)*arctan(1+2^(1/2)*(1+im*(a+b*x))^-1//4*(1+-1*im*(a+b*x))^1//4)+(1/2)*2^(1/2)*log(1+(1+im*(a+b*x))^-1//2*(1+-1*im*(a+b*x))^(1/2)+2^(1/2)*(1+im*(a+b*x))^-1//4*(1+-1*im*(a+b*x))^1//4)+-1*2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*(a+b*x))^-1//4*(1+-1*im*(a+b*x))^1//4)+-1//2*2^(1/2)*log(1+(1+im*(a+b*x))^-1//2*(1+-1*im*(a+b*x))^(1/2)+-1*2^(1/2)*(1+im*(a+b*x))^-1//4*(1+-1*im*(a+b*x))^1//4)+-2*(im+a)^1//4*(im+-1a)^-1//4*arctan((1+im*(a+b*x))^-1//4*(1+-1*im*(a+b*x))^1//4*(im+a)^-1//4*(im+-1a)^1//4)+-2*(im+a)^1//4*(im+-1a)^-1//4*arctanh((1+im*(a+b*x))^-1//4*(1+-1*im*(a+b*x))^1//4*(im+a)^-1//4*(im+-1a)^1//4))
@test integrate(x^-2*exp(-1//2*im*arctan(a+b*x)), x) == :(-1*im*b*(im+a)^-3//4*(im+-1a)^-5//4*arctan((1+im*(a+b*x))^-1//4*(1+-1*im*(a+b*x))^1//4*(im+a)^-1//4*(im+-1a)^1//4)+-1*im*b*(im+a)^-3//4*(im+-1a)^-5//4*arctanh((1+im*(a+b*x))^-1//4*(1+-1*im*(a+b*x))^1//4*(im+a)^-1//4*(im+-1a)^1//4)+-1*x^-1*(1+im*(a+b*x))^-1//4*(1+-1*im*(a+b*x))^1//4*(im+-1a)^-1*(im+-1a+-1*b*x))
@test integrate(x^2*exp(-3//2*im*arctan(a+b*x)), x) == :(-1//16*2^(1/2)*b^-3*(-36a+17im+-24*im*a^2)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//32*2^(1/2)*b^-3*(-36a+17im+-24*im*a^2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//3*x*b^-2*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^7//4+1//12*b^-3*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^7//4*(-8a+3im)+1//16*2^(1/2)*b^-3*(-36a+17im+-24*im*a^2)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//24*b^-3*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^3//4*(-36a+17im+-24*im*a^2)+1//32*2^(1/2)*b^-3*(-36a+17im+-24*im*a^2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(x*exp(-3//2*im*arctan(a+b*x)), x) == :((1/2)*b^-2*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^7//4+-1//8*2^(1/2)*b^-2*(9+12*im*a)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//16*2^(1/2)*b^-2*(9+12*im*a)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//4*b^-2*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^3//4*(3+4*im*a)+1//8*2^(1/2)*b^-2*(9+12*im*a)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+1//16*2^(1/2)*b^-2*(9+12*im*a)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(exp(-3//2*im*arctan(a+b*x)), x) == :(-1*im*b^-1*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^3//4+-3//2*im*2^(1/2)*b^-1*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-3//4*im*2^(1/2)*b^-1*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+3//2*im*2^(1/2)*b^-1*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+3//4*im*2^(1/2)*b^-1*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4))
@test integrate(x^-1*exp(-3//2*im*arctan(a+b*x)), x) == :(2^(1/2)*arctan(1+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+(1/2)*2^(1/2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1*2^(1/2)*arctan(1+-1*2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-1//2*2^(1/2)*log(1+(1+im*a+im*b*x)^-1//2*(1+-1*im*a+-1*im*b*x)^(1/2)+2^(1/2)*(1+im*a+im*b*x)^-1//4*(1+-1*im*a+-1*im*b*x)^1//4)+-2*(im+a)^3//4*(im+-1a)^-3//4*arctan((im+a)^1//4*(im+-1a)^-1//4*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^-1//4)+-2*(im+a)^3//4*(im+-1a)^-3//4*arctanh((im+a)^1//4*(im+-1a)^-1//4*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^-1//4))
@test integrate(x^-2*exp(-3//2*im*arctan(a+b*x)), x) == :(-1*x^-1*(1+im*a)^-1*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^3//4+-3*im*b*(im+a)^-1//4*(im+-1a)^-7//4*arctan((im+a)^1//4*(im+-1a)^-1//4*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^-1//4)+-3*im*b*(im+a)^-1//4*(im+-1a)^-7//4*arctanh((im+a)^1//4*(im+-1a)^-1//4*(1+im*a+im*b*x)^1//4*(1+-1*im*a+-1*im*b*x)^-1//4))
@test integrate((c+c*a^2*x^2)^-1*exp(arctan(a*x)), x) == :(a^-1*c^-1*exp(arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-2*exp(arctan(a*x)), x) == :(2//5*a^-1*c^-2*exp(arctan(a*x))+1//5*a^-1*c^-2*(1+a^2*x^2)^-1*(1+2*a*x)*exp(arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-3*exp(arctan(a*x)), x) == :(24//85*a^-1*c^-3*exp(arctan(a*x))+1//17*a^-1*c^-3*(1+a^2*x^2)^-2*(1+4*a*x)*exp(arctan(a*x))+12//85*a^-1*c^-3*(1+a^2*x^2)^-1*(1+2*a*x)*exp(arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-4*exp(arctan(a*x)), x) == :(144//629*a^-1*c^-4*exp(arctan(a*x))+1//37*a^-1*c^-4*(1+a^2*x^2)^-3*(1+6*a*x)*exp(arctan(a*x))+30//629*a^-1*c^-4*(1+a^2*x^2)^-2*(1+4*a*x)*exp(arctan(a*x))+72//629*a^-1*c^-4*(1+a^2*x^2)^-1*(1+2*a*x)*exp(arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-5*exp(arctan(a*x)), x) == :(8064//40885*a^-1*c^-5*exp(arctan(a*x))+1//65*a^-1*c^-5*(1+a^2*x^2)^-4*(1+8*a*x)*exp(arctan(a*x))+56//2405*a^-1*c^-5*(1+a^2*x^2)^-3*(1+6*a*x)*exp(arctan(a*x))+336//8177*a^-1*c^-5*(1+a^2*x^2)^-2*(1+4*a*x)*exp(arctan(a*x))+4032//40885*a^-1*c^-5*(1+a^2*x^2)^-1*(1+2*a*x)*exp(arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-3//2*exp(arctan(a*x)), x) == :((1/2)*a^-1*c^-1*(c+c*a^2*x^2)^-1//2*(1+a*x)*exp(arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-5//2*exp(arctan(a*x)), x) == :(1//10*a^-1*c^-1*(c+c*a^2*x^2)^-3//2*(1+3*a*x)*exp(arctan(a*x))+3//10*a^-1*c^-2*(c+c*a^2*x^2)^-1//2*(1+a*x)*exp(arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-7//2*exp(arctan(a*x)), x) == :(1//13*a^-1*c^-2*(c+c*a^2*x^2)^-3//2*(1+3*a*x)*exp(arctan(a*x))+1//26*a^-1*c^-1*(c+c*a^2*x^2)^-5//2*(1+5*a*x)*exp(arctan(a*x))+3//13*a^-1*c^-3*(c+c*a^2*x^2)^-1//2*(1+a*x)*exp(arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-1*exp(2*arctan(a*x)), x) == :((1/2)*a^-1*c^-1*exp(2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-2*exp(2*arctan(a*x)), x) == :(1//8*a^-1*c^-2*exp(2*arctan(a*x))+1//4*a^-1*c^-2*(1+a^2*x^2)^-1*(1+a*x)*exp(2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-3*exp(2*arctan(a*x)), x) == :(3//40*a^-1*c^-3*exp(2*arctan(a*x))+1//10*a^-1*c^-3*(1+a^2*x^2)^-2*(1+2*a*x)*exp(2*arctan(a*x))+3//20*a^-1*c^-3*(1+a^2*x^2)^-1*(1+a*x)*exp(2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-4*exp(2*arctan(a*x)), x) == :(9//160*a^-1*c^-4*exp(2*arctan(a*x))+1//20*a^-1*c^-4*(1+a^2*x^2)^-3*(1+3*a*x)*exp(2*arctan(a*x))+3//40*a^-1*c^-4*(1+a^2*x^2)^-2*(1+2*a*x)*exp(2*arctan(a*x))+9//80*a^-1*c^-4*(1+a^2*x^2)^-1*(1+a*x)*exp(2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-3//2*exp(2*arctan(a*x)), x) == :(1//5*a^-1*c^-1*(c+c*a^2*x^2)^-1//2*(2+a*x)*exp(2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-5//2*exp(2*arctan(a*x)), x) == :(1//13*a^-1*c^-1*(c+c*a^2*x^2)^-3//2*(2+3*a*x)*exp(2*arctan(a*x))+6//65*a^-1*c^-2*(c+c*a^2*x^2)^-1//2*(2+a*x)*exp(2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-7//2*exp(2*arctan(a*x)), x) == :(1//29*a^-1*c^-1*(c+c*a^2*x^2)^-5//2*(2+5*a*x)*exp(2*arctan(a*x))+20//377*a^-1*c^-2*(c+c*a^2*x^2)^-3//2*(2+3*a*x)*exp(2*arctan(a*x))+24//377*a^-1*c^-3*(c+c*a^2*x^2)^-1//2*(2+a*x)*exp(2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-1*exp(-1*arctan(a*x)), x) == :(-1*a^-1*c^-1*exp(-1*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-2*exp(-1*arctan(a*x)), x) == :(-2//5*a^-1*c^-2*exp(-1*arctan(a*x))+-1//5*a^-1*c^-2*(1+a^2*x^2)^-1*(1+-2*a*x)*exp(-1*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-3*exp(-1*arctan(a*x)), x) == :(-24//85*a^-1*c^-3*exp(-1*arctan(a*x))+-1//17*a^-1*c^-3*(1+a^2*x^2)^-2*(1+-4*a*x)*exp(-1*arctan(a*x))+-1//85*a^-1*c^-3*(1+a^2*x^2)^-1*(12+-24*a*x)*exp(-1*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-4*exp(-1*arctan(a*x)), x) == :(-144//629*a^-1*c^-4*exp(-1*arctan(a*x))+-1//37*a^-1*c^-4*(1+a^2*x^2)^-3*(1+-6*a*x)*exp(-1*arctan(a*x))+-1//629*a^-1*c^-4*(1+a^2*x^2)^-1*(72+-144*a*x)*exp(-1*arctan(a*x))+-1//629*a^-1*c^-4*(1+a^2*x^2)^-2*(30+-120*a*x)*exp(-1*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-3//2*exp(-1*arctan(a*x)), x) == :(-1//2*a^-1*c^-1*(c+c*a^2*x^2)^-1//2*(1+-1*a*x)*exp(-1*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-5//2*exp(-1*arctan(a*x)), x) == :(-1//10*a^-1*c^-1*(c+c*a^2*x^2)^-3//2*(1+-3*a*x)*exp(-1*arctan(a*x))+-1//10*a^-1*c^-2*(c+c*a^2*x^2)^-1//2*(3+-3*a*x)*exp(-1*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-7//2*exp(-1*arctan(a*x)), x) == :(-1//13*a^-1*c^-3*(c+c*a^2*x^2)^-1//2*(3+-3*a*x)*exp(-1*arctan(a*x))+-1//13*a^-1*c^-2*(c+c*a^2*x^2)^-3//2*(1+-3*a*x)*exp(-1*arctan(a*x))+-1//26*a^-1*c^-1*(c+c*a^2*x^2)^-5//2*(1+-5*a*x)*exp(-1*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-1*exp(-2*arctan(a*x)), x) == :(-1//2*a^-1*c^-1*exp(-2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-2*exp(-2*arctan(a*x)), x) == :(-1//8*a^-1*c^-2*exp(-2*arctan(a*x))+-1//4*a^-1*c^-2*(1+a^2*x^2)^-1*(1+-1*a*x)*exp(-2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-3*exp(-2*arctan(a*x)), x) == :(-3//40*a^-1*c^-3*exp(-2*arctan(a*x))+-1//10*a^-1*c^-3*(1+a^2*x^2)^-2*(1+-2*a*x)*exp(-2*arctan(a*x))+-1//20*a^-1*c^-3*(1+a^2*x^2)^-1*(3+-3*a*x)*exp(-2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-4*exp(-2*arctan(a*x)), x) == :(-9//160*a^-1*c^-4*exp(-2*arctan(a*x))+-1//20*a^-1*c^-4*(1+a^2*x^2)^-3*(1+-3*a*x)*exp(-2*arctan(a*x))+-1//40*a^-1*c^-4*(1+a^2*x^2)^-2*(3+-6*a*x)*exp(-2*arctan(a*x))+-1//80*a^-1*c^-4*(1+a^2*x^2)^-1*(9+-9*a*x)*exp(-2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-3//2*exp(-2*arctan(a*x)), x) == :(-1//5*a^-1*c^-1*(c+c*a^2*x^2)^-1//2*(2+-1*a*x)*exp(-2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-5//2*exp(-2*arctan(a*x)), x) == :(-1//13*a^-1*c^-1*(c+c*a^2*x^2)^-3//2*(2+-3*a*x)*exp(-2*arctan(a*x))+-1//65*a^-1*c^-2*(c+c*a^2*x^2)^-1//2*(12+-6*a*x)*exp(-2*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-7//2*exp(-2*arctan(a*x)), x) == :(-1//29*a^-1*c^-1*(c+c*a^2*x^2)^-5//2*(2+-5*a*x)*exp(-2*arctan(a*x))+-1//377*a^-1*c^-3*(c+c*a^2*x^2)^-1//2*(48+-24*a*x)*exp(-2*arctan(a*x))+-1//377*a^-1*c^-2*(c+c*a^2*x^2)^-3//2*(40+-60*a*x)*exp(-2*arctan(a*x)))
@test integrate((1+a^2*x^2)^-1//2*exp(5*im*arctan(a*x)), x) == :(im*a^-1*log(im+a*x)+-2*im*a^-1*(1+-1*im*a*x)^-2+4*im*a^-1*(1+-1*im*a*x)^-1)
@test integrate((1+a^2*x^2)^-1//2*exp(4*im*arctan(a*x)), x) == :(a^-1*arcsinh(a*x)+2*im*a^-1*(1+im*a*x)^(1/2)*(1+-1*im*a*x)^-1//2+-2//3*im*a^-1*(1+im*a*x)^3//2*(1+-1*im*a*x)^-3//2)
@test integrate((1+a^2*x^2)^-1//2*exp(3*im*arctan(a*x)), x) == :(2*a^-1*(im+a*x)^-1+-1*im*a^-1*log(im+a*x))
@test integrate((1+a^2*x^2)^-1//2*exp(2*im*arctan(a*x)), x) == :(-1*a^-1*arcsinh(a*x)+-2*im*a^-1*(1+im*a*x)^(1/2)*(1+-1*im*a*x)^-1//2)
@test integrate((1+a^2*x^2)^-1//2*exp(im*arctan(a*x)), x) == :(im*a^-1*log(im+a*x))
@test integrate((1+a^2*x^2)^-1//2*exp(-1*im*arctan(a*x)), x) == :(-1*im*a^-1*log(im+-1*a*x))
@test integrate((1+a^2*x^2)^-1//2*exp(-2*im*arctan(a*x)), x) == :(-1*a^-1*arcsinh(a*x)+2*im*a^-1*(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2))
@test integrate((1+a^2*x^2)^-1//2*exp(-3*im*arctan(a*x)), x) == :(-2*a^-1*(im+-1*a*x)^-1+im*a^-1*log(im+-1*a*x))
@test integrate((1+a^2*x^2)^-1//2*exp(-4*im*arctan(a*x)), x) == :(a^-1*arcsinh(a*x)+-2*im*a^-1*(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2)+2//3*im*a^-1*(1+im*a*x)^-3//2*(1+-1*im*a*x)^3//2)
@test integrate((c+c*a^2*x^2)^-1//2*exp(5*im*arctan(a*x)), x) == :(im*a^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*log(im+a*x)+-2*im*a^-1*(1+a^2*x^2)^(1/2)*(1+-1*im*a*x)^-2*(c+c*a^2*x^2)^-1//2+4*im*a^-1*(1+a^2*x^2)^(1/2)*(1+-1*im*a*x)^-1*(c+c*a^2*x^2)^-1//2)
@test integrate((c+c*a^2*x^2)^-1//2*exp(4*im*arctan(a*x)), x) == :(a^-1*c^-1//2*arctanh(a*x*c^(1/2)*(c+c*a^2*x^2)^-1//2)+2*im*a^-1*(c+c*a^2*x^2)^-1//2*(1+im*a*x)+-2//3*im*c*a^-1*(1+im*a*x)^3*(c+c*a^2*x^2)^-3//2)
@test integrate((c+c*a^2*x^2)^-1//2*exp(3*im*arctan(a*x)), x) == :(2*a^-1*(1+a^2*x^2)^(1/2)*(im+a*x)^-1*(c+c*a^2*x^2)^-1//2+-1*im*a^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*log(im+a*x))
@test integrate((c+c*a^2*x^2)^-1//2*exp(2*im*arctan(a*x)), x) == :(-1*a^-1*c^-1//2*arctanh(a*x*c^(1/2)*(c+c*a^2*x^2)^-1//2)+-2*im*a^-1*(c+c*a^2*x^2)^-1//2*(1+im*a*x))
@test integrate((c+c*a^2*x^2)^-1//2*exp(im*arctan(a*x)), x) == :(im*a^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*log(im+a*x))
@test integrate((c+c*a^2*x^2)^-1//2*exp(-1*im*arctan(a*x)), x) == :(-1*im*a^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*log(im+-1*a*x))
@test integrate((c+c*a^2*x^2)^-1//2*exp(-2*im*arctan(a*x)), x) == :(-1*a^-1*c^-1//2*arctanh(a*x*c^(1/2)*(c+c*a^2*x^2)^-1//2)+2*im*a^-1*(c+c*a^2*x^2)^-1//2*(1+-1*im*a*x))
@test integrate((c+c*a^2*x^2)^-1//2*exp(-3*im*arctan(a*x)), x) == :(-2*a^-1*(1+a^2*x^2)^(1/2)*(im+-1*a*x)^-1*(c+c*a^2*x^2)^-1//2+im*a^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*log(im+-1*a*x))
@test integrate((c+c*a^2*x^2)^-1//2*exp(-4*im*arctan(a*x)), x) == :(a^-1*c^-1//2*arctanh(a*x*c^(1/2)*(c+c*a^2*x^2)^-1//2)+-2*im*a^-1*(c+c*a^2*x^2)^-1//2*(1+-1*im*a*x)+2//3*im*c*a^-1*(1+-1*im*a*x)^3*(c+c*a^2*x^2)^-3//2)
@test integrate((1+a^2*x^2)^-3//2*exp(5*im*arctan(a*x)), x) == :(-2//3*a^-1*(im+a*x)^-3+-1//2*im*a^-1*(im+a*x)^-2)
@test integrate((1+a^2*x^2)^-3//2*exp(4*im*arctan(a*x)), x) == :(-1//5*im*a^-1*(1+im*a*x)^3//2*(1+-1*im*a*x)^-5//2+-1//15*im*a^-1*(1+im*a*x)^3//2*(1+-1*im*a*x)^-3//2)
@test integrate((1+a^2*x^2)^-3//2*exp(3*im*arctan(a*x)), x) == :(-1//2*im*a^-1*(1+-1*im*a*x)^-2)
@test integrate((1+a^2*x^2)^-3//2*exp(2*im*arctan(a*x)), x) == :(-1//3*im*a^-1*(1+im*a*x)^(1/2)*(1+-1*im*a*x)^-3//2+-1//3*im*a^-1*(1+im*a*x)^(1/2)*(1+-1*im*a*x)^-1//2)
@test integrate((1+a^2*x^2)^-3//2*exp(im*arctan(a*x)), x) == :((1/2)*a^-1*(im+a*x)^-1+(1/2)*a^-1*arctan(a*x))
@test integrate((1+a^2*x^2)^-3//2*exp(-1*im*arctan(a*x)), x) == :((1/2)*a^-1*arctan(a*x)+-1//2*a^-1*(im+-1*a*x)^-1)
@test integrate((1+a^2*x^2)^-3//2*exp(-2*im*arctan(a*x)), x) == :(1//3*im*a^-1*(1+im*a*x)^-3//2*(1+-1*im*a*x)^(1/2)+1//3*im*a^-1*(1+im*a*x)^-1//2*(1+-1*im*a*x)^(1/2))
@test integrate((1+a^2*x^2)^-3//2*exp(-3*im*arctan(a*x)), x) == :((1/2)*im*a^-1*(1+im*a*x)^-2)
@test integrate((1+a^2*x^2)^-3//2*exp(-4*im*arctan(a*x)), x) == :(1//5*im*a^-1*(1+im*a*x)^-5//2*(1+-1*im*a*x)^3//2+1//15*im*a^-1*(1+im*a*x)^-3//2*(1+-1*im*a*x)^3//2)
@test integrate((c+c*a^2*x^2)^-3//2*exp(5*im*arctan(a*x)), x) == :(-2//3*a^-1*c^-1*(1+a^2*x^2)^(1/2)*(im+a*x)^-3*(c+c*a^2*x^2)^-1//2+-1//2*im*a^-1*c^-1*(1+a^2*x^2)^(1/2)*(im+a*x)^-2*(c+c*a^2*x^2)^-1//2)
@test integrate((c+c*a^2*x^2)^-3//2*exp(4*im*arctan(a*x)), x) == :(-1//3*im*c*a^-1*(1+im*a*x)^4*(c+c*a^2*x^2)^-5//2+1//15*im*c*a^-1*(1+im*a*x)^5*(c+c*a^2*x^2)^-5//2)
@test integrate((c+c*a^2*x^2)^-3//2*exp(3*im*arctan(a*x)), x) == :(-1//2*im*a^-1*c^-1*(1+a^2*x^2)^(1/2)*(1+-1*im*a*x)^-2*(c+c*a^2*x^2)^-1//2)
@test integrate((c+c*a^2*x^2)^-3//2*exp(2*im*arctan(a*x)), x) == :(1//3*x*c^-1*(c+c*a^2*x^2)^-1//2+-2//3*im*a^-1*(c+c*a^2*x^2)^-3//2*(1+im*a*x))
@test integrate((c+c*a^2*x^2)^-3//2*exp(im*arctan(a*x)), x) == :((1/2)*a^-1*c^-1*(1+a^2*x^2)^(1/2)*(im+a*x)^-1*(c+c*a^2*x^2)^-1//2+(1/2)*a^-1*c^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*arctan(a*x))
@test integrate((c+c*a^2*x^2)^-3//2*exp(-1*im*arctan(a*x)), x) == :((1/2)*a^-1*c^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*arctan(a*x)+-1//2*a^-1*c^-1*(1+a^2*x^2)^(1/2)*(im+-1*a*x)^-1*(c+c*a^2*x^2)^-1//2)
@test integrate((c+c*a^2*x^2)^-3//2*exp(-2*im*arctan(a*x)), x) == :(1//3*x*c^-1*(c+c*a^2*x^2)^-1//2+2//3*im*a^-1*(c+c*a^2*x^2)^-3//2*(1+-1*im*a*x))
@test integrate((c+c*a^2*x^2)^-3//2*exp(-3*im*arctan(a*x)), x) == :((1/2)*im*a^-1*c^-1*(1+a^2*x^2)^(1/2)*(1+im*a*x)^-2*(c+c*a^2*x^2)^-1//2)
@test integrate((c+c*a^2*x^2)^-3//2*exp(-4*im*arctan(a*x)), x) == :(-1//15*im*c*a^-1*(1+-1*im*a*x)^5*(c+c*a^2*x^2)^-5//2+1//3*im*c*a^-1*(1+-1*im*a*x)^4*(c+c*a^2*x^2)^-5//2)
@test integrate((c+c*a^2*x^2)^-1*exp(n*arctan(a*x)), x) == :(a^-1*c^-1*n^-1*exp(n*arctan(a*x)))
@test integrate(x^2*(c+c*a^2*x^2)^-2*exp(n*arctan(a*x)), x) == :(a^-3*c^-2*n^-1*(4+n^2)^-1*(2+n^2)*exp(n*arctan(a*x))+-1*a^-3*c^-2*(1+a^2*x^2)^-1*(4+n^2)^-1*(n+2*a*x)*exp(n*arctan(a*x)))
@test integrate(x*(c+c*a^2*x^2)^-2*exp(n*arctan(a*x)), x) == :(a^-2*c^-2*(4+n^2)^-1*exp(n*arctan(a*x))+-1*a^-2*c^-2*(1+a^2*x^2)^-1*(4+n^2)^-1*(2+-1*a*n*x)*exp(n*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-2*exp(n*arctan(a*x)), x) == :(2*a^-1*c^-2*n^-1*(4+n^2)^-1*exp(n*arctan(a*x))+a^-1*c^-2*(1+a^2*x^2)^-1*(4+n^2)^-1*(n+2*a*x)*exp(n*arctan(a*x)))
@test integrate(x^2*(c+c*a^2*x^2)^-3*exp(n*arctan(a*x)), x) == :(2*a^-3*c^-3*n^-1*(16+n^2)^-1*exp(n*arctan(a*x))+a^-3*c^-3*(1+a^2*x^2)^-1*(16+n^2)^-1*(n+2*a*x)*exp(n*arctan(a*x))+-1*a^-3*c^-3*(1+a^2*x^2)^-2*(16+n^2)^-1*(n+4*a*x)*exp(n*arctan(a*x)))
@test integrate(x*(c+c*a^2*x^2)^-3*exp(n*arctan(a*x)), x) == :(6*a^-2*c^-3*(4+n^2)^-1*(16+n^2)^-1*exp(n*arctan(a*x))+-1*a^-2*c^-3*(1+a^2*x^2)^-2*(16+n^2)^-1*(4+-1*a*n*x)*exp(n*arctan(a*x))+3*n*a^-2*c^-3*(1+a^2*x^2)^-1*(4+n^2)^-1*(16+n^2)^-1*(n+2*a*x)*exp(n*arctan(a*x)))
@test integrate(x*(c+c*a^2*x^2)^-3//2*exp(n*arctan(a*x)), x) == :(-1*a^-2*c^-1*(1+n^2)^-1*(c+c*a^2*x^2)^-1//2*(1+-1*a*n*x)*exp(n*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-3//2*exp(n*arctan(a*x)), x) == :(a^-1*c^-1*(1+n^2)^-1*(c+c*a^2*x^2)^-1//2*(n+a*x)*exp(n*arctan(a*x)))
@test integrate(x^3*(c+c*a^2*x^2)^-5//2*exp(n*arctan(a*x)), x) == :(-6*a^-4*c^-2*(c+c*a^2*x^2)^-1//2*(9+n^4+10*n^2)^-1*exp(n*arctan(a*x))+-3*a^-2*c^-2*x^2*(1+a^2*x^2)^-1*(9+n^2)^-1*(c+c*a^2*x^2)^-1//2*exp(n*arctan(a*x))+6*n*x*a^-3*c^-2*(c+c*a^2*x^2)^-1//2*(9+n^4+10*n^2)^-1*exp(n*arctan(a*x))+n*a^-1*c^-2*x^3*(1+a^2*x^2)^-1*(9+n^2)^-1*(c+c*a^2*x^2)^-1//2*exp(n*arctan(a*x)))
@test integrate(x^2*(c+c*a^2*x^2)^-5//2*exp(n*arctan(a*x)), x) == :(-1*a^-3*c^-1*(9+n^2)^-1*(c+c*a^2*x^2)^-3//2*(n+3*a*x)*exp(n*arctan(a*x))+a^-3*c^-2*(1+n^2)^-1*(9+n^2)^-1*(c+c*a^2*x^2)^-1//2*(3+n^2)*(n+a*x)*exp(n*arctan(a*x)))
@test integrate(x*(c+c*a^2*x^2)^-5//2*exp(n*arctan(a*x)), x) == :(-1*a^-2*c^-1*(9+n^2)^-1*(c+c*a^2*x^2)^-3//2*(3+-1*a*n*x)*exp(n*arctan(a*x))+2*n*a^-2*c^-2*(1+n^2)^-1*(9+n^2)^-1*(c+c*a^2*x^2)^-1//2*(n+a*x)*exp(n*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^-5//2*exp(n*arctan(a*x)), x) == :(a^-1*c^-1*(9+n^2)^-1*(c+c*a^2*x^2)^-3//2*(n+3*a*x)*exp(n*arctan(a*x))+6*a^-1*c^-2*(1+n^2)^-1*(9+n^2)^-1*(c+c*a^2*x^2)^-1//2*(n+a*x)*exp(n*arctan(a*x)))
@test integrate((c+c*a^2*x^2)^p*exp(-2*im*p*arctan(a*x)), x) == :(im*a^-1*(1+2p)^-1*(1+a^2*x^2)^(-1p)*(1+-1*im*a*x)^(1+2p)*(c+c*a^2*x^2)^p)
@test integrate((c+c*a^2*x^2)^p*exp(2*im*p*arctan(a*x)), x) == :(-1*im*a^-1*(1+2p)^-1*(1+a^2*x^2)^(-1p)*(1+im*a*x)^(1+2p)*(c+c*a^2*x^2)^p)
@test integrate(x^2*(c+c*a^2*x^2)^(-1+-1//2*n^2)*exp(im*n*arctan(a*x)), x) == :(im*a^-3*c^-1*n^-1*(1+-1*n^2)^-1*(c+c*a^2*x^2)^(-1//2*n^2)*(1+-1*im*a*n*x)*exp(im*n*arctan(a*x)))
@test integrate(x^2*(c+c*a^2*x^2)^-19*exp(6*im*arctan(a*x)), x) == :(-1//210*a^-3*c^-19*(1+im*a*x)^-15*(1+-1*im*a*x)^-21*(im+6*a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-9*exp(4*im*arctan(a*x)), x) == :(-1//60*a^-3*c^-9*(1+im*a*x)^-6*(1+-1*im*a*x)^-10*(im+4*a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-3*exp(2*im*arctan(a*x)), x) == :(-1//6*a^-3*c^-3*(1+im*a*x)^-1*(1+-1*im*a*x)^-3*(im+2*a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-3*exp(-2*im*arctan(a*x)), x) == :(1//6*a^-3*c^-3*(1+im*a*x)^-3*(1+-1*im*a*x)^-1*(im+-2*a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-9*exp(-4*im*arctan(a*x)), x) == :(1//60*a^-3*c^-9*(1+im*a*x)^-10*(1+-1*im*a*x)^-6*(im+-4*a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-27//2*exp(5*im*arctan(a*x)), x) == :(-1//120*a^-3*c^-13*(1+a^2*x^2)^(1/2)*(1+im*a*x)^-10*(1+-1*im*a*x)^-15*(c+c*a^2*x^2)^-1//2*(im+5*a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-11//2*exp(3*im*arctan(a*x)), x) == :(-1//24*a^-3*c^-5*(1+a^2*x^2)^(1/2)*(1+im*a*x)^-3*(1+-1*im*a*x)^-6*(c+c*a^2*x^2)^-1//2*(im+3*a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-3//2*exp(im*arctan(a*x)), x) == :(-1//2*a^-3*c^-1*(1+a^2*x^2)^(1/2)*(im+a*x)^-1*(c+c*a^2*x^2)^-1//2+1//4*im*a^-3*c^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*log(im+-1*a*x)+3//4*im*a^-3*c^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*log(im+a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-3//2*exp(-1*im*arctan(a*x)), x) == :((1/2)*a^-3*c^-1*(1+a^2*x^2)^(1/2)*(im+-1*a*x)^-1*(c+c*a^2*x^2)^-1//2+-3//4*im*a^-3*c^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*log(im+-1*a*x)+-1//4*im*a^-3*c^-1*(1+a^2*x^2)^(1/2)*(c+c*a^2*x^2)^-1//2*log(im+a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-11//2*exp(-3*im*arctan(a*x)), x) == :(1//24*a^-3*c^-5*(1+a^2*x^2)^(1/2)*(1+im*a*x)^-6*(1+-1*im*a*x)^-3*(c+c*a^2*x^2)^-1//2*(im+-3*a*x))
@test integrate(x^2*(c+c*a^2*x^2)^-27//2*exp(-5*im*arctan(a*x)), x) == :(1//120*a^-3*c^-13*(1+a^2*x^2)^(1/2)*(1+im*a*x)^-15*(1+-1*im*a*x)^-10*(c+c*a^2*x^2)^-1//2*(im+-5*a*x))

max_stars_repo_path: test/5 Inverse trig functions/5.3 Inverse tangent/5.3.6 Exponentials of inverse tangent.jl


text:
struct ODEInterpolatingAdjointSensitivityFunction{rateType,uType,uType2,UF,PF,G,JC,GC,DG,TJ,PJT,PJC,CP,SType,INT,CV} <: SensitivityFunction
  uf::UF
  pf::PF
  g::G
  J::TJ
  pJ::PJT
  dg_val::uType
  jac_config::JC
  g_grad_config::GC
  paramjac_config::PJC
  sensealg::InterpolatingAdjoint
  f_cache::rateType
  discrete::Bool
  y::uType2
  sol::SType
  dg::DG
  checkpointing::Bool
  checkpoints::CP
  integrator::INT
  colorvec::CV
end

@noinline function ODEInterpolatingAdjointSensitivityFunction(g,u0,p,sensealg,discrete,sol,dg,checkpoints,tspan,colorvec)
  numparams = length(p)
  numindvar = length(u0)
  # if there is an analytical Jacobian provided, we are not going to do automatic `jac*vec`
  f = sol.prob.f
  checkpointing = sensealg.checkpointing isa Bool ? sensealg.checkpointing : !sol.dense
  isautojacvec = DiffEqBase.has_jac(f) ? false : get_jacvec(sensealg)
  J = isautojacvec ? nothing : similar(u0, numindvar, numindvar)

  if !discrete
    if dg != nothing || isautojacvec
      pg = nothing
      pg_config = nothing
    else
      pg = UGradientWrapper(g,tspan[2],p)
      pg_config = build_grad_config(sensealg,pg,u0,p)
    end
  else
    pg = nothing
    pg_config = nothing
  end

  if DiffEqBase.has_jac(f) || isautojacvec
    jac_config = nothing
    uf = nothing
  else
    uf = DiffEqDiffTools.UJacobianWrapper(f,tspan[2],p)
    jac_config = build_jac_config(sensealg,uf,u0)
  end

  y = copy(sol(tspan[1])) # TODO: Has to start at interpolation value!

  if DiffEqBase.has_paramjac(f) || isautojacvec
    paramjac_config = nothing
    pf = nothing
  else
    pf = DiffEqDiffTools.ParamJacobianWrapper(f,tspan[1],y)
    paramjac_config = build_param_jac_config(sensealg,pf,y,p)
  end

  pJ = isautojacvec ? nothing : similar(sol.prob.u0, numindvar, numparams)

  integrator = if checkpointing
    integ = init(sol.prob, sol.alg, save_on=false)
    integ.u = y
    integ
  else
    nothing
  end
  dg_val = similar(u0, numindvar) # number of funcs size
  f_cache = deepcopy(u0)

  return ODEInterpolatingAdjointSensitivityFunction(uf,pf,pg,J,pJ,dg_val,
                               jac_config,pg_config,paramjac_config,
                               sensealg,f_cache,
                               discrete,y,sol,dg,checkpointing,checkpoints,integrator,colorvec)
end

# u = λ'
function (S::ODEInterpolatingAdjointSensitivityFunction)(du,u,p,t)
  @unpack y, sol, J, uf, sensealg, checkpointing, f_cache, jac_config, discrete, dg, dg_val, g, g_grad_config = S
  idx = length(y)
  f = sol.prob.f
  isautojacvec = DiffEqBase.has_jac(f) ? false : get_jacvec(sensealg)

  if checkpointing
    @unpack integrator, checkpoints = S
    # assuming that in the forward direction `t0` < `t1`, and the
    # `checkpoints` vector is sorted with respect to the forward direction
    tidx = findlast(x->x <= t, checkpoints)
    t0 = checkpoints[tidx]
    dt = t-t0
    if abs(dt) > integrator.opts.dtmin
      sol(integrator.u, t0)
      copyto!(integrator.uprev, integrator.u)
      integrator.t = t0
      # set `iter` to some arbitrary integer so that there won't be max maxiters error
      integrator.iter=100
      u_modified!(integrator, true)
      step!(integrator, dt, true)
      # `integrator.u` is aliased to `y`
    else
      sol(y,t)
    end
  else
    sol(y,t)
  end

  λ     = @view u[1:idx]
  dλ    = @view du[1:idx]
  grad  = @view u[idx+1:end]
  dgrad = @view du[idx+1:end]

  if !isautojacvec
    if DiffEqBase.has_jac(f)
      f.jac(J,y,p,t) # Calculate the Jacobian into J
    else
      uf.t = t
      jacobian!(J, uf, y, f_cache, sensealg, jac_config)
    end
    mul!(dλ',λ',J)
  else
    _dy, back = Tracker.forward(y, sol.prob.p) do u, p
      if DiffEqBase.isinplace(sol.prob)
        out_ = map(zero, u)
        f(out_, u, p, t)
        Tracker.collect(out_)
      else
        vec(f(u, p, t))
      end
    end
    dλ[:], dgrad[:] = Tracker.data.(back(λ))
  end

  dλ .*= -one(eltype(λ))

  if !discrete
    if dg != nothing
      dg(dg_val,y,p,t)
    else
      g.t = t
      gradient!(dg_val, g, y, sensealg, g_grad_config)
    end
    dλ .+= dg_val
  end

  if !isautojacvec
    @unpack pJ, pf, paramjac_config = S
    if DiffEqBase.has_paramjac(f)
      f.paramjac(pJ,y,sol.prob.p,t) # Calculate the parameter Jacobian into pJ
    else
      jacobian!(pJ, pf, sol.prob.p, f_cache, sensealg, paramjac_config)
    end
    mul!(dgrad',λ',pJ)
  end
  nothing
end

# g is either g(t,u,p) or discrete g(t,u,i)
@noinline function ODEAdjointProblem(sol,sensealg::InterpolatingAdjoint,
                                     g,t=nothing,dg=nothing;
                                     checkpoints=sol.t,
                                     callback=CallbackSet())
  f = sol.prob.f
  tspan = (sol.prob.tspan[2],sol.prob.tspan[1])
  discrete = t != nothing

  p = sol.prob.p
  p === DiffEqBase.NullParameters() && error("Your model does not have parameters, and thus it is impossible to calculate the derivative of the solution with respect to the parameters. Your model must have parameters to use parameter sensitivity calculations!")

  u0 = zero(sol.prob.u0)

  len = length(u0)+length(p)
  λ = similar(u0, len)
  sense = ODEInterpolatingAdjointSensitivityFunction(g,u0,
                                                     p,sensealg,discrete,
                                                     sol,dg,checkpoints,tspan,
                                                     f.colorvec)

  init_cb = t !== nothing && sol.prob.tspan[2] == t[end]
  cb = generate_callbacks(sense, g, λ, t, callback, init_cb)
  z0 = vec(zero(λ))
  ODEProblem(sense,z0,tspan,p,callback=cb)
end

ext: jl


text:
function sma(ta::TimeArray, n::Int)
    tstamps = ta.timestamp[n:end]

    vals = zeros(size(ta.values,1) - (n-1), size(ta.values,2))
    for i in 1:size(ta.values,1) - (n-1)
        for j in 1:size(ta.values,2)
            vals[i,j] = mean(ta.values[i:i+(n-1),j])
        end
    end

    cname = String[]
    cols  = colnames(ta)
    for c in 1:length(cols)
        push!(cname, string(cols[c], "_sma_", n))
    end

    TimeArray(tstamps, vals, cname, ta.meta)
end

function ema(ta::TimeArray, n::Int; wilder=false)
    k = if wilder
        1 / n
    else
        2 / (n + 1)
    end

    tstamps = ta.timestamp[n:end]

    vals    =  zeros(size(ta.values,1), size(ta.values,2))
    # seed with first value with an sma value
    vals[n,:] = sma(ta, n).values[1,:]

    for i in n+1:size(ta.values,1)
        for j in 1:size(ta.values,2)
            vals[i,j] = ta.values[i,j] * k + vals[i-1, j] * (1-k)
        end
    end

    cname   = String[]
    cols    = colnames(ta)
    for c in 1:length(cols)
        push!(cname, string(cols[c], "_ema_", n))
    end

    TimeArray(tstamps, vals[n:length(ta),:], cname, ta.meta)
end

function kama(ta::TimeArray, n::Int=10, fn::Int=2, sn::Int=30)
    vola = moving(sum, abs.(ta .- lag(ta)), n)
    change = abs.(ta .- lag(ta, n))
    er = safediv.(change, vola)  # Efficiency Ratio

    # Smooth Constant
    sc = (er .* (2 / (fn + 1) - 2 / (sn + 1)) .+ 2 / (sn + 1)).^2

    cl = ta[n+1:end]
    vals = similar(Array{Float64}, indices(cl.values))
    # using simple moving average as initial kama
    pri_kama = mean(ta[1:n].values, 1)

    @assert length(cl) == length(sc)

    for idx ∈ 1:length(cl)
        vals[idx, :] =
            pri_kama =
            pri_kama .+ sc[idx].values .* (cl[idx].values .- pri_kama)
    end

    cols =
    if length(ta.colnames) == 1
        ["kama"]
    else
        ["$c\_kama" for c in ta.colnames]
    end

    TimeArray(cl.timestamp, vals, cols)
end

function env(ta::TimeArray, n::Int; e::Float64 = 0.1)
    tstamps = ta.timestamp[n:end]

    s = sma(ta, n)

    upper = s.values .* (1 + e)
    lower = s.values .* (1 - e)

    up_cname = string.(colnames(ta), "_env_$n", "_up")
    lw_cname = string.(colnames(ta), "_env_$n", "_low")

    u = TimeArray(tstamps, upper, up_cname, ta.meta)
    l = TimeArray(tstamps, lower, lw_cname, ta.meta)

    merge(l, u, :inner)
end

# Array dispatch for use by other algorithms

function sma(a::Array, n::Int)
    vals = zeros(size(a,1) - (n-1), size(a,2))

    for i in 1:size(a,1) - (n-1)
        for j in 1:size(a,2)
            vals[i,j] = mean(a[i:i+(n-1),j])
        end
    end

    vals
end

function ema(a::Array, n::Int; wilder=false)
    k = if wilder
        1 / n
    else
        2 / (n + 1)
    end

    vals = zeros(size(a,1), size(a,2))
    # seed with first value with an sma value
    vals[n,:] = sma(a, n)[1,:]

    for i in n+1:size(a,1)
        for j in 1:size(a,2)
            vals[i,j] = a[i,j] * k + vals[i-1, j] * (1-k)
        end
    end

    vals[n:end, :]
end

function env(a::AbstractArray, n::Int; e::Float64 = 0.1)
    s = sma(a, n)

    upper = @. s * (1 + e)
    lower = @. s * (1 - e)

    [lower upper]
end

doc"""
    sma(arr, n)

Simple Moving Average

```math
SMA = \frac{\sum_i^n{P_i}}{n}
```
"""
sma

doc"""
    ema(arr, n, wilder=false)

Exponemtial Moving Average

A.k.a. exponentially weighted moving average (EWMA)

```math
    \text{Let } k \text{denote the degree of weighting decrease}
```

If parameter `wilder` is `true`, ``k = \frac{1}{n}``,
else ``k = \frac{2}{n + 1}``.

```math
    EMA_t = k \times P_t + (1 - k) \times EMA_{t - 1}
```
"""
ema

doc"""

Kaufman's Adaptive Moving Average

**Arguments**:

- `n`: period

- `fn`: the fastest EMA constant

- `sn`: the slowest EMA constant

**Formula**:

```math
    \begin{align*}
        KAMA_t & = KAMA_{t-1} + SC \times (Price - KAMA_{t-1}) \\
        SC     & =
            (ER \times (\frac{2}{fn + 1} - \frac{2}{sn + 1}) + \frac{2}{sn + 1})^2 \\
        ER     & = \frac{Change}{Volatility} \\
        Change & = | Price - Price_{t-n} | \\
        Volatility & = \sum_{i}^{n} | Price_i - Price_{i-1} |
    \end{align*}
```
"""
kama

doc"""

    env(arr, n; e = 0.1)

Moving Average Envelope

```math
  \begin{align*}
    \text{Upper Envelope} & = \text{n period SMA } \times (1 + e) \\
    \text{Lower Envelope} & = \text{n period SMA } \times (1 - e)
  \end{align*}
```

**Arguments**

- `e`: the envelope, `0.1` implies the `10%` envelope.

**Reference**

- [TradingView](https://www.tradingview.com/wiki/Envelope_(ENV))
"""
env


text:
using Documenter, Classes

makedocs(
    modules = [Classes],
	sitename = "Classes.jl",
	pages = [
		"Home" => "index.md",
	],

	format = Documenter.HTML(prettyurls = get(ENV, "JULIA_NO_LOCAL_PRETTY_URLS", nothing) === nothing)
)

deploydocs(
    repo = "github.com/rjplevin/Classes.jl.git",
)