forked from mpusz/mp-units
Since this will only ever be done at compile time (as guaranteed by using `consteval`), we can afford to prioritize precision over speed. To compute an Nth root, we simply do a binary search over representable floating point numbers, looking for the number whose Nth power most closely matches the original number. Fixes #494. We have included a test case reproducing the original problem exactly. All tests use "within 4 ULPs" as the criterion, which is (I believe) equivalent to the googletest `EXPECT_DOUBLE_EQ` criterion.