Fix MaximumInscribedCircle::computeMaximumIterations for small values #1133
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes an issue with
MaximumInscribedCircle::computeMaximumIterations
that sometimes returns bogus values.For example, with this example the number of iterations is needed by
LargestEmptyCircle::compute()
. The geometry calculates ncells=0.0903549, which would normally have a log value -2.40401. But the early cast tosize_t
doesn't correctly handle negative values meaning the maxIter is either 0 or 4294965296 (i.e. it's up to the compiler to decide). This fix will re-establish the maxIter to 4000 for small "ncells" values (less than 1). The bug with MSVC 32-bit is that it was zero, meaning no iteration.Also clean-up one MSVC warning.Closes #1129