(FPCore (a b c)
:precision binary64
(/ (+ (- b) (sqrt (- (* b b) (* (* 3.0 a) c)))) (* 3.0 a)))
↓
(FPCore (a b c)
:precision binary64
(let* ((t_0 (sqrt (+ (* b b) (* c (* a -3.0))))))
(/
(if (!= (+ b t_0) 0.0)
(/ (* c (* -3.0 a)) (+ b (sqrt (+ (* b b) (* -3.0 (* c a))))))
(- t_0 b))
(* 3.0 a))))
double code(double a, double b, double c) {
return (-b + sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a);
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = (-b + sqrt(((b * b) - ((3.0d0 * a) * c)))) / (3.0d0 * a)
end function
↓
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
real(8) :: t_0
real(8) :: tmp
t_0 = sqrt(((b * b) + (c * (a * (-3.0d0)))))
if ((b + t_0) /= 0.0d0) then
tmp = (c * ((-3.0d0) * a)) / (b + sqrt(((b * b) + ((-3.0d0) * (c * a)))))
else
tmp = t_0 - b
end if
code = tmp / (3.0d0 * a)
end function
public static double code(double a, double b, double c) {
return (-b + Math.sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a);
}
↓
public static double code(double a, double b, double c) {
double t_0 = Math.sqrt(((b * b) + (c * (a * -3.0))));
double tmp;
if ((b + t_0) != 0.0) {
tmp = (c * (-3.0 * a)) / (b + Math.sqrt(((b * b) + (-3.0 * (c * a)))));
} else {
tmp = t_0 - b;
}
return tmp / (3.0 * a);
}
def code(a, b, c):
return (-b + math.sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a)
↓
def code(a, b, c):
t_0 = math.sqrt(((b * b) + (c * (a * -3.0))))
tmp = 0
if (b + t_0) != 0.0:
tmp = (c * (-3.0 * a)) / (b + math.sqrt(((b * b) + (-3.0 * (c * a)))))
else:
tmp = t_0 - b
return tmp / (3.0 * a)
function code(a, b, c)
return Float64(Float64(Float64(-b) + sqrt(Float64(Float64(b * b) - Float64(Float64(3.0 * a) * c)))) / Float64(3.0 * a))
end
↓
function code(a, b, c)
t_0 = sqrt(Float64(Float64(b * b) + Float64(c * Float64(a * -3.0))))
tmp = 0.0
if (Float64(b + t_0) != 0.0)
tmp = Float64(Float64(c * Float64(-3.0 * a)) / Float64(b + sqrt(Float64(Float64(b * b) + Float64(-3.0 * Float64(c * a))))));
else
tmp = Float64(t_0 - b);
end
return Float64(tmp / Float64(3.0 * a))
end
function tmp = code(a, b, c)
tmp = (-b + sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a);
end
↓
function tmp_2 = code(a, b, c)
t_0 = sqrt(((b * b) + (c * (a * -3.0))));
tmp = 0.0;
if ((b + t_0) ~= 0.0)
tmp = (c * (-3.0 * a)) / (b + sqrt(((b * b) + (-3.0 * (c * a)))));
else
tmp = t_0 - b;
end
tmp_2 = tmp / (3.0 * a);
end
herbie shell --seed 2023104
(FPCore (a b c)
:name "Cubic critical, wide range"
:precision binary64
:pre (and (and (and (< 4.930380657631324e-32 a) (< a 2.028240960365167e+31)) (and (< 4.930380657631324e-32 b) (< b 2.028240960365167e+31))) (and (< 4.930380657631324e-32 c) (< c 2.028240960365167e+31)))
(/ (+ (- b) (sqrt (- (* b b) (* (* 3.0 a) c)))) (* 3.0 a)))