On Thu, 11 Nov 2021 09:40:07 GMT, Jeremy <d...@openjdk.java.net> wrote:
>> Ideally jdk could provide new math methods: >> - evalPoly(eqn[]) >> - find roots... >> Based on compensated horner scheme and Math.fma() ~ 0.5 ulp > > I attempted to explore a numerical approach to pad the bounding box here > 4b9d87d6d03e923bb2663fc8f4f77b7549df6e70 ... but I don't like the results so > far. Any suggestions? (Or if you have a better approach in mind we can > discard that entire class...) You made an amazing job ! Your bigdecimal impl looks good. I will play with your test experiment... asap. I think numerical accuracies are related to the dynamic /magnitude of values: points. The test should evaluate(max error) depending on the quick length(curve) ~ manhattan norm(curve arms), so small curves have less numerical error whereas huge curve (10^50 length) means points are wide spread and coeffs... solver...points are less accurate. I will try making sampled control points vary in log scale: 10^-6 to 10^38 (float max) so curve length will vary in huge range and determine the histogram of max(error) / length ratio. ------------- PR: https://git.openjdk.java.net/jdk/pull/6227