Average Error: 20.3 → 17.8
Time: 10.5s
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.99990718372146614:\\ \;\;\;\;\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right) + \left(\sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right)} \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right)}\right) \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\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.99990718372146614:\\
\;\;\;\;\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right) + \left(\sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right)} \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right)}\right) \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\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 r703045 = 2.0;
        double r703046 = x;
        double r703047 = sqrt(r703046);
        double r703048 = r703045 * r703047;
        double r703049 = y;
        double r703050 = z;
        double r703051 = t;
        double r703052 = r703050 * r703051;
        double r703053 = 3.0;
        double r703054 = r703052 / r703053;
        double r703055 = r703049 - r703054;
        double r703056 = cos(r703055);
        double r703057 = r703048 * r703056;
        double r703058 = a;
        double r703059 = b;
        double r703060 = r703059 * r703053;
        double r703061 = r703058 / r703060;
        double r703062 = r703057 - r703061;
        return r703062;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r703063 = y;
        double r703064 = z;
        double r703065 = t;
        double r703066 = r703064 * r703065;
        double r703067 = 3.0;
        double r703068 = r703066 / r703067;
        double r703069 = r703063 - r703068;
        double r703070 = cos(r703069);
        double r703071 = 0.9999071837214661;
        bool r703072 = r703070 <= r703071;
        double r703073 = 2.0;
        double r703074 = x;
        double r703075 = sqrt(r703074);
        double r703076 = r703073 * r703075;
        double r703077 = cos(r703063);
        double r703078 = 0.3333333333333333;
        double r703079 = r703065 * r703064;
        double r703080 = r703078 * r703079;
        double r703081 = cos(r703080);
        double r703082 = r703077 * r703081;
        double r703083 = r703076 * r703082;
        double r703084 = sin(r703063);
        double r703085 = sin(r703080);
        double r703086 = r703084 * r703085;
        double r703087 = r703076 * r703086;
        double r703088 = cbrt(r703087);
        double r703089 = r703088 * r703088;
        double r703090 = r703089 * r703088;
        double r703091 = r703083 + r703090;
        double r703092 = a;
        double r703093 = b;
        double r703094 = r703093 * r703067;
        double r703095 = r703092 / r703094;
        double r703096 = r703091 - r703095;
        double r703097 = 1.0;
        double r703098 = 0.5;
        double r703099 = 2.0;
        double r703100 = pow(r703063, r703099);
        double r703101 = r703098 * r703100;
        double r703102 = r703097 - r703101;
        double r703103 = r703076 * r703102;
        double r703104 = r703103 - r703095;
        double r703105 = r703072 ? r703096 : r703104;
        return r703105;
}

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.3
Target18.4
Herbie17.8
\[\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.9999071837214661

    1. Initial program 19.9

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

      \[\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. Applied distribute-lft-in19.4

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

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

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

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

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

    1. Initial program 20.9

      \[\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.2

      \[\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.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;\cos \left(y - \frac{z \cdot t}{3}\right) \le 0.99990718372146614:\\ \;\;\;\;\left(\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right) + \left(\sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right)} \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\right)}\right) \cdot \sqrt[3]{\left(2 \cdot \sqrt{x}\right) \cdot \left(\sin y \cdot \sin \left(0.333333333333333315 \cdot \left(t \cdot z\right)\right)\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 2020046 +o rules:numerics
(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))))