Average Error: 20.5 → 18.9
Time: 13.4s
Precision: 64
\[\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}\]
\[\begin{array}{l} \mathbf{if}\;y \le -2.711112522981125:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \sqrt[3]{{\left(\cos \left(y - \frac{z \cdot t}{3}\right)\right)}^{3}} - \frac{a}{b \cdot 3}\\ \mathbf{elif}\;y \le 2.4348734333899417 \cdot 10^{-18}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 3}\\ \mathbf{else}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) - \frac{1}{b} \cdot \frac{a}{3}\\ \end{array}\]
\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}
\begin{array}{l}
\mathbf{if}\;y \le -2.711112522981125:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \sqrt[3]{{\left(\cos \left(y - \frac{z \cdot t}{3}\right)\right)}^{3}} - \frac{a}{b \cdot 3}\\

\mathbf{elif}\;y \le 2.4348734333899417 \cdot 10^{-18}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 3}\\

\mathbf{else}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) - \frac{1}{b} \cdot \frac{a}{3}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r779722 = 2.0;
        double r779723 = x;
        double r779724 = sqrt(r779723);
        double r779725 = r779722 * r779724;
        double r779726 = y;
        double r779727 = z;
        double r779728 = t;
        double r779729 = r779727 * r779728;
        double r779730 = 3.0;
        double r779731 = r779729 / r779730;
        double r779732 = r779726 - r779731;
        double r779733 = cos(r779732);
        double r779734 = r779725 * r779733;
        double r779735 = a;
        double r779736 = b;
        double r779737 = r779736 * r779730;
        double r779738 = r779735 / r779737;
        double r779739 = r779734 - r779738;
        return r779739;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r779740 = y;
        double r779741 = -2.711112522981125;
        bool r779742 = r779740 <= r779741;
        double r779743 = 2.0;
        double r779744 = x;
        double r779745 = sqrt(r779744);
        double r779746 = r779743 * r779745;
        double r779747 = z;
        double r779748 = t;
        double r779749 = r779747 * r779748;
        double r779750 = 3.0;
        double r779751 = r779749 / r779750;
        double r779752 = r779740 - r779751;
        double r779753 = cos(r779752);
        double r779754 = 3.0;
        double r779755 = pow(r779753, r779754);
        double r779756 = cbrt(r779755);
        double r779757 = r779746 * r779756;
        double r779758 = a;
        double r779759 = b;
        double r779760 = r779759 * r779750;
        double r779761 = r779758 / r779760;
        double r779762 = r779757 - r779761;
        double r779763 = 2.4348734333899417e-18;
        bool r779764 = r779740 <= r779763;
        double r779765 = 1.0;
        double r779766 = 0.5;
        double r779767 = 2.0;
        double r779768 = pow(r779740, r779767);
        double r779769 = r779766 * r779768;
        double r779770 = r779765 - r779769;
        double r779771 = r779746 * r779770;
        double r779772 = r779771 - r779761;
        double r779773 = cos(r779740);
        double r779774 = 0.3333333333333333;
        double r779775 = r779748 * r779747;
        double r779776 = r779774 * r779775;
        double r779777 = cos(r779776);
        double r779778 = r779773 * r779777;
        double r779779 = sin(r779740);
        double r779780 = sin(r779751);
        double r779781 = r779779 * r779780;
        double r779782 = r779778 + r779781;
        double r779783 = r779746 * r779782;
        double r779784 = r779765 / r779759;
        double r779785 = r779758 / r779750;
        double r779786 = r779784 * r779785;
        double r779787 = r779783 - r779786;
        double r779788 = r779764 ? r779772 : r779787;
        double r779789 = r779742 ? r779762 : r779788;
        return r779789;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original20.5
Target18.5
Herbie18.9
\[\begin{array}{l} \mathbf{if}\;z \lt -1.379333748723514 \cdot 10^{129}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(\frac{1}{y} - \frac{\frac{0.333333333333333315}{z}}{t}\right) - \frac{\frac{a}{3}}{b}\\ \mathbf{elif}\;z \lt 3.51629061355598715 \cdot 10^{106}:\\ \;\;\;\;\left(\sqrt{x} \cdot 2\right) \cdot \cos \left(y - \frac{t}{3} \cdot z\right) - \frac{\frac{a}{3}}{b}\\ \mathbf{else}:\\ \;\;\;\;\cos \left(y - \frac{\frac{0.333333333333333315}{z}}{t}\right) \cdot \left(2 \cdot \sqrt{x}\right) - \frac{\frac{a}{b}}{3}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if y < -2.711112522981125

    1. Initial program 21.1

      \[\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}\]
    2. Using strategy rm
    3. Applied add-cbrt-cube21.2

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\sqrt[3]{\left(\cos \left(y - \frac{z \cdot t}{3}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right)}} - \frac{a}{b \cdot 3}\]
    4. Simplified21.2

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

    if -2.711112522981125 < y < 2.4348734333899417e-18

    1. Initial program 19.6

      \[\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}\]
    2. Taylor expanded around 0 16.6

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\left(1 - \frac{1}{2} \cdot {y}^{2}\right)} - \frac{a}{b \cdot 3}\]

    if 2.4348734333899417e-18 < y

    1. Initial program 21.5

      \[\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) - \frac{a}{b \cdot 3}\]
    2. Using strategy rm
    3. Applied cos-diff20.7

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\left(\cos y \cdot \cos \left(\frac{z \cdot t}{3}\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right)} - \frac{a}{b \cdot 3}\]
    4. Taylor expanded around inf 20.8

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \color{blue}{\cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)} + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) - \frac{a}{b \cdot 3}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity20.8

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) - \frac{\color{blue}{1 \cdot a}}{b \cdot 3}\]
    7. Applied times-frac20.8

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -2.711112522981125:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \sqrt[3]{{\left(\cos \left(y - \frac{z \cdot t}{3}\right)\right)}^{3}} - \frac{a}{b \cdot 3}\\ \mathbf{elif}\;y \le 2.4348734333899417 \cdot 10^{-18}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 3}\\ \mathbf{else}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) - \frac{1}{b} \cdot \frac{a}{3}\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 
(FPCore (x y z t a b)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, K"
  :precision binary64

  :herbie-target
  (if (< z -1.379333748723514e+129) (- (* (* 2 (sqrt x)) (cos (- (/ 1 y) (/ (/ 0.3333333333333333 z) t)))) (/ (/ a 3) b)) (if (< z 3.516290613555987e+106) (- (* (* (sqrt x) 2) (cos (- y (* (/ t 3) z)))) (/ (/ a 3) b)) (- (* (cos (- y (/ (/ 0.3333333333333333 z) t))) (* 2 (sqrt x))) (/ (/ a b) 3))))

  (- (* (* 2 (sqrt x)) (cos (- y (/ (* z t) 3)))) (/ a (* b 3))))