Average Error: 0.1 → 0.1
Time: 18.6s
Precision: 64
\[x \cdot \cos y - z \cdot \sin y\]
\[x \cdot \cos y - z \cdot \sin y\]
x \cdot \cos y - z \cdot \sin y
x \cdot \cos y - z \cdot \sin y
double f(double x, double y, double z) {
        double r7546325 = x;
        double r7546326 = y;
        double r7546327 = cos(r7546326);
        double r7546328 = r7546325 * r7546327;
        double r7546329 = z;
        double r7546330 = sin(r7546326);
        double r7546331 = r7546329 * r7546330;
        double r7546332 = r7546328 - r7546331;
        return r7546332;
}

double f(double x, double y, double z) {
        double r7546333 = x;
        double r7546334 = y;
        double r7546335 = cos(r7546334);
        double r7546336 = r7546333 * r7546335;
        double r7546337 = z;
        double r7546338 = sin(r7546334);
        double r7546339 = r7546337 * r7546338;
        double r7546340 = r7546336 - r7546339;
        return r7546340;
}

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 *-commutative0.1

    \[\leadsto \color{blue}{\cos y \cdot x} - z \cdot \sin y\]
  4. Final simplification0.1

    \[\leadsto x \cdot \cos y - z \cdot \sin y\]

Reproduce

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