(FPCore (x y z t a) :precision binary64 (+ x (* y (/ (- z t) (- z a)))))
↓
(FPCore (x y z t a)
:precision binary64
(if (<= y -2.7e+46)
(fma (- z t) (/ y (- z a)) x)
(if (<= y 7.5e-217)
(+ x (/ (* y (- z t)) (- z a)))
(+ x (* y (/ (- z t) (- z a)))))))
double code(double x, double y, double z, double t, double a) {
return x + (y * ((z - t) / (z - a)));
}
↓
double code(double x, double y, double z, double t, double a) {
double tmp;
if (y <= -2.7e+46) {
tmp = fma((z - t), (y / (z - a)), x);
} else if (y <= 7.5e-217) {
tmp = x + ((y * (z - t)) / (z - a));
} else {
tmp = x + (y * ((z - t) / (z - a)));
}
return tmp;
}
function code(x, y, z, t, a)
return Float64(x + Float64(y * Float64(Float64(z - t) / Float64(z - a))))
end
↓
function code(x, y, z, t, a)
tmp = 0.0
if (y <= -2.7e+46)
tmp = fma(Float64(z - t), Float64(y / Float64(z - a)), x);
elseif (y <= 7.5e-217)
tmp = Float64(x + Float64(Float64(y * Float64(z - t)) / Float64(z - a)));
else
tmp = Float64(x + Float64(y * Float64(Float64(z - t) / Float64(z - a))));
end
return tmp
end
herbie shell --seed 2023121
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (* y (/ (- z t) (- z a)))))