Average Error: 0.2 → 0.2
Time: 17.8s
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 m\]
\[\left(m \cdot \left(\left(1 - m\right) \cdot \frac{1}{v}\right) - 1\right) \cdot m\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m
\left(m \cdot \left(\left(1 - m\right) \cdot \frac{1}{v}\right) - 1\right) \cdot m
double f(double m, double v) {
        double r17594 = m;
        double r17595 = 1.0;
        double r17596 = r17595 - r17594;
        double r17597 = r17594 * r17596;
        double r17598 = v;
        double r17599 = r17597 / r17598;
        double r17600 = r17599 - r17595;
        double r17601 = r17600 * r17594;
        return r17601;
}

double f(double m, double v) {
        double r17602 = m;
        double r17603 = 1.0;
        double r17604 = r17603 - r17602;
        double r17605 = 1.0;
        double r17606 = v;
        double r17607 = r17605 / r17606;
        double r17608 = r17604 * r17607;
        double r17609 = r17602 * r17608;
        double r17610 = r17609 - r17603;
        double r17611 = r17610 * r17602;
        return r17611;
}

Error

Bits error versus m

Bits error versus v

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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 *-un-lft-identity0.2

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

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

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

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

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

Reproduce

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