Average Error: 0.1 → 0.1
Time: 14.9s
Precision: 64
\[0.0 \lt m \land 0.0 \lt v \land v \lt 0.25\]
\[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)\]
\[1 \cdot \mathsf{fma}\left(\frac{m}{v}, 1 - m, -1\right) + \left(-\left(\left(\frac{m \cdot m}{v} - m\right) \cdot 1 - \frac{{m}^{3}}{v}\right)\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
1 \cdot \mathsf{fma}\left(\frac{m}{v}, 1 - m, -1\right) + \left(-\left(\left(\frac{m \cdot m}{v} - m\right) \cdot 1 - \frac{{m}^{3}}{v}\right)\right)
double f(double m, double v) {
        double r21389 = m;
        double r21390 = 1.0;
        double r21391 = r21390 - r21389;
        double r21392 = r21389 * r21391;
        double r21393 = v;
        double r21394 = r21392 / r21393;
        double r21395 = r21394 - r21390;
        double r21396 = r21395 * r21391;
        return r21396;
}

double f(double m, double v) {
        double r21397 = 1.0;
        double r21398 = m;
        double r21399 = v;
        double r21400 = r21398 / r21399;
        double r21401 = r21397 - r21398;
        double r21402 = -r21397;
        double r21403 = fma(r21400, r21401, r21402);
        double r21404 = r21397 * r21403;
        double r21405 = r21398 * r21398;
        double r21406 = r21405 / r21399;
        double r21407 = r21406 - r21398;
        double r21408 = r21407 * r21397;
        double r21409 = 3.0;
        double r21410 = pow(r21398, r21409);
        double r21411 = r21410 / r21399;
        double r21412 = r21408 - r21411;
        double r21413 = -r21412;
        double r21414 = r21404 + r21413;
        return r21414;
}

Error

Bits error versus m

Bits error versus v

Derivation

  1. Initial program 0.1

    \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)\]
  2. Using strategy rm
  3. Applied sub-neg0.1

    \[\leadsto \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \color{blue}{\left(1 + \left(-m\right)\right)}\]
  4. Applied distribute-lft-in0.1

    \[\leadsto \color{blue}{\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot 1 + \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(-m\right)}\]
  5. Simplified0.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{m}{v}, 1 - m, -1\right) \cdot 1} + \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(-m\right)\]
  6. Simplified0.1

    \[\leadsto \mathsf{fma}\left(\frac{m}{v}, 1 - m, -1\right) \cdot 1 + \color{blue}{\left(-m \cdot \mathsf{fma}\left(\frac{m}{v}, 1 - m, -1\right)\right)}\]
  7. Taylor expanded around 0 0.1

    \[\leadsto \mathsf{fma}\left(\frac{m}{v}, 1 - m, -1\right) \cdot 1 + \left(-\color{blue}{\left(1 \cdot \frac{{m}^{2}}{v} - \left(1 \cdot m + \frac{{m}^{3}}{v}\right)\right)}\right)\]
  8. Simplified0.1

    \[\leadsto \mathsf{fma}\left(\frac{m}{v}, 1 - m, -1\right) \cdot 1 + \left(-\color{blue}{\left(1 \cdot \left(\frac{m \cdot m}{v} - m\right) - \frac{{m}^{3}}{v}\right)}\right)\]
  9. Final simplification0.1

    \[\leadsto 1 \cdot \mathsf{fma}\left(\frac{m}{v}, 1 - m, -1\right) + \left(-\left(\left(\frac{m \cdot m}{v} - m\right) \cdot 1 - \frac{{m}^{3}}{v}\right)\right)\]

Reproduce

herbie shell --seed 2019196 +o rules:numerics
(FPCore (m v)
  :name "b parameter of renormalized beta distribution"
  :pre (and (< 0.0 m) (< 0.0 v) (< v 0.25))
  (* (- (/ (* m (- 1.0 m)) v) 1.0) (- 1.0 m)))