# Extract explicit region (integration bounds) from ImplicitRegion

Using an ImplicitRegion in NIntegrate by far best performance is obtained by using Method->"UnitCubeRescaling" in my case. In order to get further insight into the integration (and possibly either increase performance further or easily port it to c++), i would like to extract the transformation used by Mathematica in order to rescale the integrand to a hypercube.

Explicit example:

ImplicitRegion defined as:

localA=200; localB=1; localC=900;
reg = ImplicitRegion[{
0 <= y <= x && -1 <= z <= 1 &&
-x^2 + y^2 + localA^2 + 2*localA*y*z > 0 &&
localB <= x <= localC}, {x, y, z}];

NIntegrate[f[x, y, z], {x, y, z} ∈ reg,
Method -> {"UnitCubeRescaling", "FunctionalRangesOnly" -> True,
Method -> {"GlobalAdaptive", "SingularityHandler" -> None}}]


The Implicit region arises from Heaviside theta functions with a nonlinear arguments. I'm looking for a conceptual solution, as I also have more complicated examples, but I would be grateful for any solutions to this particular examples as well.

• You may find useful information here. – bbgodfrey Aug 12 '17 at 1:17
• Trying the given transformation there was actually my starting point in trying to resolve this analytically, unfortunately I cannot even map the implicit region to a nested integral (after which i would be done using the given transformation from your link). – Gebbo Aug 12 '17 at 1:43
• You might be interested in CylindricalDecomposition[]. – J. M. will be back soon Aug 12 '17 at 2:59
• This looks promising, thanks. It could be possible to "guess" the general case by looking several numerical configurations. – Gebbo Aug 12 '17 at 3:18