(FPCore (x y z) :precision binary64 (* x (sqrt (- (* y y) (* z z)))))
↓
(FPCore (x y z)
:precision binary64
(if (<= y -7.888211671717091e-281)
(* x (- (/ (* 0.5 z) (/ y z)) y))
(* x (* (- y z) (sqrt (/ (+ y z) (- y z)))))))
double code(double x, double y, double z) {
return x * sqrt(((y * y) - (z * z)));
}
real(8) function code(x, y, z)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
code = x * sqrt(((y * y) - (z * z)))
end function
↓
real(8) function code(x, y, z)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8) :: tmp
if (y <= (-7.888211671717091d-281)) then
tmp = x * (((0.5d0 * z) / (y / z)) - y)
else
tmp = x * ((y - z) * sqrt(((y + z) / (y - z))))
end if
code = tmp
end function
public static double code(double x, double y, double z) {
return x * Math.sqrt(((y * y) - (z * z)));
}
herbie shell --seed 2023054
(FPCore (x y z)
:name "Diagrams.TwoD.Apollonian:initialConfig from diagrams-contrib-1.3.0.5, B"
:precision binary64
:herbie-target
(if (< y 2.5816096488251695e-278) (- (* x y)) (* x (* (sqrt (+ y z)) (sqrt (- y z)))))
(* x (sqrt (- (* y y) (* z z)))))