Average Error: 46.2 → 44.8
Time: 11.0s
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)\]
\[\begin{array}{l} \mathbf{if}\;t \le -1.15995610624310824 \cdot 10^{97}:\\ \;\;\;\;x\\ \mathbf{elif}\;t \le 939077.084066903102:\\ \;\;\;\;\left(x \cdot \cos \left(\frac{\left(y \cdot 2 + 1\right) \cdot \left(z \cdot t\right)}{16}\right)\right) \cdot \cos \left(\frac{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}{16}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot 1\right) \cdot \cos \left(\frac{a \cdot 2 + 1}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \frac{b \cdot t}{\sqrt[3]{16}}\right)\\ \end{array}\]
\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)
\begin{array}{l}
\mathbf{if}\;t \le -1.15995610624310824 \cdot 10^{97}:\\
\;\;\;\;x\\

\mathbf{elif}\;t \le 939077.084066903102:\\
\;\;\;\;\left(x \cdot \cos \left(\frac{\left(y \cdot 2 + 1\right) \cdot \left(z \cdot t\right)}{16}\right)\right) \cdot \cos \left(\frac{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}{16}\right)\\

\mathbf{else}:\\
\;\;\;\;\left(x \cdot 1\right) \cdot \cos \left(\frac{a \cdot 2 + 1}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \frac{b \cdot t}{\sqrt[3]{16}}\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r971594 = x;
        double r971595 = y;
        double r971596 = 2.0;
        double r971597 = r971595 * r971596;
        double r971598 = 1.0;
        double r971599 = r971597 + r971598;
        double r971600 = z;
        double r971601 = r971599 * r971600;
        double r971602 = t;
        double r971603 = r971601 * r971602;
        double r971604 = 16.0;
        double r971605 = r971603 / r971604;
        double r971606 = cos(r971605);
        double r971607 = r971594 * r971606;
        double r971608 = a;
        double r971609 = r971608 * r971596;
        double r971610 = r971609 + r971598;
        double r971611 = b;
        double r971612 = r971610 * r971611;
        double r971613 = r971612 * r971602;
        double r971614 = r971613 / r971604;
        double r971615 = cos(r971614);
        double r971616 = r971607 * r971615;
        return r971616;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r971617 = t;
        double r971618 = -1.1599561062431082e+97;
        bool r971619 = r971617 <= r971618;
        double r971620 = x;
        double r971621 = 939077.0840669031;
        bool r971622 = r971617 <= r971621;
        double r971623 = y;
        double r971624 = 2.0;
        double r971625 = r971623 * r971624;
        double r971626 = 1.0;
        double r971627 = r971625 + r971626;
        double r971628 = z;
        double r971629 = r971628 * r971617;
        double r971630 = r971627 * r971629;
        double r971631 = 16.0;
        double r971632 = r971630 / r971631;
        double r971633 = cos(r971632);
        double r971634 = r971620 * r971633;
        double r971635 = a;
        double r971636 = r971635 * r971624;
        double r971637 = r971636 + r971626;
        double r971638 = b;
        double r971639 = r971637 * r971638;
        double r971640 = r971639 * r971617;
        double r971641 = r971640 / r971631;
        double r971642 = cos(r971641);
        double r971643 = r971634 * r971642;
        double r971644 = 1.0;
        double r971645 = r971620 * r971644;
        double r971646 = cbrt(r971631);
        double r971647 = r971646 * r971646;
        double r971648 = r971637 / r971647;
        double r971649 = r971638 * r971617;
        double r971650 = r971649 / r971646;
        double r971651 = r971648 * r971650;
        double r971652 = cos(r971651);
        double r971653 = r971645 * r971652;
        double r971654 = r971622 ? r971643 : r971653;
        double r971655 = r971619 ? r971620 : r971654;
        return r971655;
}

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.5
Herbie44.8
\[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. Split input into 3 regimes
  2. if t < -1.1599561062431082e+97

    1. Initial program 60.7

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

      \[\leadsto \left(x \cdot \color{blue}{1}\right) \cdot \cos \left(\frac{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}{16}\right)\]
    3. Taylor expanded around 0 55.9

      \[\leadsto \color{blue}{x}\]

    if -1.1599561062431082e+97 < t < 939077.0840669031

    1. Initial program 36.7

      \[\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. Using strategy rm
    3. Applied associate-*l*36.2

      \[\leadsto \left(x \cdot \cos \left(\frac{\color{blue}{\left(y \cdot 2 + 1\right) \cdot \left(z \cdot t\right)}}{16}\right)\right) \cdot \cos \left(\frac{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}{16}\right)\]

    if 939077.0840669031 < t

    1. Initial program 58.8

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

      \[\leadsto \left(x \cdot \color{blue}{1}\right) \cdot \cos \left(\frac{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}{16}\right)\]
    3. Using strategy rm
    4. Applied associate-*l*57.5

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{\color{blue}{\left(a \cdot 2 + 1\right) \cdot \left(b \cdot t\right)}}{16}\right)\]
    5. Using strategy rm
    6. Applied add-cube-cbrt57.4

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

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \color{blue}{\left(\frac{a \cdot 2 + 1}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \frac{b \cdot t}{\sqrt[3]{16}}\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification44.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.15995610624310824 \cdot 10^{97}:\\ \;\;\;\;x\\ \mathbf{elif}\;t \le 939077.084066903102:\\ \;\;\;\;\left(x \cdot \cos \left(\frac{\left(y \cdot 2 + 1\right) \cdot \left(z \cdot t\right)}{16}\right)\right) \cdot \cos \left(\frac{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}{16}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot 1\right) \cdot \cos \left(\frac{a \cdot 2 + 1}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \frac{b \cdot t}{\sqrt[3]{16}}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020020 
(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))))