Average Error: 24.9 → 12.3
Time: 9.4s
Precision: 64
\[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;a \le -1.058486243922131854439693366213147534592 \cdot 10^{-137} \lor \neg \left(a \le 1.500263932509815460676583431756462553447 \cdot 10^{-204} \lor \neg \left(a \le 7.235207005480105932402501020156182215159 \cdot 10^{-71} \lor \neg \left(a \le 95679663698008050541218776504810340352\right)\right)\right):\\ \;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\ \end{array}\]
x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}
\begin{array}{l}
\mathbf{if}\;a \le -1.058486243922131854439693366213147534592 \cdot 10^{-137} \lor \neg \left(a \le 1.500263932509815460676583431756462553447 \cdot 10^{-204} \lor \neg \left(a \le 7.235207005480105932402501020156182215159 \cdot 10^{-71} \lor \neg \left(a \le 95679663698008050541218776504810340352\right)\right)\right):\\
\;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r650117 = x;
        double r650118 = y;
        double r650119 = z;
        double r650120 = r650118 - r650119;
        double r650121 = t;
        double r650122 = r650121 - r650117;
        double r650123 = r650120 * r650122;
        double r650124 = a;
        double r650125 = r650124 - r650119;
        double r650126 = r650123 / r650125;
        double r650127 = r650117 + r650126;
        return r650127;
}

double f(double x, double y, double z, double t, double a) {
        double r650128 = a;
        double r650129 = -1.0584862439221319e-137;
        bool r650130 = r650128 <= r650129;
        double r650131 = 1.5002639325098155e-204;
        bool r650132 = r650128 <= r650131;
        double r650133 = 7.235207005480106e-71;
        bool r650134 = r650128 <= r650133;
        double r650135 = 9.567966369800805e+37;
        bool r650136 = r650128 <= r650135;
        double r650137 = !r650136;
        bool r650138 = r650134 || r650137;
        double r650139 = !r650138;
        bool r650140 = r650132 || r650139;
        double r650141 = !r650140;
        bool r650142 = r650130 || r650141;
        double r650143 = x;
        double r650144 = y;
        double r650145 = z;
        double r650146 = r650144 - r650145;
        double r650147 = cbrt(r650146);
        double r650148 = r650147 * r650147;
        double r650149 = r650128 - r650145;
        double r650150 = cbrt(r650149);
        double r650151 = r650148 / r650150;
        double r650152 = r650147 / r650150;
        double r650153 = t;
        double r650154 = r650153 - r650143;
        double r650155 = r650154 / r650150;
        double r650156 = r650152 * r650155;
        double r650157 = r650151 * r650156;
        double r650158 = r650143 + r650157;
        double r650159 = r650143 * r650144;
        double r650160 = r650159 / r650145;
        double r650161 = r650160 + r650153;
        double r650162 = r650153 * r650144;
        double r650163 = r650162 / r650145;
        double r650164 = r650161 - r650163;
        double r650165 = r650142 ? r650158 : r650164;
        return r650165;
}

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.9
Target11.8
Herbie12.3
\[\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 a < -1.0584862439221319e-137 or 1.5002639325098155e-204 < a < 7.235207005480106e-71 or 9.567966369800805e+37 < a

    1. Initial program 23.7

      \[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt24.0

      \[\leadsto x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{\color{blue}{\left(\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}\right) \cdot \sqrt[3]{a - z}}}\]
    4. Applied times-frac9.9

      \[\leadsto x + \color{blue}{\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt9.9

      \[\leadsto x + \frac{\color{blue}{\left(\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}\right) \cdot \sqrt[3]{y - z}}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\]
    7. Applied times-frac9.9

      \[\leadsto x + \color{blue}{\left(\frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}}\right)} \cdot \frac{t - x}{\sqrt[3]{a - z}}\]
    8. Applied associate-*l*9.7

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

    if -1.0584862439221319e-137 < a < 1.5002639325098155e-204 or 7.235207005480106e-71 < a < 9.567966369800805e+37

    1. Initial program 28.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -1.058486243922131854439693366213147534592 \cdot 10^{-137} \lor \neg \left(a \le 1.500263932509815460676583431756462553447 \cdot 10^{-204} \lor \neg \left(a \le 7.235207005480105932402501020156182215159 \cdot 10^{-71} \lor \neg \left(a \le 95679663698008050541218776504810340352\right)\right)\right):\\ \;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\ \end{array}\]

Reproduce

herbie shell --seed 2020002 
(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))))