Closed segasai closed 3 years ago
I think we'd discussed this a bit before re: putting a ceiling on the maximum axes length based on the length of the diagonal of the unit cube \sqrt(n), although nothing's been put in quite yet.
There is a limit now for the slice sampler (I've implemented it in one of the last patches), because there is a natural scale there. But this problem happens with the uniform (within ellipsoids) sampler. (and I still think that the pointvol assignment may need to be rethought as that's the root cause IMO, or alternatively the volume calculation of ellipsoids longer than the cube need to be updated)
Right. I think given how things are now, we can probably afford to put in two checks for this:
This should help to counteract some of the issues that can arise from pointvol, which is still not ideal but at least a solution for the case where you end up with a bound centred on a single point. (If that edge case is successfully resolved elsewhere, I think we can safely remove it from all other locations in the code.)
The #283 and #284 resolve this issue.
This
(executed in the main dynesty directory)
will currently hang the test at this
A quick check reveals that this is related to scale_to_logvol leading to linear rescaling of up to 1000 of the ellipsoid which then leads to the difficulties in finding the point in such ellipsoid.
I don't have a fix ATM. I think the pointvol logic is certainly questionable (or unclear to me). Alternatively some additional checks/logic can to be put in when ellipsoid is rescaled to many times the size of the unit cube.