Average Error: 20.0 → 17.7
Time: 12.3s
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}\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) \le 1.95709970069839588 \cdot 10^{140}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\left(\sqrt[3]{\frac{z \cdot t}{3}} \cdot \sqrt[3]{\frac{z \cdot t}{3}}\right) \cdot \left(\left(\sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}} \cdot \sqrt[3]{\frac{\sqrt[3]{z \cdot t}}{\sqrt[3]{3}}}\right) \cdot \sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}}\right)\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{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}\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) \le 1.95709970069839588 \cdot 10^{140}:\\
\;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\left(\sqrt[3]{\frac{z \cdot t}{3}} \cdot \sqrt[3]{\frac{z \cdot t}{3}}\right) \cdot \left(\left(\sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}} \cdot \sqrt[3]{\frac{\sqrt[3]{z \cdot t}}{\sqrt[3]{3}}}\right) \cdot \sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}}\right)\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{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 r865182 = 2.0;
        double r865183 = x;
        double r865184 = sqrt(r865183);
        double r865185 = r865182 * r865184;
        double r865186 = y;
        double r865187 = z;
        double r865188 = t;
        double r865189 = r865187 * r865188;
        double r865190 = 3.0;
        double r865191 = r865189 / r865190;
        double r865192 = r865186 - r865191;
        double r865193 = cos(r865192);
        double r865194 = r865185 * r865193;
        double r865195 = a;
        double r865196 = b;
        double r865197 = r865196 * r865190;
        double r865198 = r865195 / r865197;
        double r865199 = r865194 - r865198;
        return r865199;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r865200 = 2.0;
        double r865201 = x;
        double r865202 = sqrt(r865201);
        double r865203 = r865200 * r865202;
        double r865204 = y;
        double r865205 = z;
        double r865206 = t;
        double r865207 = r865205 * r865206;
        double r865208 = 3.0;
        double r865209 = r865207 / r865208;
        double r865210 = r865204 - r865209;
        double r865211 = cos(r865210);
        double r865212 = r865203 * r865211;
        double r865213 = 1.957099700698396e+140;
        bool r865214 = r865212 <= r865213;
        double r865215 = cos(r865204);
        double r865216 = cbrt(r865209);
        double r865217 = r865216 * r865216;
        double r865218 = cbrt(r865216);
        double r865219 = cbrt(r865207);
        double r865220 = cbrt(r865208);
        double r865221 = r865219 / r865220;
        double r865222 = cbrt(r865221);
        double r865223 = r865218 * r865222;
        double r865224 = r865223 * r865218;
        double r865225 = r865217 * r865224;
        double r865226 = cos(r865225);
        double r865227 = r865215 * r865226;
        double r865228 = sin(r865204);
        double r865229 = sin(r865209);
        double r865230 = r865228 * r865229;
        double r865231 = r865227 + r865230;
        double r865232 = r865203 * r865231;
        double r865233 = a;
        double r865234 = b;
        double r865235 = r865234 * r865208;
        double r865236 = r865233 / r865235;
        double r865237 = r865232 - r865236;
        double r865238 = 1.0;
        double r865239 = 0.5;
        double r865240 = 2.0;
        double r865241 = pow(r865204, r865240);
        double r865242 = r865239 * r865241;
        double r865243 = r865238 - r865242;
        double r865244 = r865203 * r865243;
        double r865245 = r865244 - r865236;
        double r865246 = r865214 ? r865237 : r865245;
        return r865246;
}

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.0
Target18.0
Herbie17.7
\[\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 (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0)))) < 1.957099700698396e+140

    1. Initial program 13.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-diff13.5

      \[\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. Using strategy rm
    5. Applied add-cube-cbrt13.5

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

      \[\leadsto \left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\left(\sqrt[3]{\frac{z \cdot t}{3}} \cdot \sqrt[3]{\frac{z \cdot t}{3}}\right) \cdot \color{blue}{\left(\left(\sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}} \cdot \sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}}\right) \cdot \sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}}\right)}\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{3}\right)\right) - \frac{a}{b \cdot 3}\]
    8. Using strategy rm
    9. Applied cbrt-div13.5

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

    if 1.957099700698396e+140 < (* (* 2.0 (sqrt x)) (cos (- y (/ (* z t) 3.0))))

    1. Initial program 56.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(2 \cdot \sqrt{x}\right) \cdot \cos \left(y - \frac{z \cdot t}{3}\right) \le 1.95709970069839588 \cdot 10^{140}:\\ \;\;\;\;\left(2 \cdot \sqrt{x}\right) \cdot \left(\cos y \cdot \cos \left(\left(\sqrt[3]{\frac{z \cdot t}{3}} \cdot \sqrt[3]{\frac{z \cdot t}{3}}\right) \cdot \left(\left(\sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}} \cdot \sqrt[3]{\frac{\sqrt[3]{z \cdot t}}{\sqrt[3]{3}}}\right) \cdot \sqrt[3]{\sqrt[3]{\frac{z \cdot t}{3}}}\right)\right) + \sin y \cdot \sin \left(\frac{z \cdot t}{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 2020062 
(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))))