Average Error: 0.1 → 0.1
Time: 54.8s
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(1 - \sqrt{m}\right) \cdot \mathsf{fma}\left(\sqrt{m}, \mathsf{fma}\left(1 - m, \frac{m}{v}, -1\right), \mathsf{fma}\left(1 - m, \frac{m}{v}, -1\right)\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
\left(1 - \sqrt{m}\right) \cdot \mathsf{fma}\left(\sqrt{m}, \mathsf{fma}\left(1 - m, \frac{m}{v}, -1\right), \mathsf{fma}\left(1 - m, \frac{m}{v}, -1\right)\right)
double f(double m, double v) {
        double r1531214 = m;
        double r1531215 = 1.0;
        double r1531216 = r1531215 - r1531214;
        double r1531217 = r1531214 * r1531216;
        double r1531218 = v;
        double r1531219 = r1531217 / r1531218;
        double r1531220 = r1531219 - r1531215;
        double r1531221 = r1531220 * r1531216;
        return r1531221;
}

double f(double m, double v) {
        double r1531222 = 1.0;
        double r1531223 = m;
        double r1531224 = sqrt(r1531223);
        double r1531225 = r1531222 - r1531224;
        double r1531226 = r1531222 - r1531223;
        double r1531227 = v;
        double r1531228 = r1531223 / r1531227;
        double r1531229 = -1.0;
        double r1531230 = fma(r1531226, r1531228, r1531229);
        double r1531231 = fma(r1531224, r1531230, r1531230);
        double r1531232 = r1531225 * r1531231;
        return r1531232;
}

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

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

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

    \[\leadsto \mathsf{fma}\left(\frac{m}{v}, 1 - m, -1\right) \cdot \left(\color{blue}{1 \cdot 1} - \sqrt{m} \cdot \sqrt{m}\right)\]
  6. Applied difference-of-squares0.1

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

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

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

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

Reproduce

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