Average Error: 23.9 → 10.5
Time: 14.5s
Precision: 64
\[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\]
\[\begin{array}{l} \mathbf{if}\;a \le -7.856678782897123650828279040976448678111 \cdot 10^{-126}:\\ \;\;\;\;\frac{y - x}{\frac{1}{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}} \cdot \frac{a - t}{\sqrt[3]{z - t}}} + x\\ \mathbf{elif}\;a \le 8.765571518245334517432482424498572415092 \cdot 10^{-120}:\\ \;\;\;\;\left(y + \frac{x \cdot z}{t}\right) - \frac{z \cdot y}{t}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y - x}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}\right) \cdot \frac{\sqrt[3]{a - t}}{z - t}}\\ \end{array}\]
x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}
\begin{array}{l}
\mathbf{if}\;a \le -7.856678782897123650828279040976448678111 \cdot 10^{-126}:\\
\;\;\;\;\frac{y - x}{\frac{1}{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}} \cdot \frac{a - t}{\sqrt[3]{z - t}}} + x\\

\mathbf{elif}\;a \le 8.765571518245334517432482424498572415092 \cdot 10^{-120}:\\
\;\;\;\;\left(y + \frac{x \cdot z}{t}\right) - \frac{z \cdot y}{t}\\

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r508985 = x;
        double r508986 = y;
        double r508987 = r508986 - r508985;
        double r508988 = z;
        double r508989 = t;
        double r508990 = r508988 - r508989;
        double r508991 = r508987 * r508990;
        double r508992 = a;
        double r508993 = r508992 - r508989;
        double r508994 = r508991 / r508993;
        double r508995 = r508985 + r508994;
        return r508995;
}

double f(double x, double y, double z, double t, double a) {
        double r508996 = a;
        double r508997 = -7.856678782897124e-126;
        bool r508998 = r508996 <= r508997;
        double r508999 = y;
        double r509000 = x;
        double r509001 = r508999 - r509000;
        double r509002 = 1.0;
        double r509003 = z;
        double r509004 = t;
        double r509005 = r509003 - r509004;
        double r509006 = cbrt(r509005);
        double r509007 = r509006 * r509006;
        double r509008 = r509002 / r509007;
        double r509009 = r508996 - r509004;
        double r509010 = r509009 / r509006;
        double r509011 = r509008 * r509010;
        double r509012 = r509001 / r509011;
        double r509013 = r509012 + r509000;
        double r509014 = 8.765571518245335e-120;
        bool r509015 = r508996 <= r509014;
        double r509016 = r509000 * r509003;
        double r509017 = r509016 / r509004;
        double r509018 = r508999 + r509017;
        double r509019 = r509003 * r508999;
        double r509020 = r509019 / r509004;
        double r509021 = r509018 - r509020;
        double r509022 = cbrt(r509009);
        double r509023 = r509022 * r509022;
        double r509024 = r509022 / r509005;
        double r509025 = r509023 * r509024;
        double r509026 = r509001 / r509025;
        double r509027 = r509000 + r509026;
        double r509028 = r509015 ? r509021 : r509027;
        double r509029 = r508998 ? r509013 : r509028;
        return r509029;
}

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

Original23.9
Target8.9
Herbie10.5
\[\begin{array}{l} \mathbf{if}\;a \lt -1.615306284544257464183904494091872805513 \cdot 10^{-142}:\\ \;\;\;\;x + \frac{y - x}{1} \cdot \frac{z - t}{a - t}\\ \mathbf{elif}\;a \lt 3.774403170083174201868024161554637965035 \cdot 10^{-182}:\\ \;\;\;\;y - \frac{z}{t} \cdot \left(y - x\right)\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y - x}{1} \cdot \frac{z - t}{a - t}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if a < -7.856678782897124e-126

    1. Initial program 22.6

      \[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\]
    2. Using strategy rm
    3. Applied associate-/l*8.6

      \[\leadsto x + \color{blue}{\frac{y - x}{\frac{a - t}{z - t}}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity8.6

      \[\leadsto x + \frac{y - x}{\frac{a - t}{\color{blue}{1 \cdot \left(z - t\right)}}}\]
    6. Applied *-un-lft-identity8.6

      \[\leadsto x + \frac{y - x}{\frac{\color{blue}{1 \cdot \left(a - t\right)}}{1 \cdot \left(z - t\right)}}\]
    7. Applied times-frac8.6

      \[\leadsto x + \frac{y - x}{\color{blue}{\frac{1}{1} \cdot \frac{a - t}{z - t}}}\]
    8. Simplified8.6

      \[\leadsto x + \frac{y - x}{\color{blue}{1} \cdot \frac{a - t}{z - t}}\]
    9. Using strategy rm
    10. Applied add-cube-cbrt9.2

      \[\leadsto x + \frac{y - x}{1 \cdot \frac{a - t}{\color{blue}{\left(\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}\right) \cdot \sqrt[3]{z - t}}}}\]
    11. Applied *-un-lft-identity9.2

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

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

    if -7.856678782897124e-126 < a < 8.765571518245335e-120

    1. Initial program 28.5

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

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

    if 8.765571518245335e-120 < a

    1. Initial program 22.0

      \[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\]
    2. Using strategy rm
    3. Applied associate-/l*8.0

      \[\leadsto x + \color{blue}{\frac{y - x}{\frac{a - t}{z - t}}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity8.0

      \[\leadsto x + \frac{y - x}{\frac{a - t}{\color{blue}{1 \cdot \left(z - t\right)}}}\]
    6. Applied add-cube-cbrt8.5

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

      \[\leadsto x + \frac{y - x}{\color{blue}{\frac{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}{1} \cdot \frac{\sqrt[3]{a - t}}{z - t}}}\]
    8. Simplified8.5

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -7.856678782897123650828279040976448678111 \cdot 10^{-126}:\\ \;\;\;\;\frac{y - x}{\frac{1}{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}} \cdot \frac{a - t}{\sqrt[3]{z - t}}} + x\\ \mathbf{elif}\;a \le 8.765571518245334517432482424498572415092 \cdot 10^{-120}:\\ \;\;\;\;\left(y + \frac{x \cdot z}{t}\right) - \frac{z \cdot y}{t}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y - x}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}\right) \cdot \frac{\sqrt[3]{a - t}}{z - t}}\\ \end{array}\]

Reproduce

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

  :herbie-target
  (if (< a -1.6153062845442575e-142) (+ x (* (/ (- y x) 1) (/ (- z t) (- a t)))) (if (< a 3.7744031700831742e-182) (- y (* (/ z t) (- y x))) (+ x (* (/ (- y x) 1) (/ (- z t) (- a t))))))

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