I have a question about how to use NIntegrate. I need to integrate a slightly different function thousands of times, one very much like the one I have posted below. The functions are highly oscillatory so I usually use the Cuba Vegas package, but I've been having so much difficulty getting Vegas to work consistently on my institute's research cluster that I'm thinking of going back to functions inherent to Mathematica. Another similar question on here had the answer to use Method -> "LevinRule", but in this case it takes hours and doesn't seem to get anywhere. Otherwise I can maybe just up the PrecisionGoal, but it will start taking a very long time... Vegas evaluates this very fast, to a good precision, is there anything similar in Mathematica?
Could anyone point me towards a quick and accurate integration strategy for this type of function please?
a = Sqrt[29.7/53.77];
NIntegrate[(((0.00025203302433875766 Exp[-(((Tan[x1]^2 + Tan[y1]^2)/
5.8564 + (Tan[z1]^2)/1.9321)^(1/2))/
a]) (Exp[-((((Tan[x1])^2 + (Tan[y1] - 0.4)^2)/
5.8564 + ((Tan[z1])^2)/1.9321)^(1/2))/
a]) (Exp[-((((Tan[x2] - 0.1)^2 + (Tan[y2] - 0.1)^2)/
5.8564 + ((Tan[z2] - 0.1)^2)/1.9321)^(1/2))/
a]) (Exp[-((((Tan[x2] - 0.1)^2 + (Tan[y2] - 0.1 - 0.4)^2)/
5.8564 + ((Tan[z2] - 0.1)^2)/1.9321)^(1/2))/a]))/
Sqrt[(Tan[x1] - Tan[x2] + 0.1)^2 + (Tan[y1] - Tan[y2] +
0.1)^2 + (Tan[z1] - Tan[z2] + 0.1)^2])*
Sec[x1]^2 Sec[y1]^2 Sec[z1]^2 Sec[x2]^2 Sec[y2]^2 Sec[
z2]^2, {x1, -Pi/2, Pi/2}, {y1, -Pi/2, Pi/2}, {z1, -Pi/2,
Pi/2}, {x2, -Pi/2, Pi/2}, {y2, -Pi/2, Pi/2}, {z2, -Pi/2, Pi/2}]
Here is an image of a couple of these integrations for similar functions (the x axis is just varying a constant so that we can see a couple of different results of the integration): Red - Vegas, Blue - MonteCarlo, Green - AdaptiveMonteCarlo, Black - MonteCarloRule
How do I know which of these is correct? AdaptiveMonteCarlo and MonteCarloRule both seem to be giving similar results which are lower than the similar results given by Vegas and MonteCarlo.
Thank you in advance.
Kind regards,
Ella

Method -> "MonteCarloand friends. What is the precision you need for these integrals? – Henrik Schumacher Jun 17 '18 at 14:35NIntegratewill return a warning containing an error estimate. That error estimator seems to decay a bit faster with"AdaptiveMonteCarlo"withMaxPointsthan the other stochastic methods:NIntegrate[f, {x1, -Pi/2, Pi/2}, {y1, -Pi/2, Pi/2}, {z1, -Pi/2, Pi/2}, {x2, -Pi/2, Pi/2}, {y2, -Pi/2, Pi/2}, {z2, -Pi/2, Pi/2}, Method -> {"AdaptiveMonteCarlo"}, MaxPoints -> 1000000, PrecisionGoal -> 4 ]. (fis your integrand`.) – Henrik Schumacher Jun 17 '18 at 17:21MaxPoints -> 1000000, the three leading digits seem to be correct (relative error is 0.43 permille). But that needs 25 seconds for evaluation.MaxPoints -> 100000leads to an relative error of 7 permille within 0.25 seconds. So, as always, you have to trade speed versus accuracy. – Henrik Schumacher Jun 17 '18 at 17:26