Average Error: 0.1 → 0.1
Time: 29.5s
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)\]
\[\left(\mathsf{fma}\left(\frac{m}{v}, 1, \frac{\frac{m}{\frac{\sqrt{v}}{-m}}}{\sqrt{v}}\right) - 1\right) \cdot \left(1 - m\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
\left(\mathsf{fma}\left(\frac{m}{v}, 1, \frac{\frac{m}{\frac{\sqrt{v}}{-m}}}{\sqrt{v}}\right) - 1\right) \cdot \left(1 - m\right)
double f(double m, double v) {
        double r46377 = m;
        double r46378 = 1.0;
        double r46379 = r46378 - r46377;
        double r46380 = r46377 * r46379;
        double r46381 = v;
        double r46382 = r46380 / r46381;
        double r46383 = r46382 - r46378;
        double r46384 = r46383 * r46379;
        return r46384;
}

double f(double m, double v) {
        double r46385 = m;
        double r46386 = v;
        double r46387 = r46385 / r46386;
        double r46388 = 1.0;
        double r46389 = sqrt(r46386);
        double r46390 = -r46385;
        double r46391 = r46389 / r46390;
        double r46392 = r46385 / r46391;
        double r46393 = r46392 / r46389;
        double r46394 = fma(r46387, r46388, r46393);
        double r46395 = r46394 - r46388;
        double r46396 = r46388 - r46385;
        double r46397 = r46395 * r46396;
        return r46397;
}

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. Taylor expanded around 0 0.1

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

    \[\leadsto \left(\color{blue}{\mathsf{fma}\left(\frac{m}{v}, 1, \frac{m \cdot \left(-m\right)}{v}\right)} - 1\right) \cdot \left(1 - m\right)\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt0.1

    \[\leadsto \left(\mathsf{fma}\left(\frac{m}{v}, 1, \frac{m \cdot \left(-m\right)}{\color{blue}{\sqrt{v} \cdot \sqrt{v}}}\right) - 1\right) \cdot \left(1 - m\right)\]
  6. Applied associate-/r*0.1

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

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

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

Reproduce

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