Average Error: 15.1 → 0.3
Time: 9.5s
Precision: 64
\[\sin \left(x + y\right)\]
\[\sin x \cdot \cos y + \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \left(\sqrt[3]{\cos x} \cdot \sin y\right)\]
\sin \left(x + y\right)
\sin x \cdot \cos y + \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \left(\sqrt[3]{\cos x} \cdot \sin y\right)
double f(double x, double y) {
        double r2502298 = x;
        double r2502299 = y;
        double r2502300 = r2502298 + r2502299;
        double r2502301 = sin(r2502300);
        return r2502301;
}

double f(double x, double y) {
        double r2502302 = x;
        double r2502303 = sin(r2502302);
        double r2502304 = y;
        double r2502305 = cos(r2502304);
        double r2502306 = r2502303 * r2502305;
        double r2502307 = cos(r2502302);
        double r2502308 = cbrt(r2502307);
        double r2502309 = r2502308 * r2502308;
        double r2502310 = sin(r2502304);
        double r2502311 = r2502308 * r2502310;
        double r2502312 = r2502309 * r2502311;
        double r2502313 = r2502306 + r2502312;
        return r2502313;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 15.1

    \[\sin \left(x + y\right)\]
  2. Using strategy rm
  3. Applied sin-sum0.2

    \[\leadsto \color{blue}{\sin x \cdot \cos y + \cos x \cdot \sin y}\]
  4. Using strategy rm
  5. Applied add-cube-cbrt0.3

    \[\leadsto \sin x \cdot \cos y + \color{blue}{\left(\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \sqrt[3]{\cos x}\right)} \cdot \sin y\]
  6. Applied associate-*l*0.3

    \[\leadsto \sin x \cdot \cos y + \color{blue}{\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \left(\sqrt[3]{\cos x} \cdot \sin y\right)}\]
  7. Final simplification0.3

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

Reproduce

herbie shell --seed 1 
(FPCore (x y)
  :name "sin(x+y)"
  :precision binary64
  (sin (+ x y)))