Average Error: 46.3 → 44.2
Time: 1.1m
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.042995466634546817409234316353768133463 \cdot 10^{-49}:\\ \;\;\;\;x\\ \mathbf{elif}\;t \le 2.675034367401779051171497280188193730335 \cdot 10^{129}:\\ \;\;\;\;\cos \left(\frac{1}{\frac{\frac{\frac{16}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{b}}{\sqrt[3]{t}}} \cdot \left(\left(\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}\right) \cdot \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)\right)\right) \cdot x\\ \mathbf{else}:\\ \;\;\;\;x\\ \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.042995466634546817409234316353768133463 \cdot 10^{-49}:\\
\;\;\;\;x\\

\mathbf{elif}\;t \le 2.675034367401779051171497280188193730335 \cdot 10^{129}:\\
\;\;\;\;\cos \left(\frac{1}{\frac{\frac{\frac{16}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{b}}{\sqrt[3]{t}}} \cdot \left(\left(\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}\right) \cdot \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)\right)\right) \cdot x\\

\mathbf{else}:\\
\;\;\;\;x\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r36825223 = x;
        double r36825224 = y;
        double r36825225 = 2.0;
        double r36825226 = r36825224 * r36825225;
        double r36825227 = 1.0;
        double r36825228 = r36825226 + r36825227;
        double r36825229 = z;
        double r36825230 = r36825228 * r36825229;
        double r36825231 = t;
        double r36825232 = r36825230 * r36825231;
        double r36825233 = 16.0;
        double r36825234 = r36825232 / r36825233;
        double r36825235 = cos(r36825234);
        double r36825236 = r36825223 * r36825235;
        double r36825237 = a;
        double r36825238 = r36825237 * r36825225;
        double r36825239 = r36825238 + r36825227;
        double r36825240 = b;
        double r36825241 = r36825239 * r36825240;
        double r36825242 = r36825241 * r36825231;
        double r36825243 = r36825242 / r36825233;
        double r36825244 = cos(r36825243);
        double r36825245 = r36825236 * r36825244;
        return r36825245;
}

double f(double x, double __attribute__((unused)) y, double __attribute__((unused)) z, double t, double a, double b) {
        double r36825246 = t;
        double r36825247 = -1.0429954666345468e-49;
        bool r36825248 = r36825246 <= r36825247;
        double r36825249 = x;
        double r36825250 = 2.675034367401779e+129;
        bool r36825251 = r36825246 <= r36825250;
        double r36825252 = 1.0;
        double r36825253 = 16.0;
        double r36825254 = 2.0;
        double r36825255 = a;
        double r36825256 = 1.0;
        double r36825257 = fma(r36825254, r36825255, r36825256);
        double r36825258 = cbrt(r36825257);
        double r36825259 = r36825253 / r36825258;
        double r36825260 = b;
        double r36825261 = r36825259 / r36825260;
        double r36825262 = cbrt(r36825246);
        double r36825263 = r36825261 / r36825262;
        double r36825264 = r36825252 / r36825263;
        double r36825265 = r36825258 * r36825258;
        double r36825266 = r36825262 * r36825262;
        double r36825267 = r36825265 * r36825266;
        double r36825268 = r36825264 * r36825267;
        double r36825269 = cos(r36825268);
        double r36825270 = r36825269 * r36825249;
        double r36825271 = r36825251 ? r36825270 : r36825249;
        double r36825272 = r36825248 ? r36825249 : r36825271;
        return r36825272;
}

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

Original46.3
Target44.5
Herbie44.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. Split input into 2 regimes
  2. if t < -1.0429954666345468e-49 or 2.675034367401779e+129 < t

    1. Initial program 58.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 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. Taylor expanded around 0 55.0

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

    if -1.0429954666345468e-49 < t < 2.675034367401779e+129

    1. Initial program 36.4

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

      \[\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 clear-num36.1

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \color{blue}{\left(\frac{1}{\frac{16}{\left(\left(a \cdot 2 + 1\right) \cdot b\right) \cdot t}}\right)}\]
    5. Simplified36.0

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{1}{\color{blue}{\frac{\frac{\frac{16}{\mathsf{fma}\left(2, a, 1\right)}}{b}}{t}}}\right)\]
    6. Using strategy rm
    7. Applied add-cube-cbrt36.2

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{1}{\frac{\frac{\frac{16}{\mathsf{fma}\left(2, a, 1\right)}}{b}}{\color{blue}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}}\right)\]
    8. Applied *-un-lft-identity36.2

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{1}{\frac{\frac{\frac{16}{\mathsf{fma}\left(2, a, 1\right)}}{\color{blue}{1 \cdot b}}}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}\right)\]
    9. Applied add-cube-cbrt36.1

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{1}{\frac{\frac{\frac{16}{\color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}}{1 \cdot b}}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}\right)\]
    10. Applied *-un-lft-identity36.1

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{1}{\frac{\frac{\frac{\color{blue}{1 \cdot 16}}{\left(\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{1 \cdot b}}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}\right)\]
    11. Applied times-frac36.2

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{1}{\frac{\frac{\color{blue}{\frac{1}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}} \cdot \frac{16}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}}{1 \cdot b}}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}\right)\]
    12. Applied times-frac36.1

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{1}{\frac{\color{blue}{\frac{\frac{1}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{1} \cdot \frac{\frac{16}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{b}}}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}\right)\]
    13. Applied times-frac35.8

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{1}{\color{blue}{\frac{\frac{\frac{1}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{1}}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\frac{\frac{16}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{b}}{\sqrt[3]{t}}}}\right)\]
    14. Applied *-un-lft-identity35.8

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \left(\frac{\color{blue}{1 \cdot 1}}{\frac{\frac{\frac{1}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{1}}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\frac{\frac{16}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{b}}{\sqrt[3]{t}}}\right)\]
    15. Applied times-frac35.7

      \[\leadsto \left(x \cdot 1\right) \cdot \cos \color{blue}{\left(\frac{1}{\frac{\frac{\frac{1}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{1}}{\sqrt[3]{t} \cdot \sqrt[3]{t}}} \cdot \frac{1}{\frac{\frac{\frac{16}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{b}}{\sqrt[3]{t}}}\right)}\]
    16. Simplified35.7

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.042995466634546817409234316353768133463 \cdot 10^{-49}:\\ \;\;\;\;x\\ \mathbf{elif}\;t \le 2.675034367401779051171497280188193730335 \cdot 10^{129}:\\ \;\;\;\;\cos \left(\frac{1}{\frac{\frac{\frac{16}{\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}}}{b}}{\sqrt[3]{t}}} \cdot \left(\left(\sqrt[3]{\mathsf{fma}\left(2, a, 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, a, 1\right)}\right) \cdot \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)\right)\right) \cdot x\\ \mathbf{else}:\\ \;\;\;\;x\\ \end{array}\]

Reproduce

herbie shell --seed 2019169 +o rules:numerics
(FPCore (x y z t a b)
  :name "Codec.Picture.Jpg.FastDct:referenceDct from JuicyPixels-3.2.6.1"

  :herbie-target
  (* x (cos (* (/ b 16.0) (/ t (+ (- 1.0 (* a 2.0)) (pow (* a 2.0) 2.0))))))

  (* (* x (cos (/ (* (* (+ (* y 2.0) 1.0) z) t) 16.0))) (cos (/ (* (* (+ (* a 2.0) 1.0) b) t) 16.0))))