Average Error: 0.1 → 0.0
Time: 10.5s
Precision: 64
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}\]
\[1 + \left(1 + 4 \cdot \left(\frac{x}{y} - \frac{z}{y}\right)\right)\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}
1 + \left(1 + 4 \cdot \left(\frac{x}{y} - \frac{z}{y}\right)\right)
double f(double x, double y, double z) {
        double r305942 = 1.0;
        double r305943 = 4.0;
        double r305944 = x;
        double r305945 = y;
        double r305946 = 0.25;
        double r305947 = r305945 * r305946;
        double r305948 = r305944 + r305947;
        double r305949 = z;
        double r305950 = r305948 - r305949;
        double r305951 = r305943 * r305950;
        double r305952 = r305951 / r305945;
        double r305953 = r305942 + r305952;
        return r305953;
}

double f(double x, double y, double z) {
        double r305954 = 1.0;
        double r305955 = 4.0;
        double r305956 = x;
        double r305957 = y;
        double r305958 = r305956 / r305957;
        double r305959 = z;
        double r305960 = r305959 / r305957;
        double r305961 = r305958 - r305960;
        double r305962 = r305955 * r305961;
        double r305963 = r305954 + r305962;
        double r305964 = r305954 + r305963;
        return r305964;
}

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. Taylor expanded around 0 0.0

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

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

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

Reproduce

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