Average Error: 25.1 → 6.5
Time: 34.1s
Precision: binary64
Cost: 10704
\[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \]
\[\begin{array}{l} t_1 := x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\ \mathbf{if}\;t_1 \leq -2 \cdot 10^{+280}:\\ \;\;\;\;x + \frac{y - z}{\frac{a - z}{t - x}}\\ \mathbf{elif}\;t_1 \leq -1 \cdot 10^{-307}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t_1 \leq 0:\\ \;\;\;\;t - \frac{x \cdot \left(a - y\right)}{z}\\ \mathbf{elif}\;t_1 \leq 2 \cdot 10^{+296}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y - z, \frac{x - t}{z - a}, x\right)\\ \end{array} \]
(FPCore (x y z t a) :precision binary64 (+ x (/ (* (- y z) (- t x)) (- a z))))
(FPCore (x y z t a)
 :precision binary64
 (let* ((t_1 (+ x (/ (* (- y z) (- t x)) (- a z)))))
   (if (<= t_1 -2e+280)
     (+ x (/ (- y z) (/ (- a z) (- t x))))
     (if (<= t_1 -1e-307)
       t_1
       (if (<= t_1 0.0)
         (- t (/ (* x (- a y)) z))
         (if (<= t_1 2e+296) t_1 (fma (- y z) (/ (- x t) (- z a)) x)))))))
double code(double x, double y, double z, double t, double a) {
	return x + (((y - z) * (t - x)) / (a - z));
}
double code(double x, double y, double z, double t, double a) {
	double t_1 = x + (((y - z) * (t - x)) / (a - z));
	double tmp;
	if (t_1 <= -2e+280) {
		tmp = x + ((y - z) / ((a - z) / (t - x)));
	} else if (t_1 <= -1e-307) {
		tmp = t_1;
	} else if (t_1 <= 0.0) {
		tmp = t - ((x * (a - y)) / z);
	} else if (t_1 <= 2e+296) {
		tmp = t_1;
	} else {
		tmp = fma((y - z), ((x - t) / (z - a)), x);
	}
	return tmp;
}
function code(x, y, z, t, a)
	return Float64(x + Float64(Float64(Float64(y - z) * Float64(t - x)) / Float64(a - z)))
end
function code(x, y, z, t, a)
	t_1 = Float64(x + Float64(Float64(Float64(y - z) * Float64(t - x)) / Float64(a - z)))
	tmp = 0.0
	if (t_1 <= -2e+280)
		tmp = Float64(x + Float64(Float64(y - z) / Float64(Float64(a - z) / Float64(t - x))));
	elseif (t_1 <= -1e-307)
		tmp = t_1;
	elseif (t_1 <= 0.0)
		tmp = Float64(t - Float64(Float64(x * Float64(a - y)) / z));
	elseif (t_1 <= 2e+296)
		tmp = t_1;
	else
		tmp = fma(Float64(y - z), Float64(Float64(x - t) / Float64(z - a)), x);
	end
	return tmp
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]
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(N[(y - z), $MachinePrecision] * N[(t - x), $MachinePrecision]), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, -2e+280], N[(x + N[(N[(y - z), $MachinePrecision] / N[(N[(a - z), $MachinePrecision] / N[(t - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, -1e-307], t$95$1, If[LessEqual[t$95$1, 0.0], N[(t - N[(N[(x * N[(a - y), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, 2e+296], t$95$1, N[(N[(y - z), $MachinePrecision] * N[(N[(x - t), $MachinePrecision] / N[(z - a), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]]]]]]
x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}
\begin{array}{l}
t_1 := x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\
\mathbf{if}\;t_1 \leq -2 \cdot 10^{+280}:\\
\;\;\;\;x + \frac{y - z}{\frac{a - z}{t - x}}\\

\mathbf{elif}\;t_1 \leq -1 \cdot 10^{-307}:\\
\;\;\;\;t_1\\

\mathbf{elif}\;t_1 \leq 0:\\
\;\;\;\;t - \frac{x \cdot \left(a - y\right)}{z}\\

\mathbf{elif}\;t_1 \leq 2 \cdot 10^{+296}:\\
\;\;\;\;t_1\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(y - z, \frac{x - t}{z - a}, x\right)\\


\end{array}

Error

Target

Original25.1
Target12.2
Herbie6.5
\[\begin{array}{l} \mathbf{if}\;z < -1.2536131056095036 \cdot 10^{+188}:\\ \;\;\;\;t - \frac{y}{z} \cdot \left(t - x\right)\\ \mathbf{elif}\;z < 4.446702369113811 \cdot 10^{+64}:\\ \;\;\;\;x + \frac{y - z}{\frac{a - z}{t - x}}\\ \mathbf{else}:\\ \;\;\;\;t - \frac{y}{z} \cdot \left(t - x\right)\\ \end{array} \]

Derivation

  1. Split input into 4 regimes
  2. if (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < -2.0000000000000001e280

    1. Initial program 58.7

      \[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \]
    2. Applied egg-rr16.8

      \[\leadsto x + \color{blue}{\frac{y - z}{{\left(\sqrt[3]{a - z}\right)}^{2}} \cdot \frac{t - x}{\sqrt[3]{a - z}}} \]
    3. Applied egg-rr16.7

      \[\leadsto x + \color{blue}{\frac{y - z}{\frac{a - z}{t - x}}} \]

    if -2.0000000000000001e280 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < -9.99999999999999909e-308 or 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < 1.99999999999999996e296

    1. Initial program 2.0

      \[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \]

    if -9.99999999999999909e-308 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) < 0.0

    1. Initial program 61.3

      \[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \]
    2. Taylor expanded in z around inf 0.3

      \[\leadsto \color{blue}{\left(-1 \cdot \frac{y \cdot \left(t - x\right)}{z} + t\right) - -1 \cdot \frac{a \cdot \left(t - x\right)}{z}} \]
    3. Simplified6.1

      \[\leadsto \color{blue}{t - \frac{t - x}{z} \cdot \left(y - a\right)} \]
      Proof
      (-.f64 t (*.f64 (/.f64 (-.f64 t x) z) (-.f64 y a))): 0 points increase in error, 0 points decrease in error
      (-.f64 t (Rewrite<= associate-/r/_binary64 (/.f64 (-.f64 t x) (/.f64 z (-.f64 y a))))): 22 points increase in error, 31 points decrease in error
      (-.f64 t (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (-.f64 t x) (-.f64 y a)) z))): 45 points increase in error, 20 points decrease in error
      (-.f64 t (/.f64 (Rewrite<= distribute-rgt-out--_binary64 (-.f64 (*.f64 y (-.f64 t x)) (*.f64 a (-.f64 t x)))) z)): 1 points increase in error, 1 points decrease in error
      (Rewrite<= unsub-neg_binary64 (+.f64 t (neg.f64 (/.f64 (-.f64 (*.f64 y (-.f64 t x)) (*.f64 a (-.f64 t x))) z)))): 0 points increase in error, 0 points decrease in error
      (+.f64 t (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (/.f64 (-.f64 (*.f64 y (-.f64 t x)) (*.f64 a (-.f64 t x))) z)))): 0 points increase in error, 0 points decrease in error
      (+.f64 t (*.f64 -1 (Rewrite=> div-sub_binary64 (-.f64 (/.f64 (*.f64 y (-.f64 t x)) z) (/.f64 (*.f64 a (-.f64 t x)) z))))): 1 points increase in error, 1 points decrease in error
      (+.f64 t (Rewrite<= distribute-lft-out--_binary64 (-.f64 (*.f64 -1 (/.f64 (*.f64 y (-.f64 t x)) z)) (*.f64 -1 (/.f64 (*.f64 a (-.f64 t x)) z))))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 t (*.f64 -1 (/.f64 (*.f64 y (-.f64 t x)) z))) (*.f64 -1 (/.f64 (*.f64 a (-.f64 t x)) z)))): 0 points increase in error, 2 points decrease in error
      (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 (/.f64 (*.f64 y (-.f64 t x)) z)) t)) (*.f64 -1 (/.f64 (*.f64 a (-.f64 t x)) z))): 0 points increase in error, 0 points decrease in error
    4. Taylor expanded in t around 0 0.3

      \[\leadsto t - \color{blue}{\left(-1 \cdot \frac{\left(y - a\right) \cdot x}{z} + t \cdot \left(\frac{y}{z} - \frac{a}{z}\right)\right)} \]
    5. Simplified0.4

      \[\leadsto t - \color{blue}{\frac{x - t}{\frac{z}{a - y}}} \]
      Proof
      (/.f64 (-.f64 x t) (/.f64 z (-.f64 a y))): 0 points increase in error, 0 points decrease in error
      (/.f64 (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 (-.f64 x t)))) (/.f64 z (-.f64 a y))): 0 points increase in error, 0 points decrease in error
      (/.f64 (neg.f64 (Rewrite<= sub0-neg_binary64 (-.f64 0 (-.f64 x t)))) (/.f64 z (-.f64 a y))): 0 points increase in error, 0 points decrease in error
      (/.f64 (neg.f64 (Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 0 x) t))) (/.f64 z (-.f64 a y))): 0 points increase in error, 0 points decrease in error
      (/.f64 (neg.f64 (+.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 x)) t)) (/.f64 z (-.f64 a y))): 0 points increase in error, 0 points decrease in error
      (/.f64 (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 t (neg.f64 x)))) (/.f64 z (-.f64 a y))): 0 points increase in error, 0 points decrease in error
      (/.f64 (neg.f64 (Rewrite<= sub-neg_binary64 (-.f64 t x))) (/.f64 z (-.f64 a y))): 0 points increase in error, 0 points decrease in error
      (/.f64 (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (-.f64 t x))) (/.f64 z (-.f64 a y))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -1 (-.f64 t x)) (/.f64 z (Rewrite<= unsub-neg_binary64 (+.f64 a (neg.f64 y))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -1 (-.f64 t x)) (/.f64 z (+.f64 a (Rewrite=> neg-mul-1_binary64 (*.f64 -1 y))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -1 (-.f64 t x)) (/.f64 z (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 y) a)))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -1 (-.f64 t x)) (/.f64 z (+.f64 (Rewrite<= neg-mul-1_binary64 (neg.f64 y)) a))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -1 (-.f64 t x)) (/.f64 z (+.f64 (Rewrite=> neg-sub0_binary64 (-.f64 0 y)) a))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -1 (-.f64 t x)) (/.f64 z (Rewrite<= associate--r-_binary64 (-.f64 0 (-.f64 y a))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -1 (-.f64 t x)) (/.f64 z (Rewrite<= neg-sub0_binary64 (neg.f64 (-.f64 y a))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -1 (-.f64 t x)) (/.f64 z (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (-.f64 y a))))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (*.f64 -1 (-.f64 t x)) (*.f64 -1 (-.f64 y a))) z)): 61 points increase in error, 32 points decrease in error
      (Rewrite<= associate-*r/_binary64 (*.f64 (*.f64 -1 (-.f64 t x)) (/.f64 (*.f64 -1 (-.f64 y a)) z))): 27 points increase in error, 56 points decrease in error
      (*.f64 (*.f64 -1 (-.f64 t x)) (Rewrite<= associate-*r/_binary64 (*.f64 -1 (/.f64 (-.f64 y a) z)))): 0 points increase in error, 0 points decrease in error
      (*.f64 (*.f64 -1 (-.f64 t x)) (Rewrite=> mul-1-neg_binary64 (neg.f64 (/.f64 (-.f64 y a) z)))): 0 points increase in error, 0 points decrease in error
      (Rewrite=> distribute-rgt-neg-out_binary64 (neg.f64 (*.f64 (*.f64 -1 (-.f64 t x)) (/.f64 (-.f64 y a) z)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= distribute-lft-neg-out_binary64 (*.f64 (neg.f64 (*.f64 -1 (-.f64 t x))) (/.f64 (-.f64 y a) z))): 0 points increase in error, 0 points decrease in error
      (*.f64 (neg.f64 (Rewrite=> mul-1-neg_binary64 (neg.f64 (-.f64 t x)))) (/.f64 (-.f64 y a) z)): 0 points increase in error, 0 points decrease in error
      (*.f64 (Rewrite=> remove-double-neg_binary64 (-.f64 t x)) (/.f64 (-.f64 y a) z)): 0 points increase in error, 0 points decrease in error
      (Rewrite<= *-commutative_binary64 (*.f64 (/.f64 (-.f64 y a) z) (-.f64 t x))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= distribute-rgt-out--_binary64 (-.f64 (*.f64 t (/.f64 (-.f64 y a) z)) (*.f64 x (/.f64 (-.f64 y a) z)))): 2 points increase in error, 1 points decrease in error
      (-.f64 (*.f64 t (Rewrite=> div-sub_binary64 (-.f64 (/.f64 y z) (/.f64 a z)))) (*.f64 x (/.f64 (-.f64 y a) z))): 3 points increase in error, 0 points decrease in error
      (-.f64 (*.f64 t (-.f64 (/.f64 y z) (/.f64 a z))) (Rewrite<= *-commutative_binary64 (*.f64 (/.f64 (-.f64 y a) z) x))): 0 points increase in error, 0 points decrease in error
      (-.f64 (*.f64 t (-.f64 (/.f64 y z) (/.f64 a z))) (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 (-.f64 y a) x) z))): 29 points increase in error, 12 points decrease in error
      (Rewrite<= unsub-neg_binary64 (+.f64 (*.f64 t (-.f64 (/.f64 y z) (/.f64 a z))) (neg.f64 (/.f64 (*.f64 (-.f64 y a) x) z)))): 0 points increase in error, 0 points decrease in error
      (+.f64 (*.f64 t (-.f64 (/.f64 y z) (/.f64 a z))) (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (/.f64 (*.f64 (-.f64 y a) x) z)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 y a) x) z)) (*.f64 t (-.f64 (/.f64 y z) (/.f64 a z))))): 0 points increase in error, 0 points decrease in error
    6. Taylor expanded in t around 0 0.3

      \[\leadsto t - \color{blue}{\frac{\left(a - y\right) \cdot x}{z}} \]

    if 1.99999999999999996e296 < (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z)))

    1. Initial program 61.7

      \[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \]
    2. Simplified17.4

      \[\leadsto \color{blue}{\mathsf{fma}\left(y - z, \frac{x - t}{z - a}, x\right)} \]
      Proof
      (fma.f64 (-.f64 y z) (/.f64 (-.f64 x t) (-.f64 z a)) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (Rewrite<= remove-double-neg_binary64 (neg.f64 (neg.f64 (-.f64 x t)))) (-.f64 z a)) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (neg.f64 (Rewrite<= sub0-neg_binary64 (-.f64 0 (-.f64 x t)))) (-.f64 z a)) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (neg.f64 (Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 0 x) t))) (-.f64 z a)) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (neg.f64 (+.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 x)) t)) (-.f64 z a)) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (neg.f64 (Rewrite<= +-commutative_binary64 (+.f64 t (neg.f64 x)))) (-.f64 z a)) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (neg.f64 (Rewrite<= sub-neg_binary64 (-.f64 t x))) (-.f64 z a)) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (Rewrite<= *-lft-identity_binary64 (*.f64 1 (/.f64 (neg.f64 (-.f64 t x)) (-.f64 z a)))) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (*.f64 (Rewrite<= metadata-eval (/.f64 -1 -1)) (/.f64 (neg.f64 (-.f64 t x)) (-.f64 z a))) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (Rewrite<= times-frac_binary64 (/.f64 (*.f64 -1 (neg.f64 (-.f64 t x))) (*.f64 -1 (-.f64 z a)))) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (Rewrite<= neg-mul-1_binary64 (neg.f64 (neg.f64 (-.f64 t x)))) (*.f64 -1 (-.f64 z a))) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (Rewrite=> remove-double-neg_binary64 (-.f64 t x)) (*.f64 -1 (-.f64 z a))) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (-.f64 t x) (Rewrite<= neg-mul-1_binary64 (neg.f64 (-.f64 z a)))) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (-.f64 t x) (Rewrite<= sub0-neg_binary64 (-.f64 0 (-.f64 z a)))) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (-.f64 t x) (Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 0 z) a))) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (-.f64 t x) (+.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 z)) a)) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (-.f64 t x) (Rewrite<= +-commutative_binary64 (+.f64 a (neg.f64 z)))) x): 0 points increase in error, 0 points decrease in error
      (fma.f64 (-.f64 y z) (/.f64 (-.f64 t x) (Rewrite<= sub-neg_binary64 (-.f64 a z))) x): 0 points increase in error, 0 points decrease in error
      (Rewrite<= fma-def_binary64 (+.f64 (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z))) x)): 14 points increase in error, 25 points decrease in error
      (+.f64 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z))) x): 84 points increase in error, 31 points decrease in error
      (Rewrite<= +-commutative_binary64 (+.f64 x (/.f64 (*.f64 (-.f64 y z) (-.f64 t x)) (-.f64 a z)))): 0 points increase in error, 0 points decrease in error
  3. Recombined 4 regimes into one program.
  4. Final simplification6.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \leq -2 \cdot 10^{+280}:\\ \;\;\;\;x + \frac{y - z}{\frac{a - z}{t - x}}\\ \mathbf{elif}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \leq -1 \cdot 10^{-307}:\\ \;\;\;\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\ \mathbf{elif}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \leq 0:\\ \;\;\;\;t - \frac{x \cdot \left(a - y\right)}{z}\\ \mathbf{elif}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \leq 2 \cdot 10^{+296}:\\ \;\;\;\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y - z, \frac{x - t}{z - a}, x\right)\\ \end{array} \]

Alternatives

Alternative 1
Error7.0
Cost21252
\[\begin{array}{l} t_1 := x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\ t_2 := \sqrt[3]{a - z}\\ \mathbf{if}\;t_1 \leq -1 \cdot 10^{-307}:\\ \;\;\;\;x + \frac{y - z}{{t_2}^{2}} \cdot \frac{t - x}{t_2}\\ \mathbf{elif}\;t_1 \leq 0:\\ \;\;\;\;t - \frac{x \cdot \left(a - y\right)}{z}\\ \mathbf{elif}\;t_1 \leq 2 \cdot 10^{+296}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y - z, \frac{x - t}{z - a}, x\right)\\ \end{array} \]
Alternative 2
Error6.5
Cost4432
\[\begin{array}{l} t_1 := x + \frac{y - z}{\frac{a - z}{t - x}}\\ t_2 := x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\ \mathbf{if}\;t_2 \leq -2 \cdot 10^{+280}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t_2 \leq -1 \cdot 10^{-307}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;t_2 \leq 0:\\ \;\;\;\;t - \frac{x \cdot \left(a - y\right)}{z}\\ \mathbf{elif}\;t_2 \leq 2 \cdot 10^{+296}:\\ \;\;\;\;t_2\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 3
Error30.1
Cost1896
\[\begin{array}{l} t_1 := x + y \cdot \frac{t - x}{a}\\ t_2 := t - \frac{x \cdot \left(a - y\right)}{z}\\ t_3 := \frac{y}{\frac{a - z}{t - x}}\\ t_4 := t \cdot \frac{z}{z - a}\\ \mathbf{if}\;y \leq -1 \cdot 10^{+230}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;y \leq -8.660304079552902 \cdot 10^{+50}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq -2.142935746214092 \cdot 10^{+33}:\\ \;\;\;\;y \cdot \frac{x}{z}\\ \mathbf{elif}\;y \leq -1.0734532885452549 \cdot 10^{-80}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq -2.642928460791523 \cdot 10^{-95}:\\ \;\;\;\;x\\ \mathbf{elif}\;y \leq -5.764215934277436 \cdot 10^{-122}:\\ \;\;\;\;t_4\\ \mathbf{elif}\;y \leq -1.6184959057795772 \cdot 10^{-153}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq -2.467171027895531 \cdot 10^{-167}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq -1.125031406144783 \cdot 10^{-210}:\\ \;\;\;\;t_4\\ \mathbf{elif}\;y \leq 8.304470431404719 \cdot 10^{+43}:\\ \;\;\;\;x - \frac{z \cdot t}{a - z}\\ \mathbf{else}:\\ \;\;\;\;t_3\\ \end{array} \]
Alternative 4
Error30.0
Cost1896
\[\begin{array}{l} t_1 := t - \frac{x \cdot \left(a - y\right)}{z}\\ t_2 := \frac{y}{\frac{a - z}{t - x}}\\ t_3 := t \cdot \frac{z}{z - a}\\ \mathbf{if}\;y \leq -1 \cdot 10^{+230}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y \leq -8.660304079552902 \cdot 10^{+50}:\\ \;\;\;\;x + y \cdot \frac{t - x}{a}\\ \mathbf{elif}\;y \leq -2.142935746214092 \cdot 10^{+33}:\\ \;\;\;\;y \cdot \frac{x}{z}\\ \mathbf{elif}\;y \leq -1.0734532885452549 \cdot 10^{-80}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq -2.642928460791523 \cdot 10^{-95}:\\ \;\;\;\;x\\ \mathbf{elif}\;y \leq -5.764215934277436 \cdot 10^{-122}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;y \leq -1.6184959057795772 \cdot 10^{-153}:\\ \;\;\;\;x + \frac{y \cdot \left(t - x\right)}{a}\\ \mathbf{elif}\;y \leq -2.467171027895531 \cdot 10^{-167}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq -1.125031406144783 \cdot 10^{-210}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;y \leq 8.304470431404719 \cdot 10^{+43}:\\ \;\;\;\;x - \frac{z \cdot t}{a - z}\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 5
Error20.2
Cost1236
\[\begin{array}{l} t_1 := x + \left(t - x\right) \cdot \frac{y}{a}\\ t_2 := t - \left(a - y\right) \cdot \frac{x}{z}\\ \mathbf{if}\;z \leq -3.062211986490908 \cdot 10^{+63}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq -64283475.99384489:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq -1.2504252568196476 \cdot 10^{-14}:\\ \;\;\;\;\frac{y}{\frac{z}{x - t}}\\ \mathbf{elif}\;z \leq -5 \cdot 10^{-241}:\\ \;\;\;\;x + y \cdot \frac{t - x}{a}\\ \mathbf{elif}\;z \leq 1.5240525457699406 \cdot 10^{+60}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 6
Error20.1
Cost1232
\[\begin{array}{l} t_1 := t \cdot \frac{z - y}{z - a}\\ t_2 := x + \frac{t - x}{\frac{a}{y - z}}\\ \mathbf{if}\;a \leq -57479902.70451729:\\ \;\;\;\;t_2\\ \mathbf{elif}\;a \leq 2.75 \cdot 10^{-294}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 2.204758912297863 \cdot 10^{-16}:\\ \;\;\;\;t - \left(a - y\right) \cdot \frac{x}{z}\\ \mathbf{elif}\;a \leq 44.60023859731867:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 7
Error16.0
Cost1232
\[\begin{array}{l} t_1 := x + \frac{t - x}{\frac{a}{y - z}}\\ t_2 := t + \frac{t - x}{\frac{z}{a - y}}\\ \mathbf{if}\;z \leq -5.0175898428940687 \cdot 10^{+64}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq -64283475.99384489:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq -1.2504252568196476 \cdot 10^{-14}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq 4.828448974858456 \cdot 10^{+60}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 8
Error14.8
Cost1232
\[\begin{array}{l} t_1 := x + \frac{y - z}{\frac{a - z}{t}}\\ t_2 := t + \frac{t - x}{\frac{z}{a - y}}\\ \mathbf{if}\;z \leq -3.360347233835743 \cdot 10^{+137}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq -3.2 \cdot 10^{-41}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 1.12 \cdot 10^{-146}:\\ \;\;\;\;x + \frac{t - x}{\frac{a}{y - z}}\\ \mathbf{elif}\;z \leq 3.454658779449296 \cdot 10^{+175}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \end{array} \]
Alternative 9
Error36.1
Cost1108
\[\begin{array}{l} t_1 := \frac{y}{\frac{z}{x - t}}\\ \mathbf{if}\;a \leq -57479902.70451729:\\ \;\;\;\;x\\ \mathbf{elif}\;a \leq -2.7 \cdot 10^{-121}:\\ \;\;\;\;t\\ \mathbf{elif}\;a \leq -1.06 \cdot 10^{-154}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 2.75 \cdot 10^{-275}:\\ \;\;\;\;t\\ \mathbf{elif}\;a \leq 1.8 \cdot 10^{-226}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 1.2353027197531722 \cdot 10^{+35}:\\ \;\;\;\;t\\ \mathbf{else}:\\ \;\;\;\;x\\ \end{array} \]
Alternative 10
Error36.0
Cost1108
\[\begin{array}{l} t_1 := y \cdot \frac{x - t}{z}\\ \mathbf{if}\;a \leq -57479902.70451729:\\ \;\;\;\;x\\ \mathbf{elif}\;a \leq -2.7 \cdot 10^{-121}:\\ \;\;\;\;t\\ \mathbf{elif}\;a \leq -1.06 \cdot 10^{-154}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 2.75 \cdot 10^{-275}:\\ \;\;\;\;t\\ \mathbf{elif}\;a \leq 1.8 \cdot 10^{-226}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 1.2353027197531722 \cdot 10^{+35}:\\ \;\;\;\;t\\ \mathbf{else}:\\ \;\;\;\;x\\ \end{array} \]
Alternative 11
Error25.6
Cost1108
\[\begin{array}{l} t_1 := x + y \cdot \frac{t - x}{a}\\ t_2 := t - \frac{t}{\frac{z}{y}}\\ t_3 := t \cdot \frac{z}{z - a}\\ \mathbf{if}\;z \leq -1.5421838976690583 \cdot 10^{+103}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;z \leq 1.5240525457699406 \cdot 10^{+60}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 1.5961709488641545 \cdot 10^{+85}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;z \leq 1.1770059115048297 \cdot 10^{+89}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 1.0953471597958802 \cdot 10^{+167}:\\ \;\;\;\;t_2\\ \mathbf{else}:\\ \;\;\;\;t_3\\ \end{array} \]
Alternative 12
Error23.1
Cost1104
\[\begin{array}{l} t_1 := t \cdot \frac{z - y}{z - a}\\ \mathbf{if}\;a \leq -57479902.70451729:\\ \;\;\;\;x + y \cdot \frac{t - x}{a}\\ \mathbf{elif}\;a \leq 2.75 \cdot 10^{-294}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 2.204758912297863 \cdot 10^{-16}:\\ \;\;\;\;t - \left(a - y\right) \cdot \frac{x}{z}\\ \mathbf{elif}\;a \leq 44.60023859731867:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;x + \left(t - x\right) \cdot \frac{y}{a}\\ \end{array} \]
Alternative 13
Error9.9
Cost1096
\[\begin{array}{l} t_1 := t + \frac{t - x}{\frac{z}{a - y}}\\ \mathbf{if}\;z \leq -3.360347233835743 \cdot 10^{+137}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;z \leq 3.454658779449296 \cdot 10^{+175}:\\ \;\;\;\;x + \frac{y - z}{\frac{a - z}{t - x}}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 14
Error36.5
Cost844
\[\begin{array}{l} \mathbf{if}\;z \leq -3.360347233835743 \cdot 10^{+137}:\\ \;\;\;\;t\\ \mathbf{elif}\;z \leq -2.7 \cdot 10^{-243}:\\ \;\;\;\;x\\ \mathbf{elif}\;z \leq -5 \cdot 10^{-283}:\\ \;\;\;\;\left(t - x\right) \cdot \frac{y}{a}\\ \mathbf{elif}\;z \leq 2.1604987555428959 \cdot 10^{+40}:\\ \;\;\;\;x\\ \mathbf{else}:\\ \;\;\;\;t\\ \end{array} \]
Alternative 15
Error32.1
Cost840
\[\begin{array}{l} t_1 := x - \frac{z \cdot \left(t - x\right)}{a}\\ \mathbf{if}\;a \leq -250230.2563631886:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 44.60023859731867:\\ \;\;\;\;t - \frac{t}{\frac{z}{y}}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 16
Error30.7
Cost840
\[\begin{array}{l} t_1 := x - \frac{z \cdot t}{a - z}\\ \mathbf{if}\;a \leq -250230.2563631886:\\ \;\;\;\;t_1\\ \mathbf{elif}\;a \leq 1.06 \cdot 10^{-153}:\\ \;\;\;\;t - \frac{t}{\frac{z}{y}}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 17
Error28.1
Cost840
\[\begin{array}{l} t_1 := \frac{y}{\frac{a - z}{t - x}}\\ \mathbf{if}\;y \leq -2.142935746214092 \cdot 10^{+33}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y \leq 8.304470431404719 \cdot 10^{+43}:\\ \;\;\;\;x - \frac{z \cdot t}{a - z}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 18
Error33.0
Cost712
\[\begin{array}{l} \mathbf{if}\;a \leq -4.2294738692101894 \cdot 10^{+75}:\\ \;\;\;\;x\\ \mathbf{elif}\;a \leq 44.60023859731867:\\ \;\;\;\;t - \frac{t}{\frac{z}{y}}\\ \mathbf{else}:\\ \;\;\;\;x\\ \end{array} \]
Alternative 19
Error35.8
Cost328
\[\begin{array}{l} \mathbf{if}\;a \leq -57479902.70451729:\\ \;\;\;\;x\\ \mathbf{elif}\;a \leq 1.2353027197531722 \cdot 10^{+35}:\\ \;\;\;\;t\\ \mathbf{else}:\\ \;\;\;\;x\\ \end{array} \]
Alternative 20
Error46.1
Cost64
\[t \]

Error

Reproduce

herbie shell --seed 2022291 
(FPCore (x y z t a)
  :name "Graphics.Rendering.Chart.Axis.Types:invLinMap from Chart-1.5.3"
  :precision binary64

  :herbie-target
  (if (< z -1.2536131056095036e+188) (- t (* (/ y z) (- t x))) (if (< z 4.446702369113811e+64) (+ x (/ (- y z) (/ (- a z) (- t x)))) (- t (* (/ y z) (- t x)))))

  (+ x (/ (* (- y z) (- t x)) (- a z))))