Average Error: 12.2 → 0.4
Time: 18.1s
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(3 + \frac{\frac{2}{r}}{r}\right) - \mathsf{fma}\left(\frac{0.125}{\frac{\sqrt[3]{\left(\left(1 - v\right) \cdot \frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}\right) \cdot \frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}{\sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}}}, \left(w \cdot r\right) \cdot \left(w \cdot r\right), 4.5\right)\]
\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(3 + \frac{\frac{2}{r}}{r}\right) - \mathsf{fma}\left(\frac{0.125}{\frac{\sqrt[3]{\left(\left(1 - v\right) \cdot \frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}\right) \cdot \frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}}{\sqrt[3]{\mathsf{fma}\left(-2, v, 3\right)}}}, \left(w \cdot r\right) \cdot \left(w \cdot r\right), 4.5\right)
double f(double v, double w, double r) {
        double r473194 = 3.0;
        double r473195 = 2.0;
        double r473196 = r;
        double r473197 = r473196 * r473196;
        double r473198 = r473195 / r473197;
        double r473199 = r473194 + r473198;
        double r473200 = 0.125;
        double r473201 = v;
        double r473202 = r473195 * r473201;
        double r473203 = r473194 - r473202;
        double r473204 = r473200 * r473203;
        double r473205 = w;
        double r473206 = r473205 * r473205;
        double r473207 = r473206 * r473196;
        double r473208 = r473207 * r473196;
        double r473209 = r473204 * r473208;
        double r473210 = 1.0;
        double r473211 = r473210 - r473201;
        double r473212 = r473209 / r473211;
        double r473213 = r473199 - r473212;
        double r473214 = 4.5;
        double r473215 = r473213 - r473214;
        return r473215;
}

double f(double v, double w, double r) {
        double r473216 = 3.0;
        double r473217 = 2.0;
        double r473218 = r;
        double r473219 = r473217 / r473218;
        double r473220 = r473219 / r473218;
        double r473221 = r473216 + r473220;
        double r473222 = 0.125;
        double r473223 = 1.0;
        double r473224 = v;
        double r473225 = r473223 - r473224;
        double r473226 = -2.0;
        double r473227 = fma(r473226, r473224, r473216);
        double r473228 = r473225 / r473227;
        double r473229 = r473225 * r473228;
        double r473230 = r473229 * r473228;
        double r473231 = cbrt(r473230);
        double r473232 = cbrt(r473227);
        double r473233 = r473231 / r473232;
        double r473234 = r473222 / r473233;
        double r473235 = w;
        double r473236 = r473235 * r473218;
        double r473237 = r473236 * r473236;
        double r473238 = 4.5;
        double r473239 = fma(r473234, r473237, r473238);
        double r473240 = r473221 - r473239;
        return r473240;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.2

    \[\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 add-cbrt-cube20.7

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

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

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019156 +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))