Average Error: 24.4 → 10.1
Time: 20.6s
Precision: 64
\[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;z \le -4.197578146861638602955077028325016765581 \cdot 10^{197} \lor \neg \left(z \le 2.310700863718049801732465226256542133237 \cdot 10^{203}\right):\\ \;\;\;\;t + \left(\frac{x}{\frac{z}{y}} - \frac{t}{\frac{z}{y}}\right)\\ \mathbf{else}:\\ \;\;\;\;x + \left(\left(\sqrt[3]{\frac{y - z}{a - z}} \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \left(t - x\right)\\ \end{array}\]
x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}
\begin{array}{l}
\mathbf{if}\;z \le -4.197578146861638602955077028325016765581 \cdot 10^{197} \lor \neg \left(z \le 2.310700863718049801732465226256542133237 \cdot 10^{203}\right):\\
\;\;\;\;t + \left(\frac{x}{\frac{z}{y}} - \frac{t}{\frac{z}{y}}\right)\\

\mathbf{else}:\\
\;\;\;\;x + \left(\left(\sqrt[3]{\frac{y - z}{a - z}} \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \left(t - x\right)\\

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r557517 = x;
        double r557518 = y;
        double r557519 = z;
        double r557520 = r557518 - r557519;
        double r557521 = t;
        double r557522 = r557521 - r557517;
        double r557523 = r557520 * r557522;
        double r557524 = a;
        double r557525 = r557524 - r557519;
        double r557526 = r557523 / r557525;
        double r557527 = r557517 + r557526;
        return r557527;
}

double f(double x, double y, double z, double t, double a) {
        double r557528 = z;
        double r557529 = -4.1975781468616386e+197;
        bool r557530 = r557528 <= r557529;
        double r557531 = 2.3107008637180498e+203;
        bool r557532 = r557528 <= r557531;
        double r557533 = !r557532;
        bool r557534 = r557530 || r557533;
        double r557535 = t;
        double r557536 = x;
        double r557537 = y;
        double r557538 = r557528 / r557537;
        double r557539 = r557536 / r557538;
        double r557540 = r557535 / r557538;
        double r557541 = r557539 - r557540;
        double r557542 = r557535 + r557541;
        double r557543 = r557537 - r557528;
        double r557544 = a;
        double r557545 = r557544 - r557528;
        double r557546 = r557543 / r557545;
        double r557547 = cbrt(r557546);
        double r557548 = r557547 * r557547;
        double r557549 = r557548 * r557547;
        double r557550 = r557535 - r557536;
        double r557551 = r557549 * r557550;
        double r557552 = r557536 + r557551;
        double r557553 = r557534 ? r557542 : r557552;
        return r557553;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original24.4
Target12.2
Herbie10.1
\[\begin{array}{l} \mathbf{if}\;z \lt -1.253613105609503593846459977496550767343 \cdot 10^{188}:\\ \;\;\;\;t - \frac{y}{z} \cdot \left(t - x\right)\\ \mathbf{elif}\;z \lt 4.446702369113811028051510715777703865332 \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 2 regimes
  2. if z < -4.1975781468616386e+197 or 2.3107008637180498e+203 < z

    1. Initial program 49.6

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

      \[\leadsto \color{blue}{x + \frac{y - z}{a - z} \cdot \left(t - x\right)}\]
    3. Using strategy rm
    4. Applied div-inv24.6

      \[\leadsto x + \color{blue}{\left(\left(y - z\right) \cdot \frac{1}{a - z}\right)} \cdot \left(t - x\right)\]
    5. Taylor expanded around inf 24.3

      \[\leadsto \color{blue}{\left(t + \frac{x \cdot y}{z}\right) - \frac{t \cdot y}{z}}\]
    6. Simplified14.5

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

    if -4.1975781468616386e+197 < z < 2.3107008637180498e+203

    1. Initial program 18.0

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

      \[\leadsto \color{blue}{x + \frac{y - z}{a - z} \cdot \left(t - x\right)}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt9.0

      \[\leadsto x + \color{blue}{\left(\left(\sqrt[3]{\frac{y - z}{a - z}} \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \sqrt[3]{\frac{y - z}{a - z}}\right)} \cdot \left(t - x\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification10.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -4.197578146861638602955077028325016765581 \cdot 10^{197} \lor \neg \left(z \le 2.310700863718049801732465226256542133237 \cdot 10^{203}\right):\\ \;\;\;\;t + \left(\frac{x}{\frac{z}{y}} - \frac{t}{\frac{z}{y}}\right)\\ \mathbf{else}:\\ \;\;\;\;x + \left(\left(\sqrt[3]{\frac{y - z}{a - z}} \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \left(t - x\right)\\ \end{array}\]

Reproduce

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

  :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))))