Average Error: 0.2 → 0.2
Time: 2.7m
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 m\]
\[m \cdot \left(\mathsf{fma}\left(\left(\frac{m}{v}\right), \left(-m\right), \left(\frac{m}{v}\right)\right) - 1\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m
m \cdot \left(\mathsf{fma}\left(\left(\frac{m}{v}\right), \left(-m\right), \left(\frac{m}{v}\right)\right) - 1\right)
double f(double m, double v) {
        double r4134326 = m;
        double r4134327 = 1.0;
        double r4134328 = r4134327 - r4134326;
        double r4134329 = r4134326 * r4134328;
        double r4134330 = v;
        double r4134331 = r4134329 / r4134330;
        double r4134332 = r4134331 - r4134327;
        double r4134333 = r4134332 * r4134326;
        return r4134333;
}

double f(double m, double v) {
        double r4134334 = m;
        double r4134335 = v;
        double r4134336 = r4134334 / r4134335;
        double r4134337 = -r4134334;
        double r4134338 = fma(r4134336, r4134337, r4134336);
        double r4134339 = 1.0;
        double r4134340 = r4134338 - r4134339;
        double r4134341 = r4134334 * r4134340;
        return r4134341;
}

Error

Bits error versus m

Bits error versus v

Derivation

  1. Initial program 0.2

    \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m\]
  2. Using strategy rm
  3. Applied associate-/l*0.2

    \[\leadsto \left(\color{blue}{\frac{m}{\frac{v}{1 - m}}} - 1\right) \cdot m\]
  4. Using strategy rm
  5. Applied clear-num0.2

    \[\leadsto \left(\color{blue}{\frac{1}{\frac{\frac{v}{1 - m}}{m}}} - 1\right) \cdot m\]
  6. Using strategy rm
  7. Applied *-un-lft-identity0.2

    \[\leadsto \left(\frac{1}{\frac{\frac{v}{1 - m}}{\color{blue}{1 \cdot m}}} - 1\right) \cdot m\]
  8. Applied div-inv0.2

    \[\leadsto \left(\frac{1}{\frac{\color{blue}{v \cdot \frac{1}{1 - m}}}{1 \cdot m}} - 1\right) \cdot m\]
  9. Applied times-frac0.3

    \[\leadsto \left(\frac{1}{\color{blue}{\frac{v}{1} \cdot \frac{\frac{1}{1 - m}}{m}}} - 1\right) \cdot m\]
  10. Applied *-un-lft-identity0.3

    \[\leadsto \left(\frac{\color{blue}{1 \cdot 1}}{\frac{v}{1} \cdot \frac{\frac{1}{1 - m}}{m}} - 1\right) \cdot m\]
  11. Applied times-frac0.3

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

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

    \[\leadsto \left(\frac{1}{v} \cdot \color{blue}{\left(m - m \cdot m\right)} - 1\right) \cdot m\]
  14. Taylor expanded around inf 0.2

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

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

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

Reproduce

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