(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y x) (- z t)) (- a t))))
↓
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (/ (* (- y x) (- z t)) (- a t)))))
(if (<= t_1 -1e-260)
(+ x (* (- y x) (/ (- z t) (- a t))))
(if (<= t_1 0.0)
(+ (- (/ (* (- y x) (- z a)) t)) y)
(if (<= t_1 2e+299)
(+ (/ (* z (- y x)) (- a t)) (+ (* (- y x) (/ t (- t a))) x))
(+ (- (* (/ (- y x) t) (- z a))) y))))))
double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
↓
double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) * (z - t)) / (a - t));
double tmp;
if (t_1 <= -1e-260) {
tmp = x + ((y - x) * ((z - t) / (a - t)));
} else if (t_1 <= 0.0) {
tmp = -(((y - x) * (z - a)) / t) + y;
} else if (t_1 <= 2e+299) {
tmp = ((z * (y - x)) / (a - t)) + (((y - x) * (t / (t - a))) + x);
} else {
tmp = -(((y - x) / t) * (z - a)) + y;
}
return tmp;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
code = x + (((y - x) * (z - t)) / (a - t))
end function
↓
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: t_1
real(8) :: tmp
t_1 = x + (((y - x) * (z - t)) / (a - t))
if (t_1 <= (-1d-260)) then
tmp = x + ((y - x) * ((z - t) / (a - t)))
else if (t_1 <= 0.0d0) then
tmp = -(((y - x) * (z - a)) / t) + y
else if (t_1 <= 2d+299) then
tmp = ((z * (y - x)) / (a - t)) + (((y - x) * (t / (t - a))) + x)
else
tmp = -(((y - x) / t) * (z - a)) + y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
return x + (((y - x) * (z - t)) / (a - t));
}
↓
public static double code(double x, double y, double z, double t, double a) {
double t_1 = x + (((y - x) * (z - t)) / (a - t));
double tmp;
if (t_1 <= -1e-260) {
tmp = x + ((y - x) * ((z - t) / (a - t)));
} else if (t_1 <= 0.0) {
tmp = -(((y - x) * (z - a)) / t) + y;
} else if (t_1 <= 2e+299) {
tmp = ((z * (y - x)) / (a - t)) + (((y - x) * (t / (t - a))) + x);
} else {
tmp = -(((y - x) / t) * (z - a)) + y;
}
return tmp;
}
def code(x, y, z, t, a):
return x + (((y - x) * (z - t)) / (a - t))
↓
def code(x, y, z, t, a):
t_1 = x + (((y - x) * (z - t)) / (a - t))
tmp = 0
if t_1 <= -1e-260:
tmp = x + ((y - x) * ((z - t) / (a - t)))
elif t_1 <= 0.0:
tmp = -(((y - x) * (z - a)) / t) + y
elif t_1 <= 2e+299:
tmp = ((z * (y - x)) / (a - t)) + (((y - x) * (t / (t - a))) + x)
else:
tmp = -(((y - x) / t) * (z - a)) + y
return tmp
function code(x, y, z, t, a)
return Float64(x + Float64(Float64(Float64(y - x) * Float64(z - t)) / Float64(a - t)))
end
herbie shell --seed 2023010
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.Axis.Types:linMap from Chart-1.5.3"
:precision binary64
:herbie-target
(if (< a -1.6153062845442575e-142) (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t)))) (if (< a 3.774403170083174e-182) (- y (* (/ z t) (- y x))) (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t))))))
(+ x (/ (* (- y x) (- z t)) (- a t))))