Average Error: 0.2 → 0.0
Time: 12.7s
Precision: 64
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.75\right) - z\right)}{y}\]
\[\left(0.75 - \frac{z - x}{y}\right) \cdot 4 + 1\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.75\right) - z\right)}{y}
\left(0.75 - \frac{z - x}{y}\right) \cdot 4 + 1
double f(double x, double y, double z) {
        double r15645170 = 1.0;
        double r15645171 = 4.0;
        double r15645172 = x;
        double r15645173 = y;
        double r15645174 = 0.75;
        double r15645175 = r15645173 * r15645174;
        double r15645176 = r15645172 + r15645175;
        double r15645177 = z;
        double r15645178 = r15645176 - r15645177;
        double r15645179 = r15645171 * r15645178;
        double r15645180 = r15645179 / r15645173;
        double r15645181 = r15645170 + r15645180;
        return r15645181;
}

double f(double x, double y, double z) {
        double r15645182 = 0.75;
        double r15645183 = z;
        double r15645184 = x;
        double r15645185 = r15645183 - r15645184;
        double r15645186 = y;
        double r15645187 = r15645185 / r15645186;
        double r15645188 = r15645182 - r15645187;
        double r15645189 = 4.0;
        double r15645190 = r15645188 * r15645189;
        double r15645191 = 1.0;
        double r15645192 = r15645190 + r15645191;
        return r15645192;
}

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

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

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

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

Reproduce

herbie shell --seed 2019170 
(FPCore (x y z)
  :name "Data.Array.Repa.Algorithms.ColorRamp:rampColorHotToCold from repa-algorithms-3.4.0.1, A"
  (+ 1.0 (/ (* 4.0 (- (+ x (* y 0.75)) z)) y)))