Average Error: 12.8 → 0.5
Time: 34.5s
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{2}{r \cdot r}\right) - \left(\frac{\sqrt[3]{\mathsf{fma}\left(v, -2, 3\right)}}{\frac{\sqrt[3]{1 - v}}{\sqrt{0.125}}} \cdot \left(\frac{\sqrt[3]{\mathsf{fma}\left(v, -2, 3\right)} \cdot \sqrt[3]{\mathsf{fma}\left(v, -2, 3\right)}}{\frac{\sqrt[3]{1 - v} \cdot \sqrt[3]{1 - v}}{\sqrt{0.125}}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\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{2}{r \cdot r}\right) - \left(\frac{\sqrt[3]{\mathsf{fma}\left(v, -2, 3\right)}}{\frac{\sqrt[3]{1 - v}}{\sqrt{0.125}}} \cdot \left(\frac{\sqrt[3]{\mathsf{fma}\left(v, -2, 3\right)} \cdot \sqrt[3]{\mathsf{fma}\left(v, -2, 3\right)}}{\frac{\sqrt[3]{1 - v} \cdot \sqrt[3]{1 - v}}{\sqrt{0.125}}} \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) + 4.5\right)
double f(double v, double w, double r) {
        double r1283175 = 3.0;
        double r1283176 = 2.0;
        double r1283177 = r;
        double r1283178 = r1283177 * r1283177;
        double r1283179 = r1283176 / r1283178;
        double r1283180 = r1283175 + r1283179;
        double r1283181 = 0.125;
        double r1283182 = v;
        double r1283183 = r1283176 * r1283182;
        double r1283184 = r1283175 - r1283183;
        double r1283185 = r1283181 * r1283184;
        double r1283186 = w;
        double r1283187 = r1283186 * r1283186;
        double r1283188 = r1283187 * r1283177;
        double r1283189 = r1283188 * r1283177;
        double r1283190 = r1283185 * r1283189;
        double r1283191 = 1.0;
        double r1283192 = r1283191 - r1283182;
        double r1283193 = r1283190 / r1283192;
        double r1283194 = r1283180 - r1283193;
        double r1283195 = 4.5;
        double r1283196 = r1283194 - r1283195;
        return r1283196;
}

double f(double v, double w, double r) {
        double r1283197 = 3.0;
        double r1283198 = 2.0;
        double r1283199 = r;
        double r1283200 = r1283199 * r1283199;
        double r1283201 = r1283198 / r1283200;
        double r1283202 = r1283197 + r1283201;
        double r1283203 = v;
        double r1283204 = -2.0;
        double r1283205 = fma(r1283203, r1283204, r1283197);
        double r1283206 = cbrt(r1283205);
        double r1283207 = 1.0;
        double r1283208 = r1283207 - r1283203;
        double r1283209 = cbrt(r1283208);
        double r1283210 = 0.125;
        double r1283211 = sqrt(r1283210);
        double r1283212 = r1283209 / r1283211;
        double r1283213 = r1283206 / r1283212;
        double r1283214 = r1283206 * r1283206;
        double r1283215 = r1283209 * r1283209;
        double r1283216 = r1283215 / r1283211;
        double r1283217 = r1283214 / r1283216;
        double r1283218 = w;
        double r1283219 = r1283218 * r1283199;
        double r1283220 = r1283219 * r1283219;
        double r1283221 = r1283217 * r1283220;
        double r1283222 = r1283213 * r1283221;
        double r1283223 = 4.5;
        double r1283224 = r1283222 + r1283223;
        double r1283225 = r1283202 - r1283224;
        return r1283225;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.8

    \[\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(\left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right), \left(\frac{\mathsf{fma}\left(v, -2, 3\right)}{\frac{1 - v}{0.125}}\right), 4.5\right)}\]
  3. Using strategy rm
  4. Applied fma-udef0.4

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

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

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

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

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

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

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

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

Reproduce

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