Average Error: 0.1 → 0.1
Time: 6.6s
Precision: 64
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}\]
\[2 - \frac{\left(z - x\right) \cdot 4}{y}\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}
2 - \frac{\left(z - x\right) \cdot 4}{y}
double f(double x, double y, double z) {
        double r403920 = 1.0;
        double r403921 = 4.0;
        double r403922 = x;
        double r403923 = y;
        double r403924 = 0.25;
        double r403925 = r403923 * r403924;
        double r403926 = r403922 + r403925;
        double r403927 = z;
        double r403928 = r403926 - r403927;
        double r403929 = r403921 * r403928;
        double r403930 = r403929 / r403923;
        double r403931 = r403920 + r403930;
        return r403931;
}

double f(double x, double y, double z) {
        double r403932 = 2.0;
        double r403933 = z;
        double r403934 = x;
        double r403935 = r403933 - r403934;
        double r403936 = 4.0;
        double r403937 = r403935 * r403936;
        double r403938 = y;
        double r403939 = r403937 / r403938;
        double r403940 = r403932 - r403939;
        return r403940;
}

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(0.25 - \frac{z - x}{y}\right) + 1}\]
  3. Taylor expanded around 0 0.0

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

    \[\leadsto \color{blue}{2 - \frac{\left(z - x\right) \cdot 4}{y}}\]
  5. Final simplification0.1

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

Reproduce

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