Average Error: 0.1 → 0.1
Time: 2.2s
Precision: 64
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}\]
\[\frac{\left({1}^{3} + {\left(0.25 \cdot 4\right)}^{3}\right) \cdot y + \left(1 \cdot 1 + \left(\left(0.25 \cdot 4\right) \cdot \left(0.25 \cdot 4\right) - 1 \cdot \left(0.25 \cdot 4\right)\right)\right) \cdot \left(\left(x - z\right) \cdot 4\right)}{y \cdot \left(\left(0.25 \cdot 4\right) \cdot \left(0.25 \cdot 4 - 1\right) + 1 \cdot 1\right)}\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}
\frac{\left({1}^{3} + {\left(0.25 \cdot 4\right)}^{3}\right) \cdot y + \left(1 \cdot 1 + \left(\left(0.25 \cdot 4\right) \cdot \left(0.25 \cdot 4\right) - 1 \cdot \left(0.25 \cdot 4\right)\right)\right) \cdot \left(\left(x - z\right) \cdot 4\right)}{y \cdot \left(\left(0.25 \cdot 4\right) \cdot \left(0.25 \cdot 4 - 1\right) + 1 \cdot 1\right)}
double f(double x, double y, double z) {
        double r389141 = 1.0;
        double r389142 = 4.0;
        double r389143 = x;
        double r389144 = y;
        double r389145 = 0.25;
        double r389146 = r389144 * r389145;
        double r389147 = r389143 + r389146;
        double r389148 = z;
        double r389149 = r389147 - r389148;
        double r389150 = r389142 * r389149;
        double r389151 = r389150 / r389144;
        double r389152 = r389141 + r389151;
        return r389152;
}

double f(double x, double y, double z) {
        double r389153 = 1.0;
        double r389154 = 3.0;
        double r389155 = pow(r389153, r389154);
        double r389156 = 0.25;
        double r389157 = 4.0;
        double r389158 = r389156 * r389157;
        double r389159 = pow(r389158, r389154);
        double r389160 = r389155 + r389159;
        double r389161 = y;
        double r389162 = r389160 * r389161;
        double r389163 = r389153 * r389153;
        double r389164 = r389158 * r389158;
        double r389165 = r389153 * r389158;
        double r389166 = r389164 - r389165;
        double r389167 = r389163 + r389166;
        double r389168 = x;
        double r389169 = z;
        double r389170 = r389168 - r389169;
        double r389171 = r389170 * r389157;
        double r389172 = r389167 * r389171;
        double r389173 = r389162 + r389172;
        double r389174 = r389158 - r389153;
        double r389175 = r389158 * r389174;
        double r389176 = r389175 + r389163;
        double r389177 = r389161 * r389176;
        double r389178 = r389173 / r389177;
        return r389178;
}

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

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

    \[\leadsto \color{blue}{\left(1 + 0.25 \cdot 4\right) + \frac{x - z}{y} \cdot 4}\]
  6. Using strategy rm
  7. Applied associate-*l/0.1

    \[\leadsto \left(1 + 0.25 \cdot 4\right) + \color{blue}{\frac{\left(x - z\right) \cdot 4}{y}}\]
  8. Applied flip3-+0.1

    \[\leadsto \color{blue}{\frac{{1}^{3} + {\left(0.25 \cdot 4\right)}^{3}}{1 \cdot 1 + \left(\left(0.25 \cdot 4\right) \cdot \left(0.25 \cdot 4\right) - 1 \cdot \left(0.25 \cdot 4\right)\right)}} + \frac{\left(x - z\right) \cdot 4}{y}\]
  9. Applied frac-add0.1

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

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

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

Reproduce

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