(FPCore (a b c)
:precision binary64
(if (>= b 0.0)
(/ (- (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a))
(/ (* 2.0 c) (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))))))
↓
(FPCore (a b c)
:precision binary64
(let* ((t_0 (- (- b) b))
(t_1 (sqrt (+ (* b b) (* c (* a -4.0)))))
(t_2 (/ (- (- b) t_1) (* a 2.0)))
(t_3 (if (>= b 0.0) t_2 (/ (* c 2.0) (- t_1 b))))
(t_4 (/ t_0 (* a 2.0))))
(if (<= t_3 (- INFINITY))
(if (>= b 0.0) t_4 (/ b a))
(if (<= t_3 -2e-235)
t_3
(if (<= t_3 0.0)
(if (>= b 0.0) t_2 (/ (* c 2.0) t_0))
(if (<= t_3 1e+262)
t_3
(if (>= b 0.0) t_4 (/ (* c 2.0) (* b -2.0)))))))))
double code(double a, double b, double c) {
double tmp;
if (b >= 0.0) {
tmp = (-b - sqrt(((b * b) - ((4.0 * a) * c)))) / (2.0 * a);
} else {
tmp = (2.0 * c) / (-b + sqrt(((b * b) - ((4.0 * a) * c))));
}
return tmp;
}
def code(a, b, c):
tmp = 0
if b >= 0.0:
tmp = (-b - math.sqrt(((b * b) - ((4.0 * a) * c)))) / (2.0 * a)
else:
tmp = (2.0 * c) / (-b + math.sqrt(((b * b) - ((4.0 * a) * c))))
return tmp
↓
def code(a, b, c):
t_0 = -b - b
t_1 = math.sqrt(((b * b) + (c * (a * -4.0))))
t_2 = (-b - t_1) / (a * 2.0)
tmp = 0
if b >= 0.0:
tmp = t_2
else:
tmp = (c * 2.0) / (t_1 - b)
t_3 = tmp
t_4 = t_0 / (a * 2.0)
tmp_2 = 0
if t_3 <= -math.inf:
tmp_3 = 0
if b >= 0.0:
tmp_3 = t_4
else:
tmp_3 = b / a
tmp_2 = tmp_3
elif t_3 <= -2e-235:
tmp_2 = t_3
elif t_3 <= 0.0:
tmp_4 = 0
if b >= 0.0:
tmp_4 = t_2
else:
tmp_4 = (c * 2.0) / t_0
tmp_2 = tmp_4
elif t_3 <= 1e+262:
tmp_2 = t_3
elif b >= 0.0:
tmp_2 = t_4
else:
tmp_2 = (c * 2.0) / (b * -2.0)
return tmp_2
function code(a, b, c)
tmp = 0.0
if (b >= 0.0)
tmp = Float64(Float64(Float64(-b) - sqrt(Float64(Float64(b * b) - Float64(Float64(4.0 * a) * c)))) / Float64(2.0 * a));
else
tmp = Float64(Float64(2.0 * c) / Float64(Float64(-b) + sqrt(Float64(Float64(b * b) - Float64(Float64(4.0 * a) * c)))));
end
return tmp
end
if (if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) < -inf.0
if -inf.0 < (if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) < -1.9999999999999999e-235 or -0.0 < (if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) < 1e262
if -1.9999999999999999e-235 < (if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))))) < -0.0
if 1e262 < (if (>=.f64 b 0) (/.f64 (-.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c)))) (*.f64 2 a)) (/.f64 (*.f64 2 c) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 4 a) c))))))
herbie shell --seed 2023018
(FPCore (a b c)
:name "jeff quadratic root 1"
:precision binary64
(if (>= b 0.0) (/ (- (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)) (/ (* 2.0 c) (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))))))