Average Error: 0.2 → 0.2
Time: 5.1s
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(\frac{\frac{m \cdot \left(1 \cdot 1 - m \cdot m\right)}{1 + m}}{v} - 1\right) \cdot m\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m
\left(\frac{\frac{m \cdot \left(1 \cdot 1 - m \cdot m\right)}{1 + m}}{v} - 1\right) \cdot m
double f(double m, double v) {
        double r16189 = m;
        double r16190 = 1.0;
        double r16191 = r16190 - r16189;
        double r16192 = r16189 * r16191;
        double r16193 = v;
        double r16194 = r16192 / r16193;
        double r16195 = r16194 - r16190;
        double r16196 = r16195 * r16189;
        return r16196;
}

double f(double m, double v) {
        double r16197 = m;
        double r16198 = 1.0;
        double r16199 = r16198 * r16198;
        double r16200 = r16197 * r16197;
        double r16201 = r16199 - r16200;
        double r16202 = r16197 * r16201;
        double r16203 = r16198 + r16197;
        double r16204 = r16202 / r16203;
        double r16205 = v;
        double r16206 = r16204 / r16205;
        double r16207 = r16206 - r16198;
        double r16208 = r16207 * r16197;
        return r16208;
}

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 flip--0.2

    \[\leadsto \left(\frac{m \cdot \color{blue}{\frac{1 \cdot 1 - m \cdot m}{1 + m}}}{v} - 1\right) \cdot m\]
  4. Applied associate-*r/0.2

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

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

Reproduce

herbie shell --seed 2019344 
(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))