Average Error: 0.2 → 0.0
Time: 1.3s
Precision: 64
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.75\right) - z\right)}{y}\]
\[1 + 4 \cdot \left(0.75 + \frac{x - z}{y}\right)\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.75\right) - z\right)}{y}
1 + 4 \cdot \left(0.75 + \frac{x - z}{y}\right)
double f(double x, double y, double z) {
        double r281332 = 1.0;
        double r281333 = 4.0;
        double r281334 = x;
        double r281335 = y;
        double r281336 = 0.75;
        double r281337 = r281335 * r281336;
        double r281338 = r281334 + r281337;
        double r281339 = z;
        double r281340 = r281338 - r281339;
        double r281341 = r281333 * r281340;
        double r281342 = r281341 / r281335;
        double r281343 = r281332 + r281342;
        return r281343;
}

double f(double x, double y, double z) {
        double r281344 = 1.0;
        double r281345 = 4.0;
        double r281346 = 0.75;
        double r281347 = x;
        double r281348 = z;
        double r281349 = r281347 - r281348;
        double r281350 = y;
        double r281351 = r281349 / r281350;
        double r281352 = r281346 + r281351;
        double r281353 = r281345 * r281352;
        double r281354 = r281344 + r281353;
        return r281354;
}

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

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

Reproduce

herbie shell --seed 2019322 
(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)))