Average Error: 0.1 → 0.1
Time: 19.4s
Precision: 64
\[0 \lt m \land 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(\frac{m \cdot \left(1 - m \cdot m\right)}{\mathsf{fma}\left(v, m, v\right)} - 1\right) \cdot \left(-m\right) + \left(\frac{m \cdot \left(1 - m \cdot m\right)}{\mathsf{fma}\left(v, m, v\right)} - 1\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
\left(\frac{m \cdot \left(1 - m \cdot m\right)}{\mathsf{fma}\left(v, m, v\right)} - 1\right) \cdot \left(-m\right) + \left(\frac{m \cdot \left(1 - m \cdot m\right)}{\mathsf{fma}\left(v, m, v\right)} - 1\right)
double f(double m, double v) {
        double r678261 = m;
        double r678262 = 1.0;
        double r678263 = r678262 - r678261;
        double r678264 = r678261 * r678263;
        double r678265 = v;
        double r678266 = r678264 / r678265;
        double r678267 = r678266 - r678262;
        double r678268 = r678267 * r678263;
        return r678268;
}

double f(double m, double v) {
        double r678269 = m;
        double r678270 = 1.0;
        double r678271 = r678269 * r678269;
        double r678272 = r678270 - r678271;
        double r678273 = r678269 * r678272;
        double r678274 = v;
        double r678275 = fma(r678274, r678269, r678274);
        double r678276 = r678273 / r678275;
        double r678277 = r678276 - r678270;
        double r678278 = -r678269;
        double r678279 = r678277 * r678278;
        double r678280 = r678279 + r678277;
        return r678280;
}

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 flip--0.1

    \[\leadsto \left(\frac{m \cdot \color{blue}{\frac{1 \cdot 1 - m \cdot m}{1 + m}}}{v} - 1\right) \cdot \left(1 - m\right)\]
  4. Applied associate-*r/0.1

    \[\leadsto \left(\frac{\color{blue}{\frac{m \cdot \left(1 \cdot 1 - m \cdot m\right)}{1 + m}}}{v} - 1\right) \cdot \left(1 - m\right)\]
  5. Applied associate-/l/0.1

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

    \[\leadsto \left(\frac{m \cdot \left(1 \cdot 1 - m \cdot m\right)}{\color{blue}{\mathsf{fma}\left(v, m, v\right)}} - 1\right) \cdot \left(1 - m\right)\]
  7. Using strategy rm
  8. Applied sub-neg0.1

    \[\leadsto \left(\frac{m \cdot \left(1 \cdot 1 - m \cdot m\right)}{\mathsf{fma}\left(v, m, v\right)} - 1\right) \cdot \color{blue}{\left(1 + \left(-m\right)\right)}\]
  9. Applied distribute-rgt-in0.1

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

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

Reproduce

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