When I tried this in a fresh Maxima 5.9.0 on Windows, I got no questions
about the sign of L. I also didn't get a closed-form solution, but I
suspect that Maxima can't do it.
What version of Maxima are you using? Have you reproduced this in a
fresh Maxima? Also, why are you loading the Eigen package? I don't
believe that has any effect at all on integration.
By the way, are you sure you want to define temp(rho,q) this way? That
defines a programming-style function, not a mathematical function. Try
temp(1/cos(theta),1) to see what I mean -- the values of the arguments
are substituted *before* the integral is performed.
-s
> load("eigen");
> assume(L>0);
> assume(q>0);
> assume(rho>0);
> temp(rho,q):=integrate(exp(%I*q*rho*cos(theta)),theta,0,2*%PI);
> temp(rho,q);
> m(d,L,q):=integrate(rho*temp(rho,q),rho,0,L/2);
> m(d,L,q);
>