Average Error: 0.1 → 0.9
Time: 6.1s
Precision: 64
\[x \cdot \cos y - z \cdot \sin y\]
\[\left(\sqrt[3]{x \cdot \cos y} \cdot \sqrt[3]{x \cdot \cos y}\right) \cdot \sqrt[3]{x \cdot \cos y} - z \cdot \sin y\]
x \cdot \cos y - z \cdot \sin y
\left(\sqrt[3]{x \cdot \cos y} \cdot \sqrt[3]{x \cdot \cos y}\right) \cdot \sqrt[3]{x \cdot \cos y} - z \cdot \sin y
double f(double x, double y, double z) {
        double r167001 = x;
        double r167002 = y;
        double r167003 = cos(r167002);
        double r167004 = r167001 * r167003;
        double r167005 = z;
        double r167006 = sin(r167002);
        double r167007 = r167005 * r167006;
        double r167008 = r167004 - r167007;
        return r167008;
}

double f(double x, double y, double z) {
        double r167009 = x;
        double r167010 = y;
        double r167011 = cos(r167010);
        double r167012 = r167009 * r167011;
        double r167013 = cbrt(r167012);
        double r167014 = r167013 * r167013;
        double r167015 = r167014 * r167013;
        double r167016 = z;
        double r167017 = sin(r167010);
        double r167018 = r167016 * r167017;
        double r167019 = r167015 - r167018;
        return r167019;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[x \cdot \cos y - z \cdot \sin y\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.9

    \[\leadsto \color{blue}{\left(\sqrt[3]{x \cdot \cos y} \cdot \sqrt[3]{x \cdot \cos y}\right) \cdot \sqrt[3]{x \cdot \cos y}} - z \cdot \sin y\]
  4. Final simplification0.9

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

Reproduce

herbie shell --seed 2020024 +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))))