Average Error: 0.1 → 0.0
Time: 10.7s
Precision: 64
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}\]
\[\frac{x - z}{y} \cdot 4 + \left(4 \cdot 0.25 + 1\right)\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}
\frac{x - z}{y} \cdot 4 + \left(4 \cdot 0.25 + 1\right)
double f(double x, double y, double z) {
        double r223189 = 1.0;
        double r223190 = 4.0;
        double r223191 = x;
        double r223192 = y;
        double r223193 = 0.25;
        double r223194 = r223192 * r223193;
        double r223195 = r223191 + r223194;
        double r223196 = z;
        double r223197 = r223195 - r223196;
        double r223198 = r223190 * r223197;
        double r223199 = r223198 / r223192;
        double r223200 = r223189 + r223199;
        return r223200;
}

double f(double x, double y, double z) {
        double r223201 = x;
        double r223202 = z;
        double r223203 = r223201 - r223202;
        double r223204 = y;
        double r223205 = r223203 / r223204;
        double r223206 = 4.0;
        double r223207 = r223205 * r223206;
        double r223208 = 0.25;
        double r223209 = r223206 * r223208;
        double r223210 = 1.0;
        double r223211 = r223209 + r223210;
        double r223212 = r223207 + r223211;
        return r223212;
}

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}{4 \cdot \left(\frac{x - z}{y} + 0.25\right) + 1}\]
  3. Using strategy rm
  4. Applied distribute-rgt-in0.0

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

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

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

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

Reproduce

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