Average Error: 0.1 → 0.1
Time: 4.5s
Precision: binary64
\[0 < m \land 0 < v \land v < 0.25\]
\[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)\]
\[\left(\frac{\frac{m - {m}^{3}}{m + 1}}{v} - 1\right) \cdot \left(1 - m\right)\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
\left(\frac{\frac{m - {m}^{3}}{m + 1}}{v} - 1\right) \cdot \left(1 - m\right)
(FPCore (m v) :precision binary64 (* (- (/ (* m (- 1.0 m)) v) 1.0) (- 1.0 m)))
(FPCore (m v)
 :precision binary64
 (* (- (/ (/ (- m (pow m 3.0)) (+ m 1.0)) v) 1.0) (- 1.0 m)))
double code(double m, double v) {
	return ((double) (((double) ((((double) (m * ((double) (1.0 - m)))) / v) - 1.0)) * ((double) (1.0 - m))));
}
double code(double m, double v) {
	return ((double) (((double) (((((double) (m - ((double) pow(m, 3.0)))) / ((double) (m + 1.0))) / v) - 1.0)) * ((double) (1.0 - m))));
}

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

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

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

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

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

Reproduce

herbie shell --seed 2020219 
(FPCore (m v)
  :name "b parameter of renormalized beta distribution"
  :precision binary64
  :pre (and (< 0.0 m) (< 0.0 v) (< v 0.25))
  (* (- (/ (* m (- 1.0 m)) v) 1.0) (- 1.0 m)))