Average Error: 19.9 → 16.1
Time: 36.8s
Precision: 64
\[\left(2.0 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3.0}\right) - \frac{a}{b \cdot 3.0}\]
\[\begin{array}{l} \mathbf{if}\;z \cdot t = -\infty:\\ \;\;\;\;\mathsf{fma}\left(y \cdot y, \frac{-1}{2}, 1\right) \cdot \left(\sqrt{x} \cdot 2.0\right) - \frac{a}{b \cdot 3.0}\\ \mathbf{elif}\;z \cdot t \le 4.529717789787369 \cdot 10^{+261}:\\ \;\;\;\;\left(\cos \left(\mathsf{fma}\left(\frac{-t}{3.0}, z, z \cdot \frac{t}{3.0}\right)\right) \cdot \cos \left(\mathsf{fma}\left(1, y, \frac{-t}{3.0} \cdot z\right)\right) - \left(\cos y \cdot \sin \left(\frac{-t}{3.0} \cdot z\right) + \sin y\right) \cdot \sin \left(\mathsf{fma}\left(\frac{-t}{3.0}, z, z \cdot \frac{t}{3.0}\right)\right)\right) \cdot \left(\sqrt{x} \cdot 2.0\right) - \frac{a}{b \cdot 3.0}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y \cdot y, \frac{-1}{2}, 1\right) \cdot \left(\sqrt{x} \cdot 2.0\right) - \frac{a}{b \cdot 3.0}\\ \end{array}\]
\left(2.0 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3.0}\right) - \frac{a}{b \cdot 3.0}
\begin{array}{l}
\mathbf{if}\;z \cdot t = -\infty:\\
\;\;\;\;\mathsf{fma}\left(y \cdot y, \frac{-1}{2}, 1\right) \cdot \left(\sqrt{x} \cdot 2.0\right) - \frac{a}{b \cdot 3.0}\\

\mathbf{elif}\;z \cdot t \le 4.529717789787369 \cdot 10^{+261}:\\
\;\;\;\;\left(\cos \left(\mathsf{fma}\left(\frac{-t}{3.0}, z, z \cdot \frac{t}{3.0}\right)\right) \cdot \cos \left(\mathsf{fma}\left(1, y, \frac{-t}{3.0} \cdot z\right)\right) - \left(\cos y \cdot \sin \left(\frac{-t}{3.0} \cdot z\right) + \sin y\right) \cdot \sin \left(\mathsf{fma}\left(\frac{-t}{3.0}, z, z \cdot \frac{t}{3.0}\right)\right)\right) \cdot \left(\sqrt{x} \cdot 2.0\right) - \frac{a}{b \cdot 3.0}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r13412604 = 2.0;
        double r13412605 = x;
        double r13412606 = sqrt(r13412605);
        double r13412607 = r13412604 * r13412606;
        double r13412608 = y;
        double r13412609 = z;
        double r13412610 = t;
        double r13412611 = r13412609 * r13412610;
        double r13412612 = 3.0;
        double r13412613 = r13412611 / r13412612;
        double r13412614 = r13412608 - r13412613;
        double r13412615 = cos(r13412614);
        double r13412616 = r13412607 * r13412615;
        double r13412617 = a;
        double r13412618 = b;
        double r13412619 = r13412618 * r13412612;
        double r13412620 = r13412617 / r13412619;
        double r13412621 = r13412616 - r13412620;
        return r13412621;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r13412622 = z;
        double r13412623 = t;
        double r13412624 = r13412622 * r13412623;
        double r13412625 = -inf.0;
        bool r13412626 = r13412624 <= r13412625;
        double r13412627 = y;
        double r13412628 = r13412627 * r13412627;
        double r13412629 = -0.5;
        double r13412630 = 1.0;
        double r13412631 = fma(r13412628, r13412629, r13412630);
        double r13412632 = x;
        double r13412633 = sqrt(r13412632);
        double r13412634 = 2.0;
        double r13412635 = r13412633 * r13412634;
        double r13412636 = r13412631 * r13412635;
        double r13412637 = a;
        double r13412638 = b;
        double r13412639 = 3.0;
        double r13412640 = r13412638 * r13412639;
        double r13412641 = r13412637 / r13412640;
        double r13412642 = r13412636 - r13412641;
        double r13412643 = 4.529717789787369e+261;
        bool r13412644 = r13412624 <= r13412643;
        double r13412645 = -r13412623;
        double r13412646 = r13412645 / r13412639;
        double r13412647 = r13412623 / r13412639;
        double r13412648 = r13412622 * r13412647;
        double r13412649 = fma(r13412646, r13412622, r13412648);
        double r13412650 = cos(r13412649);
        double r13412651 = r13412646 * r13412622;
        double r13412652 = fma(r13412630, r13412627, r13412651);
        double r13412653 = cos(r13412652);
        double r13412654 = r13412650 * r13412653;
        double r13412655 = cos(r13412627);
        double r13412656 = sin(r13412651);
        double r13412657 = r13412655 * r13412656;
        double r13412658 = sin(r13412627);
        double r13412659 = r13412657 + r13412658;
        double r13412660 = sin(r13412649);
        double r13412661 = r13412659 * r13412660;
        double r13412662 = r13412654 - r13412661;
        double r13412663 = r13412662 * r13412635;
        double r13412664 = r13412663 - r13412641;
        double r13412665 = r13412644 ? r13412664 : r13412642;
        double r13412666 = r13412626 ? r13412642 : r13412665;
        return r13412666;
}

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

Original19.9
Target18.3
Herbie16.1
\[\begin{array}{l} \mathbf{if}\;z \lt -1.3793337487235141 \cdot 10^{+129}:\\ \;\;\;\;\left(2.0 \cdot \sqrt{x}\right) \cdot \cos \left(\frac{1}{y} - \frac{\frac{0.3333333333333333}{z}}{t}\right) - \frac{\frac{a}{3.0}}{b}\\ \mathbf{elif}\;z \lt 3.516290613555987 \cdot 10^{+106}:\\ \;\;\;\;\left(\sqrt{x} \cdot 2.0\right) \cdot \cos \left(y - \frac{t}{3.0} \cdot z\right) - \frac{\frac{a}{3.0}}{b}\\ \mathbf{else}:\\ \;\;\;\;\cos \left(y - \frac{\frac{0.3333333333333333}{z}}{t}\right) \cdot \left(2.0 \cdot \sqrt{x}\right) - \frac{\frac{a}{b}}{3.0}\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if (* z t) < -inf.0 or 4.529717789787369e+261 < (* z t)

    1. Initial program 58.5

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

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

      \[\leadsto \left(2.0 \cdot \sqrt{x}\right) \cdot \color{blue}{\mathsf{fma}\left(y \cdot y, \frac{-1}{2}, 1\right)} - \frac{a}{b \cdot 3.0}\]

    if -inf.0 < (* z t) < 4.529717789787369e+261

    1. Initial program 13.4

      \[\left(2.0 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3.0}\right) - \frac{a}{b \cdot 3.0}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity13.4

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

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

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

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

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

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

      \[\leadsto \left(2.0 \cdot \sqrt{x}\right) \cdot \left(\cos \left(\mathsf{fma}\left(1, y, -\frac{t}{3.0} \cdot \frac{z}{1}\right)\right) \cdot \cos \left(\mathsf{fma}\left(-\frac{t}{3.0}, \frac{z}{1}, \frac{t}{3.0} \cdot \frac{z}{1}\right)\right) - \color{blue}{\left(\sin \left(1 \cdot y\right) \cdot \cos \left(-\frac{t}{3.0} \cdot \frac{z}{1}\right) + \cos \left(1 \cdot y\right) \cdot \sin \left(-\frac{t}{3.0} \cdot \frac{z}{1}\right)\right)} \cdot \sin \left(\mathsf{fma}\left(-\frac{t}{3.0}, \frac{z}{1}, \frac{t}{3.0} \cdot \frac{z}{1}\right)\right)\right) - \frac{a}{b \cdot 3.0}\]
    11. Taylor expanded around 0 11.2

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \cdot t = -\infty:\\ \;\;\;\;\mathsf{fma}\left(y \cdot y, \frac{-1}{2}, 1\right) \cdot \left(\sqrt{x} \cdot 2.0\right) - \frac{a}{b \cdot 3.0}\\ \mathbf{elif}\;z \cdot t \le 4.529717789787369 \cdot 10^{+261}:\\ \;\;\;\;\left(\cos \left(\mathsf{fma}\left(\frac{-t}{3.0}, z, z \cdot \frac{t}{3.0}\right)\right) \cdot \cos \left(\mathsf{fma}\left(1, y, \frac{-t}{3.0} \cdot z\right)\right) - \left(\cos y \cdot \sin \left(\frac{-t}{3.0} \cdot z\right) + \sin y\right) \cdot \sin \left(\mathsf{fma}\left(\frac{-t}{3.0}, z, z \cdot \frac{t}{3.0}\right)\right)\right) \cdot \left(\sqrt{x} \cdot 2.0\right) - \frac{a}{b \cdot 3.0}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y \cdot y, \frac{-1}{2}, 1\right) \cdot \left(\sqrt{x} \cdot 2.0\right) - \frac{a}{b \cdot 3.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2019156 +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 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))))