Average Error: 20.9 → 17.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}\;\cos \left(y - \frac{z \cdot t}{3}\right) \le 0.99999998507955556:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)} \cdot \sqrt[3]{\cos \left(\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)}\right) - \sin y \cdot \sin \left(-\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)\right) - \frac{a}{b \cdot 3}\\ \mathbf{else}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 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}\;\cos \left(y - \frac{z \cdot t}{3}\right) \le 0.99999998507955556:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)} \cdot \sqrt[3]{\cos \left(\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)}\right) - \sin y \cdot \sin \left(-\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)\right) - \frac{a}{b \cdot 3}\\

\mathbf{else}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(1 - \frac{1}{2} \cdot {y}^{2}\right) - \frac{a}{b \cdot 3}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r676805 = 2.0;
        double r676806 = x;
        double r676807 = sqrt(r676806);
        double r676808 = r676805 * r676807;
        double r676809 = y;
        double r676810 = z;
        double r676811 = t;
        double r676812 = r676810 * r676811;
        double r676813 = 3.0;
        double r676814 = r676812 / r676813;
        double r676815 = r676809 - r676814;
        double r676816 = cos(r676815);
        double r676817 = r676808 * r676816;
        double r676818 = a;
        double r676819 = b;
        double r676820 = r676819 * r676813;
        double r676821 = r676818 / r676820;
        double r676822 = r676817 - r676821;
        return r676822;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r676823 = y;
        double r676824 = z;
        double r676825 = t;
        double r676826 = r676824 * r676825;
        double r676827 = 3.0;
        double r676828 = r676826 / r676827;
        double r676829 = r676823 - r676828;
        double r676830 = cos(r676829);
        double r676831 = 0.9999999850795556;
        bool r676832 = r676830 <= r676831;
        double r676833 = 2.0;
        double r676834 = x;
        double r676835 = sqrt(r676834);
        double r676836 = r676833 * r676835;
        double r676837 = cos(r676823);
        double r676838 = sqrt(r676827);
        double r676839 = r676826 / r676838;
        double r676840 = r676839 / r676838;
        double r676841 = cos(r676840);
        double r676842 = cbrt(r676841);
        double r676843 = r676842 * r676842;
        double r676844 = r676843 * r676842;
        double r676845 = r676837 * r676844;
        double r676846 = sin(r676823);
        double r676847 = -r676840;
        double r676848 = sin(r676847);
        double r676849 = r676846 * r676848;
        double r676850 = r676845 - r676849;
        double r676851 = r676836 * r676850;
        double r676852 = a;
        double r676853 = b;
        double r676854 = r676853 * r676827;
        double r676855 = r676852 / r676854;
        double r676856 = r676851 - r676855;
        double r676857 = 1.0;
        double r676858 = 0.5;
        double r676859 = 2.0;
        double r676860 = pow(r676823, r676859);
        double r676861 = r676858 * r676860;
        double r676862 = r676857 - r676861;
        double r676863 = r676836 * r676862;
        double r676864 = r676863 - r676855;
        double r676865 = r676832 ? r676856 : r676864;
        return r676865;
}

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.9
Target18.7
Herbie17.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 2 regimes
  2. if (cos (- y (/ (* z t) 3.0))) < 0.9999999850795556

    1. Initial program 20.2

      \[\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-sqr-sqrt20.1

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{\color{blue}{\sqrt{3} \cdot \sqrt{3}}}\right) - \frac{a}{b \cdot 3}\]
    4. Applied associate-/r*20.1

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \color{blue}{\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}}\right) - \frac{a}{b \cdot 3}\]
    5. Using strategy rm
    6. Applied sub-neg20.1

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

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

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \left(\color{blue}{\cos y \cdot \cos \left(\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)} - \sin y \cdot \sin \left(-\frac{\frac{z \cdot t}{\sqrt{3}}}{\sqrt{3}}\right)\right) - \frac{a}{b \cdot 3}\]
    9. Using strategy rm
    10. Applied add-cube-cbrt19.4

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

    if 0.9999999850795556 < (cos (- y (/ (* z t) 3.0)))

    1. Initial program 22.0

      \[\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 15.3

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\left(1 - \frac{1}{2} \cdot {y}^{2}\right)} - \frac{a}{b \cdot 3}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification17.9

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

Reproduce

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