Average Error: 0.2 → 0.0
Time: 33.4s
Precision: 64
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.75\right) - z\right)}{y}\]
\[1 - \left(\frac{z}{y} - \left(0.75 + \frac{x}{y}\right)\right) \cdot 4\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.75\right) - z\right)}{y}
1 - \left(\frac{z}{y} - \left(0.75 + \frac{x}{y}\right)\right) \cdot 4
double f(double x, double y, double z) {
        double r15510110 = 1.0;
        double r15510111 = 4.0;
        double r15510112 = x;
        double r15510113 = y;
        double r15510114 = 0.75;
        double r15510115 = r15510113 * r15510114;
        double r15510116 = r15510112 + r15510115;
        double r15510117 = z;
        double r15510118 = r15510116 - r15510117;
        double r15510119 = r15510111 * r15510118;
        double r15510120 = r15510119 / r15510113;
        double r15510121 = r15510110 + r15510120;
        return r15510121;
}

double f(double x, double y, double z) {
        double r15510122 = 1.0;
        double r15510123 = z;
        double r15510124 = y;
        double r15510125 = r15510123 / r15510124;
        double r15510126 = 0.75;
        double r15510127 = x;
        double r15510128 = r15510127 / r15510124;
        double r15510129 = r15510126 + r15510128;
        double r15510130 = r15510125 - r15510129;
        double r15510131 = 4.0;
        double r15510132 = r15510130 * r15510131;
        double r15510133 = r15510122 - r15510132;
        return r15510133;
}

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(\frac{z - x}{y} - 0.75\right)}\]
  3. Using strategy rm
  4. Applied div-sub0.0

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

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

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

Reproduce

herbie shell --seed 2019200 
(FPCore (x y z)
  :name "Data.Array.Repa.Algorithms.ColorRamp:rampColorHotToCold from repa-algorithms-3.4.0.1, A"
  (+ 1.0 (/ (* 4.0 (- (+ x (* y 0.75)) z)) y)))