Average Error: 0.1 → 0.0
Time: 2.7s
Precision: 64
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}\]
\[\left(1 + 0.25 \cdot 4\right) + 4 \cdot \frac{x - z}{y}\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}
\left(1 + 0.25 \cdot 4\right) + 4 \cdot \frac{x - z}{y}
double f(double x, double y, double z) {
        double r328037 = 1.0;
        double r328038 = 4.0;
        double r328039 = x;
        double r328040 = y;
        double r328041 = 0.25;
        double r328042 = r328040 * r328041;
        double r328043 = r328039 + r328042;
        double r328044 = z;
        double r328045 = r328043 - r328044;
        double r328046 = r328038 * r328045;
        double r328047 = r328046 / r328040;
        double r328048 = r328037 + r328047;
        return r328048;
}

double f(double x, double y, double z) {
        double r328049 = 1.0;
        double r328050 = 0.25;
        double r328051 = 4.0;
        double r328052 = r328050 * r328051;
        double r328053 = r328049 + r328052;
        double r328054 = x;
        double r328055 = z;
        double r328056 = r328054 - r328055;
        double r328057 = y;
        double r328058 = r328056 / r328057;
        double r328059 = r328051 * r328058;
        double r328060 = r328053 + r328059;
        return r328060;
}

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

    \[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{1 + 4 \cdot \left(0.25 + \frac{x - z}{y}\right)}\]
  3. Using strategy rm
  4. Applied distribute-lft-in0.0

    \[\leadsto 1 + \color{blue}{\left(4 \cdot 0.25 + 4 \cdot \frac{x - z}{y}\right)}\]
  5. Applied associate-+r+0.0

    \[\leadsto \color{blue}{\left(1 + 4 \cdot 0.25\right) + 4 \cdot \frac{x - z}{y}}\]
  6. Simplified0.0

    \[\leadsto \color{blue}{\left(1 + 0.25 \cdot 4\right)} + 4 \cdot \frac{x - z}{y}\]
  7. Final simplification0.0

    \[\leadsto \left(1 + 0.25 \cdot 4\right) + 4 \cdot \frac{x - z}{y}\]

Reproduce

herbie shell --seed 2020083 
(FPCore (x y z)
  :name "Data.Array.Repa.Algorithms.ColorRamp:rampColorHotToCold from repa-algorithms-3.4.0.1, C"
  :precision binary64
  (+ 1 (/ (* 4 (- (+ x (* y 0.25)) z)) y)))