(FPCore (x y z t a) :precision binary64 (/ (- x (* y z)) (- t (* a z))))
↓
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (/ (- x (* y z)) (- t (* a z)))))
(if (<= t_1 (- INFINITY))
(/ y a)
(if (<= t_1 -1e-256)
t_1
(if (<= t_1 0.0)
(+ (/ y a) (- (/ (- (/ x a) (/ (* y t) (pow a 2.0))) z)))
(if (<= t_1 1e+307)
(/ (+ (+ x x) (- (+ (* y z) x))) (- t (* z a)))
(/ y a)))))))
double code(double x, double y, double z, double t, double a) {
return (x - (y * z)) / (t - (a * z));
}
↓
double code(double x, double y, double z, double t, double a) {
double t_1 = (x - (y * z)) / (t - (a * z));
double tmp;
if (t_1 <= -((double) INFINITY)) {
tmp = y / a;
} else if (t_1 <= -1e-256) {
tmp = t_1;
} else if (t_1 <= 0.0) {
tmp = (y / a) + -(((x / a) - ((y * t) / pow(a, 2.0))) / z);
} else if (t_1 <= 1e+307) {
tmp = ((x + x) + -((y * z) + x)) / (t - (z * a));
} else {
tmp = y / a;
}
return tmp;
}
public static double code(double x, double y, double z, double t, double a) {
return (x - (y * z)) / (t - (a * z));
}
↓
public static double code(double x, double y, double z, double t, double a) {
double t_1 = (x - (y * z)) / (t - (a * z));
double tmp;
if (t_1 <= -Double.POSITIVE_INFINITY) {
tmp = y / a;
} else if (t_1 <= -1e-256) {
tmp = t_1;
} else if (t_1 <= 0.0) {
tmp = (y / a) + -(((x / a) - ((y * t) / Math.pow(a, 2.0))) / z);
} else if (t_1 <= 1e+307) {
tmp = ((x + x) + -((y * z) + x)) / (t - (z * a));
} else {
tmp = y / a;
}
return tmp;
}
def code(x, y, z, t, a):
return (x - (y * z)) / (t - (a * z))
↓
def code(x, y, z, t, a):
t_1 = (x - (y * z)) / (t - (a * z))
tmp = 0
if t_1 <= -math.inf:
tmp = y / a
elif t_1 <= -1e-256:
tmp = t_1
elif t_1 <= 0.0:
tmp = (y / a) + -(((x / a) - ((y * t) / math.pow(a, 2.0))) / z)
elif t_1 <= 1e+307:
tmp = ((x + x) + -((y * z) + x)) / (t - (z * a))
else:
tmp = y / a
return tmp
function code(x, y, z, t, a)
return Float64(Float64(x - Float64(y * z)) / Float64(t - Float64(a * z)))
end
herbie shell --seed 2023092
(FPCore (x y z t a)
:name "Diagrams.Solve.Tridiagonal:solveTriDiagonal from diagrams-solve-0.1, A"
:precision binary64
:herbie-target
(if (< z -32113435955957344.0) (- (/ x (- t (* a z))) (/ y (- (/ t z) a))) (if (< z 3.5139522372978296e-86) (* (- x (* y z)) (/ 1.0 (- t (* a z)))) (- (/ x (- t (* a z))) (/ y (- (/ t z) a)))))
(/ (- x (* y z)) (- t (* a z))))