Average Error: 0.1 → 0.6
Time: 22.7s
Precision: 64
\[x \cdot \cos y - z \cdot \sin y\]
\[\mathsf{fma}\left(x, \cos y, -\left(\sin y \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot \sqrt[3]{z}\right)\]
x \cdot \cos y - z \cdot \sin y
\mathsf{fma}\left(x, \cos y, -\left(\sin y \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot \sqrt[3]{z}\right)
double f(double x, double y, double z) {
        double r120417 = x;
        double r120418 = y;
        double r120419 = cos(r120418);
        double r120420 = r120417 * r120419;
        double r120421 = z;
        double r120422 = sin(r120418);
        double r120423 = r120421 * r120422;
        double r120424 = r120420 - r120423;
        return r120424;
}

double f(double x, double y, double z) {
        double r120425 = x;
        double r120426 = y;
        double r120427 = cos(r120426);
        double r120428 = sin(r120426);
        double r120429 = z;
        double r120430 = cbrt(r120429);
        double r120431 = r120430 * r120430;
        double r120432 = r120428 * r120431;
        double r120433 = r120432 * r120430;
        double r120434 = -r120433;
        double r120435 = fma(r120425, r120427, r120434);
        return r120435;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Derivation

  1. Initial program 0.1

    \[x \cdot \cos y - z \cdot \sin y\]
  2. Using strategy rm
  3. Applied fma-neg0.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(x, \cos y, -z \cdot \sin y\right)}\]
  4. Simplified0.1

    \[\leadsto \mathsf{fma}\left(x, \cos y, \color{blue}{-\sin y \cdot z}\right)\]
  5. Using strategy rm
  6. Applied add-cube-cbrt0.6

    \[\leadsto \mathsf{fma}\left(x, \cos y, -\sin y \cdot \color{blue}{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right)}\right)\]
  7. Applied associate-*r*0.6

    \[\leadsto \mathsf{fma}\left(x, \cos y, -\color{blue}{\left(\sin y \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot \sqrt[3]{z}}\right)\]
  8. Final simplification0.6

    \[\leadsto \mathsf{fma}\left(x, \cos y, -\left(\sin y \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot \sqrt[3]{z}\right)\]

Reproduce

herbie shell --seed 2019303 +o rules:numerics
(FPCore (x y z)
  :name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, A"
  :precision binary64
  (- (* x (cos y)) (* z (sin y))))