Strange problem with double integrals    
   I need to calculate a double of integral a large expression numerically. But, I found a strange error. The code:
def doubleIntegral():
    def f2(theta):
        def f1(phi):
            return theta*phi/pi
        return numerical_integral(f1,0,2*pi)[0]
    return numerical_integral(f2,0,pi)
works. but
a = theta*phi/pi  # Suppose this is a huge expression that came out of previous calculations
def doubleIntegral():
    def f2(theta):
        def f1(phi):
            return a
        return numerical_integral(f1,0,2*pi)[0]
    return numerical_integral(f2,0,pi)
doesn't work
unable to simplify to float approximation
unable to simplify to float approximation
.
.
.
What is going on? And how can I fix this?
 
 
Try doing an internet search for using lambda functions for this. http://ask.sagemath.org/question/68/double-integral might be helpful along these lines...
my function doubleIntegral does the same thing as what that nestled numerical_integral with lambda functions (from that question) does. It has the exact same problem. Trying the internet search...