Average Error: 0.1 → 0.1
Time: 1.0m
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(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(-m\right) + \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(-m\right) + \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right)
double f(double m, double v) {
        double r2268967 = m;
        double r2268968 = 1.0;
        double r2268969 = r2268968 - r2268967;
        double r2268970 = r2268967 * r2268969;
        double r2268971 = v;
        double r2268972 = r2268970 / r2268971;
        double r2268973 = r2268972 - r2268968;
        double r2268974 = r2268973 * r2268969;
        return r2268974;
}

double f(double m, double v) {
        double r2268975 = m;
        double r2268976 = 1.0;
        double r2268977 = r2268976 - r2268975;
        double r2268978 = r2268975 * r2268977;
        double r2268979 = v;
        double r2268980 = r2268978 / r2268979;
        double r2268981 = r2268980 - r2268976;
        double r2268982 = -r2268975;
        double r2268983 = r2268981 * r2268982;
        double r2268984 = r2268983 + r2268981;
        return r2268984;
}

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

    \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)\]
  2. Using strategy rm
  3. Applied sub-neg0.1

    \[\leadsto \left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \color{blue}{\left(1 + \left(-m\right)\right)}\]
  4. Applied distribute-lft-in0.1

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

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

Reproduce

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