Average Error: 0.1 → 0.1
Time: 17.9s
Precision: 64
\[0.0 \lt m \land 0.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 - m\right) \cdot \left(\mathsf{fma}\left(1, \frac{m}{v}, -\frac{m \cdot m}{v}\right) - 1\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
\left(1 - m\right) \cdot \left(\mathsf{fma}\left(1, \frac{m}{v}, -\frac{m \cdot m}{v}\right) - 1\right)
double f(double m, double v) {
        double r21941 = m;
        double r21942 = 1.0;
        double r21943 = r21942 - r21941;
        double r21944 = r21941 * r21943;
        double r21945 = v;
        double r21946 = r21944 / r21945;
        double r21947 = r21946 - r21942;
        double r21948 = r21947 * r21943;
        return r21948;
}

double f(double m, double v) {
        double r21949 = 1.0;
        double r21950 = m;
        double r21951 = r21949 - r21950;
        double r21952 = v;
        double r21953 = r21950 / r21952;
        double r21954 = r21950 * r21950;
        double r21955 = r21954 / r21952;
        double r21956 = -r21955;
        double r21957 = fma(r21949, r21953, r21956);
        double r21958 = r21957 - r21949;
        double r21959 = r21951 * r21958;
        return r21959;
}

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 associate-/l*0.1

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

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

    \[\leadsto \left(m \cdot \color{blue}{\left(\frac{1}{v} \cdot \left(1 - m\right)\right)} - 1\right) \cdot \left(1 - m\right)\]
  7. Taylor expanded around 0 0.1

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

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

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

Reproduce

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