The Lambert W function

>    pmint(LambertW(x),x);

(x^2+LambertW(x)^2*x^2-LambertW(x)*x^2)/x/LambertW(x)

>    pmint(sin(LambertW(x)),x);

(1/2*LambertW(x)*tan(1/2*LambertW(x))^2*x^2+LambertW(x)*tan(1/2*LambertW(x))*x^2+tan(1/2*LambertW(x))*x^2-1/2*LambertW(x)*x^2)/x/LambertW(x)/(1+tan(1/2*LambertW(x))^2)

>    f := ((x^2 + 2) * LambertW(x^2)^2 + x^2 * (2 * LambertW(x^2) + 1))/x/(1 + LambertW(x^2))^3;

f := ((x^2+2)*LambertW(x^2)^2+x^2*(2*LambertW(x^2)+1))/x/(1+LambertW(x^2))^3

>    pmint(f,x);

(1/2*x^4*LambertW(x^2)^2+x^4*LambertW(x^2)+1/2*x^4+LambertW(x^2)^2*x^2+x^2*LambertW(x^2))/x^2/LambertW(x^2)/(1+LambertW(x^2))^2+ln(1+LambertW(x^2))

Maple cannot integrate LambertW functions whose arguments are not linear in x:

>    int(f,x);

int(((x^2+2)*LambertW(x^2)^2+x^2*(2*LambertW(x^2)+1))/x/(1+LambertW(x^2))^3,x)

Example with a parameter a

>    f := (2*LambertW(x^2)*cos(LambertW(x^2))*(a*x + LambertW(x^2)) + a*x*(1+LambertW(x^2)) + 2*LambertW(x^2)) / (1+LambertW(x^2)) / (a*x+LambertW(x^2)) / x;

f := (2*LambertW(x^2)*cos(LambertW(x^2))*(a*x+LambertW(x^2))+a*x*(1+LambertW(x^2))+2*LambertW(x^2))/(1+LambertW(x^2))/(a*x+LambertW(x^2))/x

>    pmint(f,x);

2*tan(1/2*LambertW(x^2))/(1+tan(1/2*LambertW(x^2))^2)+ln(a*x+LambertW(x^2))

Again, Maple cannot integrate such integrands

>    int(f,x);

int((2*LambertW(x^2)*cos(LambertW(x^2))*(a*x+LambertW(x^2))+a*x*(1+LambertW(x^2))+2*LambertW(x^2))/(1+LambertW(x^2))/(a*x+LambertW(x^2))/x,x)