Average Error: 12.1 → 0.5
Time: 24.4s
Precision: 64
\[\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\]
\[\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{1}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \left(\left(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) \cdot \frac{0.125}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}\right)\right) - 4.5\]
\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5
\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{1}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \left(\left(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) \cdot \frac{0.125}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}\right)\right) - 4.5
double f(double v, double w, double r) {
        double r687160 = 3.0;
        double r687161 = 2.0;
        double r687162 = r;
        double r687163 = r687162 * r687162;
        double r687164 = r687161 / r687163;
        double r687165 = r687160 + r687164;
        double r687166 = 0.125;
        double r687167 = v;
        double r687168 = r687161 * r687167;
        double r687169 = r687160 - r687168;
        double r687170 = r687166 * r687169;
        double r687171 = w;
        double r687172 = r687171 * r687171;
        double r687173 = r687172 * r687162;
        double r687174 = r687173 * r687162;
        double r687175 = r687170 * r687174;
        double r687176 = 1.0;
        double r687177 = r687176 - r687167;
        double r687178 = r687175 / r687177;
        double r687179 = r687165 - r687178;
        double r687180 = 4.5;
        double r687181 = r687179 - r687180;
        return r687181;
}

double f(double v, double w, double r) {
        double r687182 = 3.0;
        double r687183 = 2.0;
        double r687184 = r;
        double r687185 = r687183 / r687184;
        double r687186 = r687185 / r687184;
        double r687187 = r687182 + r687186;
        double r687188 = 1.0;
        double r687189 = v;
        double r687190 = r687188 - r687189;
        double r687191 = -2.0;
        double r687192 = fma(r687191, r687189, r687182);
        double r687193 = r687190 / r687192;
        double r687194 = sqrt(r687193);
        double r687195 = r687188 / r687194;
        double r687196 = w;
        double r687197 = r687184 * r687196;
        double r687198 = r687197 * r687197;
        double r687199 = 0.125;
        double r687200 = r687199 / r687194;
        double r687201 = r687198 * r687200;
        double r687202 = r687195 * r687201;
        double r687203 = r687187 - r687202;
        double r687204 = 4.5;
        double r687205 = r687203 - r687204;
        return r687205;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.1

    \[\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\]
  2. Simplified0.4

    \[\leadsto \color{blue}{\left(3 + \frac{2}{r \cdot r}\right) - \mathsf{fma}\left(\frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}, \left(w \cdot r\right) \cdot \left(w \cdot r\right), 4.5\right)}\]
  3. Using strategy rm
  4. Applied associate-/r*0.4

    \[\leadsto \left(3 + \color{blue}{\frac{\frac{2}{r}}{r}}\right) - \mathsf{fma}\left(\frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}, \left(w \cdot r\right) \cdot \left(w \cdot r\right), 4.5\right)\]
  5. Using strategy rm
  6. Applied fma-udef0.4

    \[\leadsto \left(3 + \frac{\frac{2}{r}}{r}\right) - \color{blue}{\left(\frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) + 4.5\right)}\]
  7. Applied associate--r+0.4

    \[\leadsto \color{blue}{\left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) - 4.5}\]
  8. Using strategy rm
  9. Applied add-sqr-sqrt0.5

    \[\leadsto \left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{0.125}{\color{blue}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}} \cdot \sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) - 4.5\]
  10. Applied *-un-lft-identity0.5

    \[\leadsto \left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{\color{blue}{1 \cdot 0.125}}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}} \cdot \sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) - 4.5\]
  11. Applied times-frac0.5

    \[\leadsto \left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \color{blue}{\left(\frac{1}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \frac{0.125}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}\right)} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) - 4.5\]
  12. Applied associate-*l*0.5

    \[\leadsto \left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \color{blue}{\frac{1}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \left(\frac{0.125}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right)}\right) - 4.5\]
  13. Final simplification0.5

    \[\leadsto \left(\left(3 + \frac{\frac{2}{r}}{r}\right) - \frac{1}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}} \cdot \left(\left(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) \cdot \frac{0.125}{\sqrt{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}\right)\right) - 4.5\]

Reproduce

herbie shell --seed 2019154 +o rules:numerics
(FPCore (v w r)
  :name "Rosa's TurbineBenchmark"
  (- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))