Average Error: 46.2 → 45.2
Time: 26.7s
Precision: 64
\[\left(x \cdot \cos \left(\frac{\left(\left(y \cdot 2 + 1\right) \cdot z\right) \cdot t}{16}\right)\right) \cdot \cos \left(\frac{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}{16}\right)\]
\[x \cdot \cos \left(\frac{\left(\sqrt[3]{y \cdot 2 + 1} \cdot \sqrt[3]{y \cdot 2 + 1}\right) \cdot \left(\left(\sqrt[3]{y \cdot 2 + 1} \cdot z\right) \cdot t\right)}{16}\right)\]
\left(x \cdot \cos \left(\frac{\left(\left(y \cdot 2 + 1\right) \cdot z\right) \cdot t}{16}\right)\right) \cdot \cos \left(\frac{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}{16}\right)
x \cdot \cos \left(\frac{\left(\sqrt[3]{y \cdot 2 + 1} \cdot \sqrt[3]{y \cdot 2 + 1}\right) \cdot \left(\left(\sqrt[3]{y \cdot 2 + 1} \cdot z\right) \cdot t\right)}{16}\right)
double f(double x, double y, double z, double t, double a, double b) {
        double r687422 = x;
        double r687423 = y;
        double r687424 = 2.0;
        double r687425 = r687423 * r687424;
        double r687426 = 1.0;
        double r687427 = r687425 + r687426;
        double r687428 = z;
        double r687429 = r687427 * r687428;
        double r687430 = t;
        double r687431 = r687429 * r687430;
        double r687432 = 16.0;
        double r687433 = r687431 / r687432;
        double r687434 = cos(r687433);
        double r687435 = r687422 * r687434;
        double r687436 = a;
        double r687437 = r687436 * r687424;
        double r687438 = r687437 + r687426;
        double r687439 = b;
        double r687440 = r687438 * r687439;
        double r687441 = r687440 * r687430;
        double r687442 = r687441 / r687432;
        double r687443 = cos(r687442);
        double r687444 = r687435 * r687443;
        return r687444;
}

double f(double x, double y, double z, double t, double __attribute__((unused)) a, double __attribute__((unused)) b) {
        double r687445 = x;
        double r687446 = y;
        double r687447 = 2.0;
        double r687448 = r687446 * r687447;
        double r687449 = 1.0;
        double r687450 = r687448 + r687449;
        double r687451 = cbrt(r687450);
        double r687452 = r687451 * r687451;
        double r687453 = z;
        double r687454 = r687451 * r687453;
        double r687455 = t;
        double r687456 = r687454 * r687455;
        double r687457 = r687452 * r687456;
        double r687458 = 16.0;
        double r687459 = r687457 / r687458;
        double r687460 = cos(r687459);
        double r687461 = r687445 * r687460;
        return r687461;
}

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

Original46.2
Target44.4
Herbie45.2
\[x \cdot \cos \left(\frac{b}{16} \cdot \frac{t}{\left(1 - a \cdot 2\right) + {\left(a \cdot 2\right)}^{2}}\right)\]

Derivation

  1. Initial program 46.2

    \[\left(x \cdot \cos \left(\frac{\left(\left(y \cdot 2 + 1\right) \cdot z\right) \cdot t}{16}\right)\right) \cdot \cos \left(\frac{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}{16}\right)\]
  2. Taylor expanded around 0 45.4

    \[\leadsto \left(x \cdot \cos \left(\frac{\left(\left(y \cdot 2 + 1\right) \cdot z\right) \cdot t}{16}\right)\right) \cdot \cos \left(\frac{\color{blue}{0}}{16}\right)\]
  3. Using strategy rm
  4. Applied add-cube-cbrt45.4

    \[\leadsto \left(x \cdot \cos \left(\frac{\left(\color{blue}{\left(\left(\sqrt[3]{y \cdot 2 + 1} \cdot \sqrt[3]{y \cdot 2 + 1}\right) \cdot \sqrt[3]{y \cdot 2 + 1}\right)} \cdot z\right) \cdot t}{16}\right)\right) \cdot \cos \left(\frac{0}{16}\right)\]
  5. Applied associate-*l*45.4

    \[\leadsto \left(x \cdot \cos \left(\frac{\color{blue}{\left(\left(\sqrt[3]{y \cdot 2 + 1} \cdot \sqrt[3]{y \cdot 2 + 1}\right) \cdot \left(\sqrt[3]{y \cdot 2 + 1} \cdot z\right)\right)} \cdot t}{16}\right)\right) \cdot \cos \left(\frac{0}{16}\right)\]
  6. Using strategy rm
  7. Applied associate-*l*45.2

    \[\leadsto \left(x \cdot \cos \left(\frac{\color{blue}{\left(\sqrt[3]{y \cdot 2 + 1} \cdot \sqrt[3]{y \cdot 2 + 1}\right) \cdot \left(\left(\sqrt[3]{y \cdot 2 + 1} \cdot z\right) \cdot t\right)}}{16}\right)\right) \cdot \cos \left(\frac{0}{16}\right)\]
  8. Final simplification45.2

    \[\leadsto x \cdot \cos \left(\frac{\left(\sqrt[3]{y \cdot 2 + 1} \cdot \sqrt[3]{y \cdot 2 + 1}\right) \cdot \left(\left(\sqrt[3]{y \cdot 2 + 1} \cdot z\right) \cdot t\right)}{16}\right)\]

Reproduce

herbie shell --seed 2019235 
(FPCore (x y z t a b)
  :name "Codec.Picture.Jpg.FastDct:referenceDct from JuicyPixels-3.2.6.1"
  :precision binary64

  :herbie-target
  (* x (cos (* (/ b 16) (/ t (+ (- 1 (* a 2)) (pow (* a 2) 2))))))

  (* (* x (cos (/ (* (* (+ (* y 2) 1) z) t) 16))) (cos (/ (* (* (+ (* a 2) 1) b) t) 16))))