Average Error: 0.1 → 0.6
Time: 5.2s
Precision: 64
\[x \cdot \cos y - z \cdot \sin y\]
\[x \cdot \cos y - \left(z \cdot \left(\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}\right)\right) \cdot \sqrt[3]{\sin y}\]
x \cdot \cos y - z \cdot \sin y
x \cdot \cos y - \left(z \cdot \left(\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}\right)\right) \cdot \sqrt[3]{\sin y}
double f(double x, double y, double z) {
        double r186751 = x;
        double r186752 = y;
        double r186753 = cos(r186752);
        double r186754 = r186751 * r186753;
        double r186755 = z;
        double r186756 = sin(r186752);
        double r186757 = r186755 * r186756;
        double r186758 = r186754 - r186757;
        return r186758;
}

double f(double x, double y, double z) {
        double r186759 = x;
        double r186760 = y;
        double r186761 = cos(r186760);
        double r186762 = r186759 * r186761;
        double r186763 = z;
        double r186764 = sin(r186760);
        double r186765 = cbrt(r186764);
        double r186766 = r186765 * r186765;
        double r186767 = r186763 * r186766;
        double r186768 = r186767 * r186765;
        double r186769 = r186762 - r186768;
        return r186769;
}

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.6

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

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

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

Reproduce

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