Average Error: 20.2 → 15.5
Time: 1.4m
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.9999999999999996669330926124530378729105:\\ \;\;\;\;\left(\cos \left(\mathsf{fma}\left(\frac{-t}{3}, z, \frac{t}{3} \cdot z\right)\right) \cdot \left(\cos y \cdot \cos \left(\frac{-t}{3} \cdot z\right) - \sin y \cdot \left(\sqrt[3]{\sin \left(\frac{-t}{3} \cdot z\right)} \cdot \left(\sqrt[3]{\sin \left(\frac{-t}{3} \cdot z\right)} \cdot \sqrt[3]{\sin \left(\frac{-t}{3} \cdot z\right)}\right)\right)\right) - \sin \left(\mathsf{fma}\left(\frac{-t}{3}, z, \frac{t}{3} \cdot z\right)\right) \cdot \sin \left(\mathsf{fma}\left(1, y, \frac{-t}{3} \cdot z\right)\right)\right) \cdot \left(2 \cdot \sqrt{x}\right) - \frac{a}{b \cdot 3}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{-1}{2}, y \cdot y, 1\right) \cdot \left(2 \cdot \sqrt{x}\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.9999999999999996669330926124530378729105:\\
\;\;\;\;\left(\cos \left(\mathsf{fma}\left(\frac{-t}{3}, z, \frac{t}{3} \cdot z\right)\right) \cdot \left(\cos y \cdot \cos \left(\frac{-t}{3} \cdot z\right) - \sin y \cdot \left(\sqrt[3]{\sin \left(\frac{-t}{3} \cdot z\right)} \cdot \left(\sqrt[3]{\sin \left(\frac{-t}{3} \cdot z\right)} \cdot \sqrt[3]{\sin \left(\frac{-t}{3} \cdot z\right)}\right)\right)\right) - \sin \left(\mathsf{fma}\left(\frac{-t}{3}, z, \frac{t}{3} \cdot z\right)\right) \cdot \sin \left(\mathsf{fma}\left(1, y, \frac{-t}{3} \cdot z\right)\right)\right) \cdot \left(2 \cdot \sqrt{x}\right) - \frac{a}{b \cdot 3}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r35324389 = 2.0;
        double r35324390 = x;
        double r35324391 = sqrt(r35324390);
        double r35324392 = r35324389 * r35324391;
        double r35324393 = y;
        double r35324394 = z;
        double r35324395 = t;
        double r35324396 = r35324394 * r35324395;
        double r35324397 = 3.0;
        double r35324398 = r35324396 / r35324397;
        double r35324399 = r35324393 - r35324398;
        double r35324400 = cos(r35324399);
        double r35324401 = r35324392 * r35324400;
        double r35324402 = a;
        double r35324403 = b;
        double r35324404 = r35324403 * r35324397;
        double r35324405 = r35324402 / r35324404;
        double r35324406 = r35324401 - r35324405;
        return r35324406;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r35324407 = y;
        double r35324408 = z;
        double r35324409 = t;
        double r35324410 = r35324408 * r35324409;
        double r35324411 = 3.0;
        double r35324412 = r35324410 / r35324411;
        double r35324413 = r35324407 - r35324412;
        double r35324414 = cos(r35324413);
        double r35324415 = 0.9999999999999997;
        bool r35324416 = r35324414 <= r35324415;
        double r35324417 = -r35324409;
        double r35324418 = r35324417 / r35324411;
        double r35324419 = r35324409 / r35324411;
        double r35324420 = r35324419 * r35324408;
        double r35324421 = fma(r35324418, r35324408, r35324420);
        double r35324422 = cos(r35324421);
        double r35324423 = cos(r35324407);
        double r35324424 = r35324418 * r35324408;
        double r35324425 = cos(r35324424);
        double r35324426 = r35324423 * r35324425;
        double r35324427 = sin(r35324407);
        double r35324428 = sin(r35324424);
        double r35324429 = cbrt(r35324428);
        double r35324430 = r35324429 * r35324429;
        double r35324431 = r35324429 * r35324430;
        double r35324432 = r35324427 * r35324431;
        double r35324433 = r35324426 - r35324432;
        double r35324434 = r35324422 * r35324433;
        double r35324435 = sin(r35324421);
        double r35324436 = 1.0;
        double r35324437 = fma(r35324436, r35324407, r35324424);
        double r35324438 = sin(r35324437);
        double r35324439 = r35324435 * r35324438;
        double r35324440 = r35324434 - r35324439;
        double r35324441 = 2.0;
        double r35324442 = x;
        double r35324443 = sqrt(r35324442);
        double r35324444 = r35324441 * r35324443;
        double r35324445 = r35324440 * r35324444;
        double r35324446 = a;
        double r35324447 = b;
        double r35324448 = r35324447 * r35324411;
        double r35324449 = r35324446 / r35324448;
        double r35324450 = r35324445 - r35324449;
        double r35324451 = -0.5;
        double r35324452 = r35324407 * r35324407;
        double r35324453 = fma(r35324451, r35324452, r35324436);
        double r35324454 = r35324453 * r35324444;
        double r35324455 = r35324454 - r35324449;
        double r35324456 = r35324416 ? r35324450 : r35324455;
        return r35324456;
}

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

Target

Original20.2
Target18.0
Herbie15.5
\[\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.9999999999999997

    1. Initial program 19.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 *-un-lft-identity19.2

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

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

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

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

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\left(\cos \left(\mathsf{fma}\left(1, y, -\frac{t}{3} \cdot \frac{z}{1}\right)\right) \cdot \cos \left(\mathsf{fma}\left(-\frac{t}{3}, \frac{z}{1}, \frac{t}{3} \cdot \frac{z}{1}\right)\right) - \sin \left(\mathsf{fma}\left(1, y, -\frac{t}{3} \cdot \frac{z}{1}\right)\right) \cdot \sin \left(\mathsf{fma}\left(-\frac{t}{3}, \frac{z}{1}, \frac{t}{3} \cdot \frac{z}{1}\right)\right)\right)} - \frac{a}{b \cdot 3}\]
    8. Using strategy rm
    9. Applied fma-udef16.4

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \left(\cos \color{blue}{\left(1 \cdot y + \left(-\frac{t}{3} \cdot \frac{z}{1}\right)\right)} \cdot \cos \left(\mathsf{fma}\left(-\frac{t}{3}, \frac{z}{1}, \frac{t}{3} \cdot \frac{z}{1}\right)\right) - \sin \left(\mathsf{fma}\left(1, y, -\frac{t}{3} \cdot \frac{z}{1}\right)\right) \cdot \sin \left(\mathsf{fma}\left(-\frac{t}{3}, \frac{z}{1}, \frac{t}{3} \cdot \frac{z}{1}\right)\right)\right) - \frac{a}{b \cdot 3}\]
    10. Applied cos-sum15.6

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \left(\color{blue}{\left(\cos \left(1 \cdot y\right) \cdot \cos \left(-\frac{t}{3} \cdot \frac{z}{1}\right) - \sin \left(1 \cdot y\right) \cdot \sin \left(-\frac{t}{3} \cdot \frac{z}{1}\right)\right)} \cdot \cos \left(\mathsf{fma}\left(-\frac{t}{3}, \frac{z}{1}, \frac{t}{3} \cdot \frac{z}{1}\right)\right) - \sin \left(\mathsf{fma}\left(1, y, -\frac{t}{3} \cdot \frac{z}{1}\right)\right) \cdot \sin \left(\mathsf{fma}\left(-\frac{t}{3}, \frac{z}{1}, \frac{t}{3} \cdot \frac{z}{1}\right)\right)\right) - \frac{a}{b \cdot 3}\]
    11. Using strategy rm
    12. Applied add-cube-cbrt15.6

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

    if 0.9999999999999997 < (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.4

      \[\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. Simplified15.4

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \color{blue}{\mathsf{fma}\left(\frac{-1}{2}, y \cdot y, 1\right)} - \frac{a}{b \cdot 3}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification15.5

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

Reproduce

herbie shell --seed 2019200 +o rules:numerics
(FPCore (x y z t a b)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, K"

  :herbie-target
  (if (< z -1.3793337487235141e+129) (- (* (* 2.0 (sqrt x)) (cos (- (/ 1.0 y) (/ (/ 0.3333333333333333 z) t)))) (/ (/ a 3.0) b)) (if (< z 3.516290613555987e+106) (- (* (* (sqrt x) 2.0) (cos (- y (* (/ t 3.0) z)))) (/ (/ a 3.0) b)) (- (* (cos (- y (/ (/ 0.3333333333333333 z) t))) (* 2.0 (sqrt x))) (/ (/ a b) 3.0))))

  (- (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) (/ a (* b 3.0))))