Average Error: 0.1 → 0.1
Time: 23.9s
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{\left(1 - m \cdot m\right) \cdot m}{\mathsf{fma}\left(v, m, v\right)} - 1\right) + \left(-m\right) \cdot \left(\frac{m}{\frac{v}{1 - m}} - 1\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
\left(\frac{\left(1 - m \cdot m\right) \cdot m}{\mathsf{fma}\left(v, m, v\right)} - 1\right) + \left(-m\right) \cdot \left(\frac{m}{\frac{v}{1 - m}} - 1\right)
double f(double m, double v) {
        double r952919 = m;
        double r952920 = 1.0;
        double r952921 = r952920 - r952919;
        double r952922 = r952919 * r952921;
        double r952923 = v;
        double r952924 = r952922 / r952923;
        double r952925 = r952924 - r952920;
        double r952926 = r952925 * r952921;
        return r952926;
}

double f(double m, double v) {
        double r952927 = 1.0;
        double r952928 = m;
        double r952929 = r952928 * r952928;
        double r952930 = r952927 - r952929;
        double r952931 = r952930 * r952928;
        double r952932 = v;
        double r952933 = fma(r952932, r952928, r952932);
        double r952934 = r952931 / r952933;
        double r952935 = r952934 - r952927;
        double r952936 = -r952928;
        double r952937 = r952927 - r952928;
        double r952938 = r952932 / r952937;
        double r952939 = r952928 / r952938;
        double r952940 = r952939 - r952927;
        double r952941 = r952936 * r952940;
        double r952942 = r952935 + r952941;
        return r952942;
}

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}{\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right)} + \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(-m\right)\]
  6. Using strategy rm
  7. Applied associate-/l*0.1

    \[\leadsto \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) + \left(\color{blue}{\frac{m}{\frac{v}{1 - m}}} - 1\right) \cdot \left(-m\right)\]
  8. Using strategy rm
  9. Applied flip--0.1

    \[\leadsto \left(\frac{m \cdot \color{blue}{\frac{1 \cdot 1 - m \cdot m}{1 + m}}}{v} - 1\right) + \left(\frac{m}{\frac{v}{1 - m}} - 1\right) \cdot \left(-m\right)\]
  10. 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) + \left(\frac{m}{\frac{v}{1 - m}} - 1\right) \cdot \left(-m\right)\]
  11. 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) + \left(\frac{m}{\frac{v}{1 - m}} - 1\right) \cdot \left(-m\right)\]
  12. 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) + \left(\frac{m}{\frac{v}{1 - m}} - 1\right) \cdot \left(-m\right)\]
  13. Final simplification0.1

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

Reproduce

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