Average Error: 0.1 → 0.0
Time: 5.7s
Precision: 64
\[\frac{4 \cdot \left(\left(x - y\right) - z \cdot 0.5\right)}{z}\]
\[4 \cdot \left(\frac{x - y}{z} - 0.5\right)\]
\frac{4 \cdot \left(\left(x - y\right) - z \cdot 0.5\right)}{z}
4 \cdot \left(\frac{x - y}{z} - 0.5\right)
double f(double x, double y, double z) {
        double r39455880 = 4.0;
        double r39455881 = x;
        double r39455882 = y;
        double r39455883 = r39455881 - r39455882;
        double r39455884 = z;
        double r39455885 = 0.5;
        double r39455886 = r39455884 * r39455885;
        double r39455887 = r39455883 - r39455886;
        double r39455888 = r39455880 * r39455887;
        double r39455889 = r39455888 / r39455884;
        return r39455889;
}

double f(double x, double y, double z) {
        double r39455890 = 4.0;
        double r39455891 = x;
        double r39455892 = y;
        double r39455893 = r39455891 - r39455892;
        double r39455894 = z;
        double r39455895 = r39455893 / r39455894;
        double r39455896 = 0.5;
        double r39455897 = r39455895 - r39455896;
        double r39455898 = r39455890 * r39455897;
        return r39455898;
}

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

Target

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

Derivation

  1. Initial program 0.1

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

    \[\leadsto \color{blue}{\left(\frac{x - y}{z} - 0.5\right) \cdot 4}\]
  3. Final simplification0.0

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

Reproduce

herbie shell --seed 2019172 
(FPCore (x y z)
  :name "Data.Array.Repa.Algorithms.ColorRamp:rampColorHotToCold from repa-algorithms-3.4.0.1, B"

  :herbie-target
  (- (* 4.0 (/ x z)) (+ 2.0 (* 4.0 (/ y z))))

  (/ (* 4.0 (- (- x y) (* z 0.5))) z))