Average Error: 0.2 → 0.2
Time: 43.3s
Precision: 64
\[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m\]
\[m \cdot \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right)\]
double f(double m, double v) {
        double r2284939 = m;
        double r2284940 = 1.0;
        double r2284941 = r2284940 - r2284939;
        double r2284942 = r2284939 * r2284941;
        double r2284943 = v;
        double r2284944 = r2284942 / r2284943;
        double r2284945 = r2284944 - r2284940;
        double r2284946 = r2284945 * r2284939;
        return r2284946;
}

double f(double m, double v) {
        double r2284947 = m;
        double r2284948 = 1.0;
        double r2284949 = r2284948 - r2284947;
        double r2284950 = r2284947 * r2284949;
        double r2284951 = v;
        double r2284952 = r2284950 / r2284951;
        double r2284953 = r2284952 - r2284948;
        double r2284954 = r2284947 * r2284953;
        return r2284954;
}

\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m
m \cdot \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right)

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. Final simplification0.2

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

Reproduce

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