Average Error: 12.4 → 0.4
Time: 28.9s
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(\frac{2}{r \cdot r} - \frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v} \cdot \left(\sqrt{\left(w \cdot r\right) \cdot \left(0.125 \cdot \left(w \cdot r\right)\right)} \cdot \sqrt{\left(w \cdot r\right) \cdot \left(0.125 \cdot \left(w \cdot r\right)\right)}\right)\right) - \left(4.5 - 3\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(\frac{2}{r \cdot r} - \frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v} \cdot \left(\sqrt{\left(w \cdot r\right) \cdot \left(0.125 \cdot \left(w \cdot r\right)\right)} \cdot \sqrt{\left(w \cdot r\right) \cdot \left(0.125 \cdot \left(w \cdot r\right)\right)}\right)\right) - \left(4.5 - 3\right)
double f(double v, double w, double r) {
        double r1681224 = 3.0;
        double r1681225 = 2.0;
        double r1681226 = r;
        double r1681227 = r1681226 * r1681226;
        double r1681228 = r1681225 / r1681227;
        double r1681229 = r1681224 + r1681228;
        double r1681230 = 0.125;
        double r1681231 = v;
        double r1681232 = r1681225 * r1681231;
        double r1681233 = r1681224 - r1681232;
        double r1681234 = r1681230 * r1681233;
        double r1681235 = w;
        double r1681236 = r1681235 * r1681235;
        double r1681237 = r1681236 * r1681226;
        double r1681238 = r1681237 * r1681226;
        double r1681239 = r1681234 * r1681238;
        double r1681240 = 1.0;
        double r1681241 = r1681240 - r1681231;
        double r1681242 = r1681239 / r1681241;
        double r1681243 = r1681229 - r1681242;
        double r1681244 = 4.5;
        double r1681245 = r1681243 - r1681244;
        return r1681245;
}

double f(double v, double w, double r) {
        double r1681246 = 2.0;
        double r1681247 = r;
        double r1681248 = r1681247 * r1681247;
        double r1681249 = r1681246 / r1681248;
        double r1681250 = -2.0;
        double r1681251 = v;
        double r1681252 = 3.0;
        double r1681253 = fma(r1681250, r1681251, r1681252);
        double r1681254 = 1.0;
        double r1681255 = r1681254 - r1681251;
        double r1681256 = r1681253 / r1681255;
        double r1681257 = w;
        double r1681258 = r1681257 * r1681247;
        double r1681259 = 0.125;
        double r1681260 = r1681259 * r1681258;
        double r1681261 = r1681258 * r1681260;
        double r1681262 = sqrt(r1681261);
        double r1681263 = r1681262 * r1681262;
        double r1681264 = r1681256 * r1681263;
        double r1681265 = r1681249 - r1681264;
        double r1681266 = 4.5;
        double r1681267 = r1681266 - r1681252;
        double r1681268 = r1681265 - r1681267;
        return r1681268;
}

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Initial program 12.4

    \[\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.3

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

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

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

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

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

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

Reproduce

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