Average Error: 0.2 → 0.2
Time: 5.8m
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\]
\[\frac{m}{\frac{v}{m}} - \mathsf{fma}\left(m, \left(\frac{1}{\sqrt{v}} \cdot \frac{m}{\frac{\sqrt{v}}{m}}\right), m\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m
\frac{m}{\frac{v}{m}} - \mathsf{fma}\left(m, \left(\frac{1}{\sqrt{v}} \cdot \frac{m}{\frac{\sqrt{v}}{m}}\right), m\right)
double f(double m, double v) {
        double r9970285 = m;
        double r9970286 = 1.0;
        double r9970287 = r9970286 - r9970285;
        double r9970288 = r9970285 * r9970287;
        double r9970289 = v;
        double r9970290 = r9970288 / r9970289;
        double r9970291 = r9970290 - r9970286;
        double r9970292 = r9970291 * r9970285;
        return r9970292;
}

double f(double m, double v) {
        double r9970293 = m;
        double r9970294 = v;
        double r9970295 = r9970294 / r9970293;
        double r9970296 = r9970293 / r9970295;
        double r9970297 = 1.0;
        double r9970298 = sqrt(r9970294);
        double r9970299 = r9970297 / r9970298;
        double r9970300 = r9970298 / r9970293;
        double r9970301 = r9970293 / r9970300;
        double r9970302 = r9970299 * r9970301;
        double r9970303 = fma(r9970293, r9970302, r9970293);
        double r9970304 = r9970296 - r9970303;
        return r9970304;
}

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. Simplified0.2

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

    \[\leadsto m \cdot \left(\frac{m}{v} - \color{blue}{1 \cdot \mathsf{fma}\left(m, \left(\frac{m}{v}\right), 1\right)}\right)\]
  5. Applied *-un-lft-identity0.2

    \[\leadsto m \cdot \left(\frac{m}{\color{blue}{1 \cdot v}} - 1 \cdot \mathsf{fma}\left(m, \left(\frac{m}{v}\right), 1\right)\right)\]
  6. Applied add-sqr-sqrt0.3

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

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

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

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

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

    \[\leadsto \left(\frac{m}{\frac{v}{m}} - \mathsf{fma}\left(m, \left(\frac{m}{\frac{v}{m}}\right), m\right)\right) + \color{blue}{0}\]
  12. Using strategy rm
  13. Applied *-un-lft-identity0.2

    \[\leadsto \left(\frac{m}{\frac{v}{m}} - \mathsf{fma}\left(m, \left(\frac{m}{\frac{v}{\color{blue}{1 \cdot m}}}\right), m\right)\right) + 0\]
  14. Applied add-sqr-sqrt0.2

    \[\leadsto \left(\frac{m}{\frac{v}{m}} - \mathsf{fma}\left(m, \left(\frac{m}{\frac{\color{blue}{\sqrt{v} \cdot \sqrt{v}}}{1 \cdot m}}\right), m\right)\right) + 0\]
  15. Applied times-frac0.2

    \[\leadsto \left(\frac{m}{\frac{v}{m}} - \mathsf{fma}\left(m, \left(\frac{m}{\color{blue}{\frac{\sqrt{v}}{1} \cdot \frac{\sqrt{v}}{m}}}\right), m\right)\right) + 0\]
  16. Applied *-un-lft-identity0.2

    \[\leadsto \left(\frac{m}{\frac{v}{m}} - \mathsf{fma}\left(m, \left(\frac{\color{blue}{1 \cdot m}}{\frac{\sqrt{v}}{1} \cdot \frac{\sqrt{v}}{m}}\right), m\right)\right) + 0\]
  17. Applied times-frac0.2

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

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

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

Reproduce

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