title: How speed up NIntegrate and plotting
body: <p>I studied all themes on Mathematica.StackExchange (for example most "famous" theme is <a href="https://mathematica.stackexchange.com/questions/23854/how-to-speed-up-the-plot-of-nintegrate">https://mathematica.stackexchange.com/questions/23854/how-to-speed-up-the-plot-of-nintegrate</a>), but my example is more complicated one and none of the proposed methods don't work. My minimal example is as follow.</p>
  
  <p>I start with solving an equation:</p>
  
  <pre><code>eqn = j - Sqrt[q^2 + qp^2 - 2*q*qp*Cos[\[Theta]]] - 
           Sqrt[qp^2 + (1/2)*(16*m5^2 + ma^2 + mp^2 - 
                    Sqrt[(-(16*m5^2) - ma^2 - mp^2)^2 - 
                        4*(ma^2*mp^2 - 16*m5^2*qp^2)])] == 0; 
  With[{gensol = Solve[eqn, qp]}, 
       Block[{m = 5.5, M = 300, Nc = 3, 
           c = ScientificForm[-44687.3983417778], 
           b = ScientificForm[161593.81818181818], 
           k1 = ScientificForm[16.485010961790245], 
           k2 = ScientificForm[-13.131344420001051], ma, mp, j}, 
         {j = Sqrt[q^2 + (1/2)*(16*m5^2 + ma^2 + mp^2 + 
                       Sqrt[(-(16*m5^2) - ma^2 - mp^2)^2 - 
                           4*(ma^2*mp^2 - 16*m5^2*q^2)])], 
            ma = Sqrt[-2*(M^2 - 2*(3*k1 + k2)*
                       (Sqrt[(c + M^2 + 2*m5^2)/(2*(k1 + k2))] + 
                            m*(b/(2*(c + M^2 + 2*m5^2))))^2 - c + 
                     2*m5^2)], mp = Sqrt[(2*b*m)/
                  (Sqrt[(c + M^2 + 2*m5^2)/(2*(k1 + k2))] + 
                     m*(b/(2*(c + M^2 + 2*m5^2))))]}; 
          sols = gensol]]; 
  qpC12 = Compile[{{q, _Complex}, {m5, _Complex}, 
           {\[Theta], _Complex}}, Evaluate[qp /. sols[[2]]], 
         RuntimeOptions -&gt; "EvaluateSymbolically" -&gt; False]; 
  qp32 = Re[qpC12[q, m5, \[Theta]]]; 
  </code></pre>
  
  <p>Then I do NIntegrate:</p>
  
  <pre><code>qqq[(q_)?NumericQ, (m5_)?NumericQ] := 
       NIntegrate[(q^2*qp32^2*Sin[\[Theta]]^2)/((2*(2*Pi)^2)*
              Sqrt[-(2*q*Cos[\[Theta]]*qp32) + qp32^2 + q^2]), 
         {\[Theta], 0, Pi/2}]; 
  </code></pre>
  
  <p>And plotting:</p>
  
  <pre><code>Plot3D[qqq[q, m5], {q, 0.8, 150}, {m5, 0, 150}]
  </code></pre>
  
  <p>m
  It takes about 80 sec and it is a big problem for me because when I use a more complicated function, Mathematica solves it about 3 hours. </p>