
(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y z) (- t x)) (- a z))))
double code(double x, double y, double z, double t, double a) {
return x + (((y - z) * (t - x)) / (a - z));
}
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 - z) * (t - x)) / (a - z))
end function
public static double code(double x, double y, double z, double t, double a) {
return x + (((y - z) * (t - x)) / (a - z));
}
def code(x, y, z, t, a): return x + (((y - z) * (t - x)) / (a - z))
function code(x, y, z, t, a) return Float64(x + Float64(Float64(Float64(y - z) * Float64(t - x)) / Float64(a - z))) end
function tmp = code(x, y, z, t, a) tmp = x + (((y - z) * (t - x)) / (a - z)); end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(N[(y - z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 15 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y z) (- t x)) (- a z))))
double code(double x, double y, double z, double t, double a) {
return x + (((y - z) * (t - x)) / (a - z));
}
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 - z) * (t - x)) / (a - z))
end function
public static double code(double x, double y, double z, double t, double a) {
return x + (((y - z) * (t - x)) / (a - z));
}
def code(x, y, z, t, a): return x + (((y - z) * (t - x)) / (a - z))
function code(x, y, z, t, a) return Float64(x + Float64(Float64(Float64(y - z) * Float64(t - x)) / Float64(a - z))) end
function tmp = code(x, y, z, t, a) tmp = x + (((y - z) * (t - x)) / (a - z)); end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(N[(y - z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}
\end{array}
(FPCore (x y z t a) :precision binary64 (if (or (<= z -8.3e+77) (not (<= z 2.2e+126))) (fma (/ (- (- t x)) z) (- y a) t) (fma (/ (- t x) (- a z)) (- y z) x)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -8.3e+77) || !(z <= 2.2e+126)) {
tmp = fma((-(t - x) / z), (y - a), t);
} else {
tmp = fma(((t - x) / (a - z)), (y - z), x);
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -8.3e+77) || !(z <= 2.2e+126)) tmp = fma(Float64(Float64(-Float64(t - x)) / z), Float64(y - a), t); else tmp = fma(Float64(Float64(t - x) / Float64(a - z)), Float64(y - z), x); end return tmp end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -8.3e+77], N[Not[LessEqual[z, 2.2e+126]], $MachinePrecision]], N[(N[((-N[(t - x), $MachinePrecision]) / z), $MachinePrecision] * N[(y - a), $MachinePrecision] + t), $MachinePrecision], N[(N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision] * N[(y - z), $MachinePrecision] + x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -8.3 \cdot 10^{+77} \lor \neg \left(z \leq 2.2 \cdot 10^{+126}\right):\\
\;\;\;\;\mathsf{fma}\left(\frac{-\left(t - x\right)}{z}, y - a, t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{t - x}{a - z}, y - z, x\right)\\
\end{array}
\end{array}
if z < -8.2999999999999998e77 or 2.19999999999999999e126 < z Initial program 30.5%
Taylor expanded in z around inf
associate--l+N/A
distribute-lft-out--N/A
div-subN/A
+-commutativeN/A
mul-1-negN/A
div-subN/A
associate-/l*N/A
associate-/l*N/A
distribute-rgt-out--N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites86.8%
if -8.2999999999999998e77 < z < 2.19999999999999999e126Initial program 81.8%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6489.9
Applied rewrites89.9%
Final simplification88.8%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (fma (/ (- (- t x)) z) (- y a) t)))
(if (<= z -4.6e+40)
t_1
(if (<= z -4.2e-225)
(+ x (/ (* (- y z) t) (- a z)))
(if (<= z 9.8e+33) (fma (- y z) (/ (- t x) a) x) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = fma((-(t - x) / z), (y - a), t);
double tmp;
if (z <= -4.6e+40) {
tmp = t_1;
} else if (z <= -4.2e-225) {
tmp = x + (((y - z) * t) / (a - z));
} else if (z <= 9.8e+33) {
tmp = fma((y - z), ((t - x) / a), x);
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a) t_1 = fma(Float64(Float64(-Float64(t - x)) / z), Float64(y - a), t) tmp = 0.0 if (z <= -4.6e+40) tmp = t_1; elseif (z <= -4.2e-225) tmp = Float64(x + Float64(Float64(Float64(y - z) * t) / Float64(a - z))); elseif (z <= 9.8e+33) tmp = fma(Float64(y - z), Float64(Float64(t - x) / a), x); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(N[((-N[(t - x), $MachinePrecision]) / z), $MachinePrecision] * N[(y - a), $MachinePrecision] + t), $MachinePrecision]}, If[LessEqual[z, -4.6e+40], t$95$1, If[LessEqual[z, -4.2e-225], N[(x + N[(N[(N[(y - z), $MachinePrecision] * t), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 9.8e+33], N[(N[(y - z), $MachinePrecision] * N[(N[(t - x), $MachinePrecision] / a), $MachinePrecision] + x), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(\frac{-\left(t - x\right)}{z}, y - a, t\right)\\
\mathbf{if}\;z \leq -4.6 \cdot 10^{+40}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq -4.2 \cdot 10^{-225}:\\
\;\;\;\;x + \frac{\left(y - z\right) \cdot t}{a - z}\\
\mathbf{elif}\;z \leq 9.8 \cdot 10^{+33}:\\
\;\;\;\;\mathsf{fma}\left(y - z, \frac{t - x}{a}, x\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -4.59999999999999987e40 or 9.80000000000000027e33 < z Initial program 39.6%
Taylor expanded in z around inf
associate--l+N/A
distribute-lft-out--N/A
div-subN/A
+-commutativeN/A
mul-1-negN/A
div-subN/A
associate-/l*N/A
associate-/l*N/A
distribute-rgt-out--N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites82.5%
if -4.59999999999999987e40 < z < -4.20000000000000001e-225Initial program 86.9%
Taylor expanded in x around 0
*-commutativeN/A
lower-*.f64N/A
lower--.f6477.1
Applied rewrites77.1%
if -4.20000000000000001e-225 < z < 9.80000000000000027e33Initial program 84.4%
Taylor expanded in a around inf
+-commutativeN/A
*-commutativeN/A
associate-/l*N/A
lower-fma.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6488.1
Applied rewrites88.1%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (fma (/ (- t x) z) a t)))
(if (<= z -5.1e+151)
t_1
(if (<= z -1.65e+33)
(* (- y z) (/ t (- a z)))
(if (<= z 2.9e+76) (fma (- t x) (/ y a) x) t_1)))))
double code(double x, double y, double z, double t, double a) {
double t_1 = fma(((t - x) / z), a, t);
double tmp;
if (z <= -5.1e+151) {
tmp = t_1;
} else if (z <= -1.65e+33) {
tmp = (y - z) * (t / (a - z));
} else if (z <= 2.9e+76) {
tmp = fma((t - x), (y / a), x);
} else {
tmp = t_1;
}
return tmp;
}
function code(x, y, z, t, a) t_1 = fma(Float64(Float64(t - x) / z), a, t) tmp = 0.0 if (z <= -5.1e+151) tmp = t_1; elseif (z <= -1.65e+33) tmp = Float64(Float64(y - z) * Float64(t / Float64(a - z))); elseif (z <= 2.9e+76) tmp = fma(Float64(t - x), Float64(y / a), x); else tmp = t_1; end return tmp end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision] * a + t), $MachinePrecision]}, If[LessEqual[z, -5.1e+151], t$95$1, If[LessEqual[z, -1.65e+33], N[(N[(y - z), $MachinePrecision] * N[(t / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.9e+76], N[(N[(t - x), $MachinePrecision] * N[(y / a), $MachinePrecision] + x), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(\frac{t - x}{z}, a, t\right)\\
\mathbf{if}\;z \leq -5.1 \cdot 10^{+151}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z \leq -1.65 \cdot 10^{+33}:\\
\;\;\;\;\left(y - z\right) \cdot \frac{t}{a - z}\\
\mathbf{elif}\;z \leq 2.9 \cdot 10^{+76}:\\
\;\;\;\;\mathsf{fma}\left(t - x, \frac{y}{a}, x\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if z < -5.09999999999999996e151 or 2.9000000000000002e76 < z Initial program 29.9%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6450.7
Applied rewrites50.7%
Taylor expanded in t around inf
*-commutativeN/A
Applied rewrites73.3%
Taylor expanded in z around inf
associate--l+N/A
associate-*r/N/A
associate-*r/N/A
associate-*r*N/A
mul-1-negN/A
div-subN/A
mul-1-negN/A
associate-*r*N/A
distribute-lft-out--N/A
associate-*r/N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
Applied rewrites74.2%
Taylor expanded in y around 0
Applied rewrites65.5%
if -5.09999999999999996e151 < z < -1.64999999999999988e33Initial program 62.5%
Taylor expanded in x around 0
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6462.9
Applied rewrites62.9%
if -1.64999999999999988e33 < z < 2.9000000000000002e76Initial program 82.8%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6490.6
Applied rewrites90.6%
Taylor expanded in z around 0
+-commutativeN/A
*-commutativeN/A
associate-/l*N/A
lower-fma.f64N/A
lower--.f64N/A
lower-/.f6474.9
Applied rewrites74.9%
Final simplification70.6%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -3.2e+27) (not (<= z 9.8e+33))) (fma (/ (- (- t x)) z) (- y a) t) (fma (- y z) (/ (- t x) a) x)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -3.2e+27) || !(z <= 9.8e+33)) {
tmp = fma((-(t - x) / z), (y - a), t);
} else {
tmp = fma((y - z), ((t - x) / a), x);
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -3.2e+27) || !(z <= 9.8e+33)) tmp = fma(Float64(Float64(-Float64(t - x)) / z), Float64(y - a), t); else tmp = fma(Float64(y - z), Float64(Float64(t - x) / a), x); end return tmp end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -3.2e+27], N[Not[LessEqual[z, 9.8e+33]], $MachinePrecision]], N[(N[((-N[(t - x), $MachinePrecision]) / z), $MachinePrecision] * N[(y - a), $MachinePrecision] + t), $MachinePrecision], N[(N[(y - z), $MachinePrecision] * N[(N[(t - x), $MachinePrecision] / a), $MachinePrecision] + x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -3.2 \cdot 10^{+27} \lor \neg \left(z \leq 9.8 \cdot 10^{+33}\right):\\
\;\;\;\;\mathsf{fma}\left(\frac{-\left(t - x\right)}{z}, y - a, t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y - z, \frac{t - x}{a}, x\right)\\
\end{array}
\end{array}
if z < -3.20000000000000015e27 or 9.80000000000000027e33 < z Initial program 40.6%
Taylor expanded in z around inf
associate--l+N/A
distribute-lft-out--N/A
div-subN/A
+-commutativeN/A
mul-1-negN/A
div-subN/A
associate-/l*N/A
associate-/l*N/A
distribute-rgt-out--N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites82.0%
if -3.20000000000000015e27 < z < 9.80000000000000027e33Initial program 85.1%
Taylor expanded in a around inf
+-commutativeN/A
*-commutativeN/A
associate-/l*N/A
lower-fma.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6480.6
Applied rewrites80.6%
Final simplification81.3%
(FPCore (x y z t a)
:precision binary64
(if (<= z -9.5e+51)
t
(if (<= z 6.2e-297)
(fma y (/ t a) x)
(if (<= z 3.4e+76) (fma (- x) (/ y a) x) t))))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -9.5e+51) {
tmp = t;
} else if (z <= 6.2e-297) {
tmp = fma(y, (t / a), x);
} else if (z <= 3.4e+76) {
tmp = fma(-x, (y / a), x);
} else {
tmp = t;
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if (z <= -9.5e+51) tmp = t; elseif (z <= 6.2e-297) tmp = fma(y, Float64(t / a), x); elseif (z <= 3.4e+76) tmp = fma(Float64(-x), Float64(y / a), x); else tmp = t; end return tmp end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -9.5e+51], t, If[LessEqual[z, 6.2e-297], N[(y * N[(t / a), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[z, 3.4e+76], N[((-x) * N[(y / a), $MachinePrecision] + x), $MachinePrecision], t]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -9.5 \cdot 10^{+51}:\\
\;\;\;\;t\\
\mathbf{elif}\;z \leq 6.2 \cdot 10^{-297}:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{t}{a}, x\right)\\
\mathbf{elif}\;z \leq 3.4 \cdot 10^{+76}:\\
\;\;\;\;\mathsf{fma}\left(-x, \frac{y}{a}, x\right)\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}
\end{array}
if z < -9.4999999999999999e51 or 3.3999999999999997e76 < z Initial program 35.3%
Taylor expanded in y around 0
+-commutativeN/A
mul-1-negN/A
*-commutativeN/A
associate-/l*N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6451.2
Applied rewrites51.2%
Taylor expanded in z around inf
Applied rewrites52.6%
Applied rewrites52.6%
if -9.4999999999999999e51 < z < 6.1999999999999993e-297Initial program 87.6%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6492.8
Applied rewrites92.8%
Taylor expanded in t around inf
*-commutativeN/A
Applied rewrites84.8%
Taylor expanded in z around 0
+-commutativeN/A
associate-/l*N/A
lower-fma.f64N/A
lower-/.f64N/A
lower--.f6469.9
Applied rewrites69.9%
Taylor expanded in x around 0
Applied rewrites57.4%
if 6.1999999999999993e-297 < z < 3.3999999999999997e76Initial program 78.1%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6488.6
Applied rewrites88.6%
Taylor expanded in t around inf
*-commutativeN/A
Applied rewrites80.4%
Taylor expanded in z around 0
+-commutativeN/A
associate-/l*N/A
lower-fma.f64N/A
lower-/.f64N/A
lower--.f6477.9
Applied rewrites77.9%
Taylor expanded in t around 0
Applied rewrites62.6%
Final simplification56.9%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -35000000.0) (not (<= z 1e+34))) (- t (* (/ (- t x) z) y)) (fma (- y z) (/ (- t x) a) x)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -35000000.0) || !(z <= 1e+34)) {
tmp = t - (((t - x) / z) * y);
} else {
tmp = fma((y - z), ((t - x) / a), x);
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -35000000.0) || !(z <= 1e+34)) tmp = Float64(t - Float64(Float64(Float64(t - x) / z) * y)); else tmp = fma(Float64(y - z), Float64(Float64(t - x) / a), x); end return tmp end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -35000000.0], N[Not[LessEqual[z, 1e+34]], $MachinePrecision]], N[(t - N[(N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision] * y), $MachinePrecision]), $MachinePrecision], N[(N[(y - z), $MachinePrecision] * N[(N[(t - x), $MachinePrecision] / a), $MachinePrecision] + x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -35000000 \lor \neg \left(z \leq 10^{+34}\right):\\
\;\;\;\;t - \frac{t - x}{z} \cdot y\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y - z, \frac{t - x}{a}, x\right)\\
\end{array}
\end{array}
if z < -3.5e7 or 9.99999999999999946e33 < z Initial program 41.5%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6461.2
Applied rewrites61.2%
Taylor expanded in t around inf
*-commutativeN/A
Applied rewrites77.8%
Taylor expanded in z around inf
associate--l+N/A
associate-*r/N/A
associate-*r/N/A
associate-*r*N/A
mul-1-negN/A
div-subN/A
mul-1-negN/A
associate-*r*N/A
distribute-lft-out--N/A
associate-*r/N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
Applied rewrites68.7%
Taylor expanded in a around 0
Applied rewrites74.2%
if -3.5e7 < z < 9.99999999999999946e33Initial program 84.9%
Taylor expanded in a around inf
+-commutativeN/A
*-commutativeN/A
associate-/l*N/A
lower-fma.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6481.1
Applied rewrites81.1%
Final simplification77.7%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -1.7e-10) (not (<= z 1e+34))) (- t (* (/ (- t x) z) y)) (fma (- t x) (/ y a) x)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -1.7e-10) || !(z <= 1e+34)) {
tmp = t - (((t - x) / z) * y);
} else {
tmp = fma((t - x), (y / a), x);
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -1.7e-10) || !(z <= 1e+34)) tmp = Float64(t - Float64(Float64(Float64(t - x) / z) * y)); else tmp = fma(Float64(t - x), Float64(y / a), x); end return tmp end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -1.7e-10], N[Not[LessEqual[z, 1e+34]], $MachinePrecision]], N[(t - N[(N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision] * y), $MachinePrecision]), $MachinePrecision], N[(N[(t - x), $MachinePrecision] * N[(y / a), $MachinePrecision] + x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -1.7 \cdot 10^{-10} \lor \neg \left(z \leq 10^{+34}\right):\\
\;\;\;\;t - \frac{t - x}{z} \cdot y\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(t - x, \frac{y}{a}, x\right)\\
\end{array}
\end{array}
if z < -1.70000000000000007e-10 or 9.99999999999999946e33 < z Initial program 42.3%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6461.9
Applied rewrites61.9%
Taylor expanded in t around inf
*-commutativeN/A
Applied rewrites78.0%
Taylor expanded in z around inf
associate--l+N/A
associate-*r/N/A
associate-*r/N/A
associate-*r*N/A
mul-1-negN/A
div-subN/A
mul-1-negN/A
associate-*r*N/A
distribute-lft-out--N/A
associate-*r/N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
Applied rewrites67.6%
Taylor expanded in a around 0
Applied rewrites73.0%
if -1.70000000000000007e-10 < z < 9.99999999999999946e33Initial program 85.8%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6491.4
Applied rewrites91.4%
Taylor expanded in z around 0
+-commutativeN/A
*-commutativeN/A
associate-/l*N/A
lower-fma.f64N/A
lower--.f64N/A
lower-/.f6479.7
Applied rewrites79.7%
Final simplification76.3%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -9.5e+51) (not (<= z 2.9e+76))) (fma (/ (- t x) z) a t) (fma (- t x) (/ y a) x)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -9.5e+51) || !(z <= 2.9e+76)) {
tmp = fma(((t - x) / z), a, t);
} else {
tmp = fma((t - x), (y / a), x);
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -9.5e+51) || !(z <= 2.9e+76)) tmp = fma(Float64(Float64(t - x) / z), a, t); else tmp = fma(Float64(t - x), Float64(y / a), x); end return tmp end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -9.5e+51], N[Not[LessEqual[z, 2.9e+76]], $MachinePrecision]], N[(N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision] * a + t), $MachinePrecision], N[(N[(t - x), $MachinePrecision] * N[(y / a), $MachinePrecision] + x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -9.5 \cdot 10^{+51} \lor \neg \left(z \leq 2.9 \cdot 10^{+76}\right):\\
\;\;\;\;\mathsf{fma}\left(\frac{t - x}{z}, a, t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(t - x, \frac{y}{a}, x\right)\\
\end{array}
\end{array}
if z < -9.4999999999999999e51 or 2.9000000000000002e76 < z Initial program 35.3%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6455.4
Applied rewrites55.4%
Taylor expanded in t around inf
*-commutativeN/A
Applied rewrites76.2%
Taylor expanded in z around inf
associate--l+N/A
associate-*r/N/A
associate-*r/N/A
associate-*r*N/A
mul-1-negN/A
div-subN/A
mul-1-negN/A
associate-*r*N/A
distribute-lft-out--N/A
associate-*r/N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
Applied rewrites70.6%
Taylor expanded in y around 0
Applied rewrites60.3%
if -9.4999999999999999e51 < z < 2.9000000000000002e76Initial program 83.2%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6490.9
Applied rewrites90.9%
Taylor expanded in z around 0
+-commutativeN/A
*-commutativeN/A
associate-/l*N/A
lower-fma.f64N/A
lower--.f64N/A
lower-/.f6474.2
Applied rewrites74.2%
Final simplification68.5%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -9.5e+51) (not (<= z 2.9e+76))) (fma (/ (- t x) z) a t) (fma (/ (- t x) a) y x)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -9.5e+51) || !(z <= 2.9e+76)) {
tmp = fma(((t - x) / z), a, t);
} else {
tmp = fma(((t - x) / a), y, x);
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -9.5e+51) || !(z <= 2.9e+76)) tmp = fma(Float64(Float64(t - x) / z), a, t); else tmp = fma(Float64(Float64(t - x) / a), y, x); end return tmp end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -9.5e+51], N[Not[LessEqual[z, 2.9e+76]], $MachinePrecision]], N[(N[(N[(t - x), $MachinePrecision] / z), $MachinePrecision] * a + t), $MachinePrecision], N[(N[(N[(t - x), $MachinePrecision] / a), $MachinePrecision] * y + x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -9.5 \cdot 10^{+51} \lor \neg \left(z \leq 2.9 \cdot 10^{+76}\right):\\
\;\;\;\;\mathsf{fma}\left(\frac{t - x}{z}, a, t\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{t - x}{a}, y, x\right)\\
\end{array}
\end{array}
if z < -9.4999999999999999e51 or 2.9000000000000002e76 < z Initial program 35.3%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6455.4
Applied rewrites55.4%
Taylor expanded in t around inf
*-commutativeN/A
Applied rewrites76.2%
Taylor expanded in z around inf
associate--l+N/A
associate-*r/N/A
associate-*r/N/A
associate-*r*N/A
mul-1-negN/A
div-subN/A
mul-1-negN/A
associate-*r*N/A
distribute-lft-out--N/A
associate-*r/N/A
+-commutativeN/A
*-commutativeN/A
lower-fma.f64N/A
Applied rewrites70.6%
Taylor expanded in y around 0
Applied rewrites60.3%
if -9.4999999999999999e51 < z < 2.9000000000000002e76Initial program 83.2%
Taylor expanded in z around 0
+-commutativeN/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f64N/A
lower--.f6473.6
Applied rewrites73.6%
Final simplification68.1%
(FPCore (x y z t a) :precision binary64 (if (<= z -9.5e+51) t (if (<= z 3.8e+76) (fma (/ (- t x) a) y x) t)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if (z <= -9.5e+51) {
tmp = t;
} else if (z <= 3.8e+76) {
tmp = fma(((t - x) / a), y, x);
} else {
tmp = t;
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if (z <= -9.5e+51) tmp = t; elseif (z <= 3.8e+76) tmp = fma(Float64(Float64(t - x) / a), y, x); else tmp = t; end return tmp end
code[x_, y_, z_, t_, a_] := If[LessEqual[z, -9.5e+51], t, If[LessEqual[z, 3.8e+76], N[(N[(N[(t - x), $MachinePrecision] / a), $MachinePrecision] * y + x), $MachinePrecision], t]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -9.5 \cdot 10^{+51}:\\
\;\;\;\;t\\
\mathbf{elif}\;z \leq 3.8 \cdot 10^{+76}:\\
\;\;\;\;\mathsf{fma}\left(\frac{t - x}{a}, y, x\right)\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}
\end{array}
if z < -9.4999999999999999e51 or 3.80000000000000024e76 < z Initial program 35.3%
Taylor expanded in y around 0
+-commutativeN/A
mul-1-negN/A
*-commutativeN/A
associate-/l*N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6451.2
Applied rewrites51.2%
Taylor expanded in z around inf
Applied rewrites52.6%
Applied rewrites52.6%
if -9.4999999999999999e51 < z < 3.80000000000000024e76Initial program 83.2%
Taylor expanded in z around 0
+-commutativeN/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f64N/A
lower--.f6473.6
Applied rewrites73.6%
Final simplification65.0%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -9.5e+51) (not (<= z 3.7e+76))) t (fma y (/ t a) x)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -9.5e+51) || !(z <= 3.7e+76)) {
tmp = t;
} else {
tmp = fma(y, (t / a), x);
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -9.5e+51) || !(z <= 3.7e+76)) tmp = t; else tmp = fma(y, Float64(t / a), x); end return tmp end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -9.5e+51], N[Not[LessEqual[z, 3.7e+76]], $MachinePrecision]], t, N[(y * N[(t / a), $MachinePrecision] + x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -9.5 \cdot 10^{+51} \lor \neg \left(z \leq 3.7 \cdot 10^{+76}\right):\\
\;\;\;\;t\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{t}{a}, x\right)\\
\end{array}
\end{array}
if z < -9.4999999999999999e51 or 3.6999999999999999e76 < z Initial program 35.3%
Taylor expanded in y around 0
+-commutativeN/A
mul-1-negN/A
*-commutativeN/A
associate-/l*N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6451.2
Applied rewrites51.2%
Taylor expanded in z around inf
Applied rewrites52.6%
Applied rewrites52.6%
if -9.4999999999999999e51 < z < 3.6999999999999999e76Initial program 83.2%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6490.9
Applied rewrites90.9%
Taylor expanded in t around inf
*-commutativeN/A
Applied rewrites82.7%
Taylor expanded in z around 0
+-commutativeN/A
associate-/l*N/A
lower-fma.f64N/A
lower-/.f64N/A
lower--.f6473.6
Applied rewrites73.6%
Taylor expanded in x around 0
Applied rewrites56.9%
Final simplification55.1%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -9.2e+51) (not (<= z 8.6e+74))) t (fma x (/ z a) x)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -9.2e+51) || !(z <= 8.6e+74)) {
tmp = t;
} else {
tmp = fma(x, (z / a), x);
}
return tmp;
}
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -9.2e+51) || !(z <= 8.6e+74)) tmp = t; else tmp = fma(x, Float64(z / a), x); end return tmp end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -9.2e+51], N[Not[LessEqual[z, 8.6e+74]], $MachinePrecision]], t, N[(x * N[(z / a), $MachinePrecision] + x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -9.2 \cdot 10^{+51} \lor \neg \left(z \leq 8.6 \cdot 10^{+74}\right):\\
\;\;\;\;t\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(x, \frac{z}{a}, x\right)\\
\end{array}
\end{array}
if z < -9.2000000000000002e51 or 8.60000000000000001e74 < z Initial program 35.3%
Taylor expanded in y around 0
+-commutativeN/A
mul-1-negN/A
*-commutativeN/A
associate-/l*N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6451.2
Applied rewrites51.2%
Taylor expanded in z around inf
Applied rewrites52.6%
Applied rewrites52.6%
if -9.2000000000000002e51 < z < 8.60000000000000001e74Initial program 83.2%
Taylor expanded in y around 0
+-commutativeN/A
mul-1-negN/A
*-commutativeN/A
associate-/l*N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6442.7
Applied rewrites42.7%
Taylor expanded in x around inf
Applied rewrites35.2%
Taylor expanded in z around 0
Applied rewrites36.8%
Final simplification43.2%
(FPCore (x y z t a) :precision binary64 (if (or (<= z -4.1e+33) (not (<= z 1.2e+35))) t (* (/ x t) t)))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -4.1e+33) || !(z <= 1.2e+35)) {
tmp = t;
} else {
tmp = (x / t) * t;
}
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
real(8) :: tmp
if ((z <= (-4.1d+33)) .or. (.not. (z <= 1.2d+35))) then
tmp = t
else
tmp = (x / t) * t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if ((z <= -4.1e+33) || !(z <= 1.2e+35)) {
tmp = t;
} else {
tmp = (x / t) * t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (z <= -4.1e+33) or not (z <= 1.2e+35): tmp = t else: tmp = (x / t) * t return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((z <= -4.1e+33) || !(z <= 1.2e+35)) tmp = t; else tmp = Float64(Float64(x / t) * t); end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((z <= -4.1e+33) || ~((z <= 1.2e+35))) tmp = t; else tmp = (x / t) * t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[z, -4.1e+33], N[Not[LessEqual[z, 1.2e+35]], $MachinePrecision]], t, N[(N[(x / t), $MachinePrecision] * t), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;z \leq -4.1 \cdot 10^{+33} \lor \neg \left(z \leq 1.2 \cdot 10^{+35}\right):\\
\;\;\;\;t\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{t} \cdot t\\
\end{array}
\end{array}
if z < -4.09999999999999995e33 or 1.20000000000000007e35 < z Initial program 40.6%
Taylor expanded in y around 0
+-commutativeN/A
mul-1-negN/A
*-commutativeN/A
associate-/l*N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6450.0
Applied rewrites50.0%
Taylor expanded in z around inf
Applied rewrites48.1%
Applied rewrites48.1%
if -4.09999999999999995e33 < z < 1.20000000000000007e35Initial program 85.1%
lift-+.f64N/A
+-commutativeN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f6491.1
Applied rewrites91.1%
Taylor expanded in t around inf
*-commutativeN/A
Applied rewrites82.5%
Taylor expanded in a around inf
Applied rewrites37.7%
Final simplification42.7%
(FPCore (x y z t a) :precision binary64 (if (or (<= a -3.5e-7) (not (<= a 9.5e+48))) (* 1.0 x) t))
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((a <= -3.5e-7) || !(a <= 9.5e+48)) {
tmp = 1.0 * x;
} else {
tmp = t;
}
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
real(8) :: tmp
if ((a <= (-3.5d-7)) .or. (.not. (a <= 9.5d+48))) then
tmp = 1.0d0 * x
else
tmp = t
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double tmp;
if ((a <= -3.5e-7) || !(a <= 9.5e+48)) {
tmp = 1.0 * x;
} else {
tmp = t;
}
return tmp;
}
def code(x, y, z, t, a): tmp = 0 if (a <= -3.5e-7) or not (a <= 9.5e+48): tmp = 1.0 * x else: tmp = t return tmp
function code(x, y, z, t, a) tmp = 0.0 if ((a <= -3.5e-7) || !(a <= 9.5e+48)) tmp = Float64(1.0 * x); else tmp = t; end return tmp end
function tmp_2 = code(x, y, z, t, a) tmp = 0.0; if ((a <= -3.5e-7) || ~((a <= 9.5e+48))) tmp = 1.0 * x; else tmp = t; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := If[Or[LessEqual[a, -3.5e-7], N[Not[LessEqual[a, 9.5e+48]], $MachinePrecision]], N[(1.0 * x), $MachinePrecision], t]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -3.5 \cdot 10^{-7} \lor \neg \left(a \leq 9.5 \cdot 10^{+48}\right):\\
\;\;\;\;1 \cdot x\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}
\end{array}
if a < -3.49999999999999984e-7 or 9.4999999999999997e48 < a Initial program 70.3%
Taylor expanded in y around 0
+-commutativeN/A
mul-1-negN/A
*-commutativeN/A
associate-/l*N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6462.8
Applied rewrites62.8%
Taylor expanded in x around inf
Applied rewrites49.0%
Taylor expanded in z around 0
Applied rewrites46.8%
if -3.49999999999999984e-7 < a < 9.4999999999999997e48Initial program 58.3%
Taylor expanded in y around 0
+-commutativeN/A
mul-1-negN/A
*-commutativeN/A
associate-/l*N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6433.3
Applied rewrites33.3%
Taylor expanded in z around inf
Applied rewrites38.8%
Applied rewrites38.8%
Final simplification42.3%
(FPCore (x y z t a) :precision binary64 t)
double code(double x, double y, double z, double t, double a) {
return t;
}
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 = t
end function
public static double code(double x, double y, double z, double t, double a) {
return t;
}
def code(x, y, z, t, a): return t
function code(x, y, z, t, a) return t end
function tmp = code(x, y, z, t, a) tmp = t; end
code[x_, y_, z_, t_, a_] := t
\begin{array}{l}
\\
t
\end{array}
Initial program 63.6%
Taylor expanded in y around 0
+-commutativeN/A
mul-1-negN/A
*-commutativeN/A
associate-/l*N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower--.f6446.2
Applied rewrites46.2%
Taylor expanded in z around inf
Applied rewrites27.0%
Applied rewrites27.0%
Final simplification27.0%
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (- t (* (/ y z) (- t x)))))
(if (< z -1.2536131056095036e+188)
t_1
(if (< z 4.446702369113811e+64)
(+ x (/ (- y z) (/ (- a z) (- t x))))
t_1))))
double code(double x, double y, double z, double t, double a) {
double t_1 = t - ((y / z) * (t - x));
double tmp;
if (z < -1.2536131056095036e+188) {
tmp = t_1;
} else if (z < 4.446702369113811e+64) {
tmp = x + ((y - z) / ((a - z) / (t - x)));
} else {
tmp = t_1;
}
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
real(8) :: t_1
real(8) :: tmp
t_1 = t - ((y / z) * (t - x))
if (z < (-1.2536131056095036d+188)) then
tmp = t_1
else if (z < 4.446702369113811d+64) then
tmp = x + ((y - z) / ((a - z) / (t - x)))
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
double t_1 = t - ((y / z) * (t - x));
double tmp;
if (z < -1.2536131056095036e+188) {
tmp = t_1;
} else if (z < 4.446702369113811e+64) {
tmp = x + ((y - z) / ((a - z) / (t - x)));
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t, a): t_1 = t - ((y / z) * (t - x)) tmp = 0 if z < -1.2536131056095036e+188: tmp = t_1 elif z < 4.446702369113811e+64: tmp = x + ((y - z) / ((a - z) / (t - x))) else: tmp = t_1 return tmp
function code(x, y, z, t, a) t_1 = Float64(t - Float64(Float64(y / z) * Float64(t - x))) tmp = 0.0 if (z < -1.2536131056095036e+188) tmp = t_1; elseif (z < 4.446702369113811e+64) tmp = Float64(x + Float64(Float64(y - z) / Float64(Float64(a - z) / Float64(t - x)))); else tmp = t_1; end return tmp end
function tmp_2 = code(x, y, z, t, a) t_1 = t - ((y / z) * (t - x)); tmp = 0.0; if (z < -1.2536131056095036e+188) tmp = t_1; elseif (z < 4.446702369113811e+64) tmp = x + ((y - z) / ((a - z) / (t - x))); else tmp = t_1; end tmp_2 = tmp; end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(t - N[(N[(y / z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Less[z, -1.2536131056095036e+188], t$95$1, If[Less[z, 4.446702369113811e+64], N[(x + N[(N[(y - z), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / N[(t - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
\begin{array}{l}
\\
\begin{array}{l}
t_1 := t - \frac{y}{z} \cdot \left(t - x\right)\\
\mathbf{if}\;z < -1.2536131056095036 \cdot 10^{+188}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z < 4.446702369113811 \cdot 10^{+64}:\\
\;\;\;\;x + \frac{y - z}{\frac{a - z}{t - x}}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
herbie shell --seed 2024326
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.Axis.Types:invLinMap from Chart-1.5.3"
:precision binary64
:alt
(! :herbie-platform default (if (< z -125361310560950360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) (- t (* (/ y z) (- t x))) (if (< z 44467023691138110000000000000000000000000000000000000000000000000) (+ x (/ (- y z) (/ (- a z) (- t x)))) (- t (* (/ y z) (- t x))))))
(+ x (/ (* (- y z) (- t x)) (- a z))))