Average Error: 0.1 → 0.1
Time: 3.7min
Precision: binary64
Cost: 960
\[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{m}{v} + \left(m - 2\right) \cdot \left(m \cdot \frac{m}{v}\right)\right) + -1\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
\left(\frac{m}{v} + \left(m - 2\right) \cdot \left(m \cdot \frac{m}{v}\right)\right) + -1
(FPCore (m v) :precision binary64 (* (- (/ (* m (- 1.0 m)) v) 1.0) (- 1.0 m)))
(FPCore (m v)
 :precision binary64
 (+ (+ (/ m v) (* (- m 2.0) (* m (/ m v)))) -1.0))
double code(double m, double v) {
	return (((m * (1.0 - m)) / v) - 1.0) * (1.0 - m);
}
double code(double m, double v) {
	return ((m / v) + ((m - 2.0) * (m * (m / v)))) + -1.0;
}

Error

Bits error versus m

Bits error versus v

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Alternatives

Alternative 1
Error0.1
Cost832
\[\left(1 - m\right) \cdot \left(-1 + \frac{m}{\frac{v}{1 - m}}\right)\]
Alternative 2
Error0.1
Cost832
\[\left(1 - m\right) \cdot \left(-1 + \frac{m \cdot \left(1 - m\right)}{v}\right)\]
Alternative 3
Error0.1
Cost832
\[-1 + \frac{m}{v} \cdot \left(1 + m \cdot \left(m - 2\right)\right)\]
Alternative 4
Error0.2
Cost1025
\[\begin{array}{l} \mathbf{if}\;m \leq 3.4909940996176206 \cdot 10^{-15}:\\ \;\;\;\;-1 + \frac{m}{v} \cdot \left(1 + m \cdot -2\right)\\ \mathbf{else}:\\ \;\;\;\;\left(1 - m\right) \cdot \frac{m \cdot \left(1 - m\right)}{v}\\ \end{array}\]
Alternative 5
Error1.9
Cost1025
\[\begin{array}{l} \mathbf{if}\;m \leq 0.43812959892688524:\\ \;\;\;\;-1 + \frac{m}{v} \cdot \left(1 + m \cdot -2\right)\\ \mathbf{else}:\\ \;\;\;\;m \cdot \left(m \cdot \frac{m}{v} + 1\right)\\ \end{array}\]
Alternative 6
Error9.8
Cost320
\[\frac{m}{v} + -1\]
Alternative 7
Error37.4
Cost192
\[m + -1\]
Alternative 8
Error37.7
Cost64
\[-1\]

Error

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 add-exp-log_binary643.5

    \[\leadsto \left(\frac{m \cdot \left(1 - m\right)}{\color{blue}{e^{\log v}}} - 1\right) \cdot \left(1 - m\right)\]
  4. Applied add-exp-log_binary6412.0

    \[\leadsto \left(\frac{m \cdot \color{blue}{e^{\log \left(1 - m\right)}}}{e^{\log v}} - 1\right) \cdot \left(1 - m\right)\]
  5. Applied add-exp-log_binary6412.0

    \[\leadsto \left(\frac{\color{blue}{e^{\log m}} \cdot e^{\log \left(1 - m\right)}}{e^{\log v}} - 1\right) \cdot \left(1 - m\right)\]
  6. Applied prod-exp_binary6412.0

    \[\leadsto \left(\frac{\color{blue}{e^{\log m + \log \left(1 - m\right)}}}{e^{\log v}} - 1\right) \cdot \left(1 - m\right)\]
  7. Applied div-exp_binary6412.1

    \[\leadsto \left(\color{blue}{e^{\left(\log m + \log \left(1 - m\right)\right) - \log v}} - 1\right) \cdot \left(1 - m\right)\]
  8. Simplified11.4

    \[\leadsto \left(e^{\color{blue}{\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)}} - 1\right) \cdot \left(1 - m\right)\]
  9. Taylor expanded around 0 3.8

    \[\leadsto \color{blue}{\left({m}^{2} \cdot e^{\log m + \log \left(\frac{1}{v}\right)} + \left(m + e^{\log m + \log \left(\frac{1}{v}\right)}\right)\right) - \left(2 \cdot \left(m \cdot e^{\log m + \log \left(\frac{1}{v}\right)}\right) + 1\right)}\]
  10. Simplified0.1

    \[\leadsto \color{blue}{\left(\left(m + \frac{m}{v}\right) + \left(m \cdot \frac{m}{v}\right) \cdot \left(m - 2\right)\right) + -1}\]
  11. Taylor expanded around 0 0.1

    \[\leadsto \left(\color{blue}{\frac{m}{v}} + \left(m \cdot \frac{m}{v}\right) \cdot \left(m - 2\right)\right) + -1\]
  12. Using strategy rm
  13. Applied *-commutative_binary640.1

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

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

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

Reproduce

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