Average Error: 0.0 → 0.0
Time: 18.0s
Precision: 64
\[\left(x + \sin y\right) + z \cdot \cos y\]
\[\left(\sin y + x\right) + z \cdot \cos y\]
\left(x + \sin y\right) + z \cdot \cos y
\left(\sin y + x\right) + z \cdot \cos y
double f(double x, double y, double z) {
        double r146214 = x;
        double r146215 = y;
        double r146216 = sin(r146215);
        double r146217 = r146214 + r146216;
        double r146218 = z;
        double r146219 = cos(r146215);
        double r146220 = r146218 * r146219;
        double r146221 = r146217 + r146220;
        return r146221;
}

double f(double x, double y, double z) {
        double r146222 = y;
        double r146223 = sin(r146222);
        double r146224 = x;
        double r146225 = r146223 + r146224;
        double r146226 = z;
        double r146227 = cos(r146222);
        double r146228 = r146226 * r146227;
        double r146229 = r146225 + r146228;
        return r146229;
}

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

    \[\left(x + \sin y\right) + z \cdot \cos y\]
  2. Using strategy rm
  3. Applied +-commutative0.0

    \[\leadsto \color{blue}{\left(\sin y + x\right)} + z \cdot \cos y\]
  4. Final simplification0.0

    \[\leadsto \left(\sin y + x\right) + z \cdot \cos y\]

Reproduce

herbie shell --seed 2019323 
(FPCore (x y z)
  :name "Graphics.Rasterific.Svg.PathConverter:segmentToBezier from rasterific-svg-0.2.3.1, C"
  :precision binary64
  (+ (+ x (sin y)) (* z (cos y))))