Average Error: 24.6 → 8.6
Time: 20.7s
Precision: 64
\[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\]
\[\begin{array}{l} \mathbf{if}\;x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t} \le -2.497041979016212756171192164133352171743 \cdot 10^{-308}:\\ \;\;\;\;x + \left(y - x\right) \cdot \frac{z - t}{a - t}\\ \mathbf{elif}\;x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t} \le 0.0:\\ \;\;\;\;\left(y + \frac{x \cdot z}{t}\right) - \frac{z \cdot y}{t}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{\sqrt[3]{y - x}}{\frac{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}{\sqrt[3]{y - x}}} \cdot \left(\sqrt[3]{\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}} \cdot \frac{\sqrt[3]{\sqrt[3]{y - x}}}{\frac{\sqrt[3]{a - t}}{z - t}}\right)\\ \end{array}\]
x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}
\begin{array}{l}
\mathbf{if}\;x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t} \le -2.497041979016212756171192164133352171743 \cdot 10^{-308}:\\
\;\;\;\;x + \left(y - x\right) \cdot \frac{z - t}{a - t}\\

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

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r478743 = x;
        double r478744 = y;
        double r478745 = r478744 - r478743;
        double r478746 = z;
        double r478747 = t;
        double r478748 = r478746 - r478747;
        double r478749 = r478745 * r478748;
        double r478750 = a;
        double r478751 = r478750 - r478747;
        double r478752 = r478749 / r478751;
        double r478753 = r478743 + r478752;
        return r478753;
}

double f(double x, double y, double z, double t, double a) {
        double r478754 = x;
        double r478755 = y;
        double r478756 = r478755 - r478754;
        double r478757 = z;
        double r478758 = t;
        double r478759 = r478757 - r478758;
        double r478760 = r478756 * r478759;
        double r478761 = a;
        double r478762 = r478761 - r478758;
        double r478763 = r478760 / r478762;
        double r478764 = r478754 + r478763;
        double r478765 = -2.497041979016213e-308;
        bool r478766 = r478764 <= r478765;
        double r478767 = r478759 / r478762;
        double r478768 = r478756 * r478767;
        double r478769 = r478754 + r478768;
        double r478770 = 0.0;
        bool r478771 = r478764 <= r478770;
        double r478772 = r478754 * r478757;
        double r478773 = r478772 / r478758;
        double r478774 = r478755 + r478773;
        double r478775 = r478757 * r478755;
        double r478776 = r478775 / r478758;
        double r478777 = r478774 - r478776;
        double r478778 = cbrt(r478756);
        double r478779 = cbrt(r478762);
        double r478780 = r478779 * r478779;
        double r478781 = r478780 / r478778;
        double r478782 = r478778 / r478781;
        double r478783 = r478778 * r478778;
        double r478784 = cbrt(r478783);
        double r478785 = cbrt(r478778);
        double r478786 = r478779 / r478759;
        double r478787 = r478785 / r478786;
        double r478788 = r478784 * r478787;
        double r478789 = r478782 * r478788;
        double r478790 = r478754 + r478789;
        double r478791 = r478771 ? r478777 : r478790;
        double r478792 = r478766 ? r478769 : r478791;
        return r478792;
}

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.6
Target9.1
Herbie8.6
\[\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 (+ x (/ (* (- y x) (- z t)) (- a t))) < -2.497041979016213e-308

    1. Initial program 21.1

      \[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity21.1

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

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

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

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

    1. Initial program 61.3

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

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

    if 0.0 < (+ x (/ (* (- y x) (- z t)) (- a t)))

    1. Initial program 21.5

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

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

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

      \[\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.2

      \[\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. Applied add-cube-cbrt8.4

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

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

      \[\leadsto x + \color{blue}{\frac{\sqrt[3]{y - x}}{\frac{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}{\sqrt[3]{y - x}}}} \cdot \frac{\sqrt[3]{y - x}}{\frac{\sqrt[3]{a - t}}{z - t}}\]
    11. Using strategy rm
    12. Applied *-un-lft-identity8.1

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

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

      \[\leadsto x + \frac{\sqrt[3]{y - x}}{\frac{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}{\sqrt[3]{y - x}}} \cdot \frac{\sqrt[3]{y - x}}{\color{blue}{\frac{1}{1} \cdot \frac{\sqrt[3]{a - t}}{z - t}}}\]
    15. Applied add-cube-cbrt8.2

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

      \[\leadsto x + \frac{\sqrt[3]{y - x}}{\frac{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}{\sqrt[3]{y - x}}} \cdot \frac{\color{blue}{\sqrt[3]{\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}} \cdot \sqrt[3]{\sqrt[3]{y - x}}}}{\frac{1}{1} \cdot \frac{\sqrt[3]{a - t}}{z - t}}\]
    17. Applied times-frac8.2

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

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

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

Reproduce

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