detCbrt function
Cube root, sign-matched (detCbrt(-8) == -2): range reduction by 8,
then 7 Newton steps. Max relative error vs pow ≈ 3.2e-16.
Implementation
double detCbrt(double x) {
if (x == 0 || x.isNaN || x.isInfinite) return x;
final neg = x < 0;
var a = neg ? -x : x;
var scale = 1.0;
while (a >= 8.0) {
a *= 0.125;
scale *= 2.0;
}
while (a < 1.0) {
a *= 8.0;
scale *= 0.5;
}
var y = 1.0 + (a - 1.0) / 7.0;
for (var i = 0; i < 7; i++) {
y = y - (y * y * y - a) / (3.0 * y * y);
}
final r = y * scale;
return neg ? -r : r;
}