Average Error: 0.2 → 0.0
Time: 8.6s
Precision: 64
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.75\right) - z\right)}{y}\]
\[\left(0.75 + \frac{x - z}{y}\right) \cdot 4 + 1\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.75\right) - z\right)}{y}
\left(0.75 + \frac{x - z}{y}\right) \cdot 4 + 1
double f(double x, double y, double z) {
        double r522454 = 1.0;
        double r522455 = 4.0;
        double r522456 = x;
        double r522457 = y;
        double r522458 = 0.75;
        double r522459 = r522457 * r522458;
        double r522460 = r522456 + r522459;
        double r522461 = z;
        double r522462 = r522460 - r522461;
        double r522463 = r522455 * r522462;
        double r522464 = r522463 / r522457;
        double r522465 = r522454 + r522464;
        return r522465;
}

double f(double x, double y, double z) {
        double r522466 = 0.75;
        double r522467 = x;
        double r522468 = z;
        double r522469 = r522467 - r522468;
        double r522470 = y;
        double r522471 = r522469 / r522470;
        double r522472 = r522466 + r522471;
        double r522473 = 4.0;
        double r522474 = r522472 * r522473;
        double r522475 = 1.0;
        double r522476 = r522474 + r522475;
        return r522476;
}

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}{\left(0.75 + \frac{x - z}{y}\right) \cdot 4 + 1}\]
  3. Final simplification0.0

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

Reproduce

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