(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 (/ z (- (* a z) t)))
(if (<= t_1 -1e-314)
t_1
(if (<= t_1 0.0)
(* (/ (- (* y z) x) a) (/ 1.0 z))
(if (<= t_1 1e+287) t_1 (/ 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 * (z / ((a * z) - t));
} else if (t_1 <= -1e-314) {
tmp = t_1;
} else if (t_1 <= 0.0) {
tmp = (((y * z) - x) / a) * (1.0 / z);
} else if (t_1 <= 1e+287) {
tmp = t_1;
} 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 * (z / ((a * z) - t));
} else if (t_1 <= -1e-314) {
tmp = t_1;
} else if (t_1 <= 0.0) {
tmp = (((y * z) - x) / a) * (1.0 / z);
} else if (t_1 <= 1e+287) {
tmp = t_1;
} 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 * (z / ((a * z) - t))
elif t_1 <= -1e-314:
tmp = t_1
elif t_1 <= 0.0:
tmp = (((y * z) - x) / a) * (1.0 / z)
elif t_1 <= 1e+287:
tmp = t_1
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
\[ \color{blue}{y \cdot \frac{z}{z \cdot a - t}}
\]
rational.json-simplify-2 [=>]0.6
\[ y \cdot \frac{z}{\color{blue}{a \cdot z} - t}
\]
if -inf.0 < (/.f64 (-.f64 x (*.f64 y z)) (-.f64 t (*.f64 a z))) < -9.9999999996e-315 or -0.0 < (/.f64 (-.f64 x (*.f64 y z)) (-.f64 t (*.f64 a z))) < 1.0000000000000001e287
Initial program 0.2
\[\frac{x - y \cdot z}{t - a \cdot z}
\]
if -9.9999999996e-315 < (/.f64 (-.f64 x (*.f64 y z)) (-.f64 t (*.f64 a z))) < -0.0
Initial program 25.0
\[\frac{x - y \cdot z}{t - a \cdot z}
\]
Simplified25.0
\[\leadsto \color{blue}{\frac{x - y \cdot z}{t - z \cdot a}}
\]
herbie shell --seed 2023068
(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))))