Average Error: 20.7 → 18.4
Time: 9.7s
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.9999999965121658673794513561006169766188:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - 0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right) - \frac{1}{b} \cdot \frac{a}{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.9999999965121658673794513561006169766188:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - 0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right) - \frac{1}{b} \cdot \frac{a}{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 r799461 = 2.0;
        double r799462 = x;
        double r799463 = sqrt(r799462);
        double r799464 = r799461 * r799463;
        double r799465 = y;
        double r799466 = z;
        double r799467 = t;
        double r799468 = r799466 * r799467;
        double r799469 = 3.0;
        double r799470 = r799468 / r799469;
        double r799471 = r799465 - r799470;
        double r799472 = cos(r799471);
        double r799473 = r799464 * r799472;
        double r799474 = a;
        double r799475 = b;
        double r799476 = r799475 * r799469;
        double r799477 = r799474 / r799476;
        double r799478 = r799473 - r799477;
        return r799478;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r799479 = y;
        double r799480 = z;
        double r799481 = t;
        double r799482 = r799480 * r799481;
        double r799483 = 3.0;
        double r799484 = r799482 / r799483;
        double r799485 = r799479 - r799484;
        double r799486 = cos(r799485);
        double r799487 = 0.9999999965121659;
        bool r799488 = r799486 <= r799487;
        double r799489 = 2.0;
        double r799490 = x;
        double r799491 = sqrt(r799490);
        double r799492 = r799489 * r799491;
        double r799493 = 0.3333333333333333;
        double r799494 = r799481 * r799480;
        double r799495 = r799493 * r799494;
        double r799496 = r799479 - r799495;
        double r799497 = cos(r799496);
        double r799498 = r799492 * r799497;
        double r799499 = 1.0;
        double r799500 = b;
        double r799501 = r799499 / r799500;
        double r799502 = a;
        double r799503 = r799502 / r799483;
        double r799504 = r799501 * r799503;
        double r799505 = r799498 - r799504;
        double r799506 = 0.5;
        double r799507 = 2.0;
        double r799508 = pow(r799479, r799507);
        double r799509 = r799506 * r799508;
        double r799510 = r799499 - r799509;
        double r799511 = r799492 * r799510;
        double r799512 = r799500 * r799483;
        double r799513 = r799502 / r799512;
        double r799514 = r799511 - r799513;
        double r799515 = r799488 ? r799505 : r799514;
        return r799515;
}

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.7
Target18.6
Herbie18.4
\[\begin{array}{l} \mathbf{if}\;z \lt -1.379333748723514136852843173740882251575 \cdot 10^{129}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(\frac{1}{y} - \frac{\frac{0.3333333333333333148296162562473909929395}{z}}{t}\right) - \frac{\frac{a}{3}}{b}\\ \mathbf{elif}\;z \lt 3.516290613555987147199887107423758623887 \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.3333333333333333148296162562473909929395}{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.9999999965121659

    1. Initial program 20.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 inf 20.0

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\cos \left(y - 0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right)} - \frac{a}{b \cdot 3}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity20.0

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - 0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right) - \frac{\color{blue}{1 \cdot a}}{b \cdot 3}\]
    5. Applied times-frac20.0

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

    if 0.9999999965121659 < (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.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}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification18.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\cos \left(y - \frac{z \cdot t}{3}\right) \le 0.9999999965121658673794513561006169766188:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - 0.3333333333333333148296162562473909929395 \cdot \left(t \cdot z\right)\right) - \frac{1}{b} \cdot \frac{a}{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 2019356 
(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))))