> > It is possible for bbox->low.x to be NaN when circle->center.x is and > circle->radius are both +Infinity. >
What is rationale behind this circle? It seems to me that any circle with radius of any Infinity should become a [-Infinity .. Infinity, -Infinity .. Infinity] box. Then you won't have NaNs, and index structure shouldn't be broken. If it happens because NaN > Infinity, then the check should be not for isnan, but for if (low>high){swap(high, low)}. It probably should be a part of box, not a part of circle, maths.