\sqrt{\left(2 \cdot x\right) \cdot x}\sqrt{\left|x \cdot \sqrt{2}\right|} \cdot \sqrt{\left|\sqrt{\sqrt{2}} \cdot \left(x \cdot \sqrt{\sqrt{2}}\right)\right|}(FPCore (x) :precision binary64 (sqrt (* (* 2.0 x) x)))
(FPCore (x) :precision binary64 (* (sqrt (fabs (* x (sqrt 2.0)))) (sqrt (fabs (* (sqrt (sqrt 2.0)) (* x (sqrt (sqrt 2.0))))))))
double code(double x) {
return ((double) sqrt(((double) (((double) (2.0 * x)) * x))));
}
double code(double x) {
return ((double) (((double) sqrt(((double) fabs(((double) (x * ((double) sqrt(2.0)))))))) * ((double) sqrt(((double) fabs(((double) (((double) sqrt(((double) sqrt(2.0)))) * ((double) (x * ((double) sqrt(((double) sqrt(2.0))))))))))))));
}



Bits error versus x
Results
Initial program 30.8
rmApplied add-sqr-sqrt_binary6431.0
Simplified31.0
Simplified31.0
rmApplied add-sqr-sqrt_binary6431.0
Simplified31.0
Simplified0.7
rmApplied add-sqr-sqrt_binary640.7
Applied sqrt-prod_binary640.5
Applied associate-*r*_binary640.5
Final simplification0.5
herbie shell --seed 2020205
(FPCore (x)
:name "sqrt B"
:precision binary64
(sqrt (* (* 2.0 x) x)))