\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right)
\begin{array}{l}
t_0 := \mathsf{fma}\left(m, \frac{1 - m}{v}, -1\right) \cdot \left(1 - m\right)\\
t_1 := \frac{m \cdot \left(1 - m\right)}{v}\\
t_2 := \log t_1\\
t_3 := \mathsf{expm1}\left(\sqrt{{t_2}^{2}}\right) \cdot \left(1 - m\right)\\
t_4 := \left(e^{\left|t_2\right|} - 1\right) \cdot \left(1 - m\right)\\
\mathbf{if}\;m \leq 3.040599766070955 \cdot 10^{-302}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;m \leq 9.835665880300794 \cdot 10^{-281}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;m \leq 1.067715992841778 \cdot 10^{-274}:\\
\;\;\;\;t_4\\
\mathbf{elif}\;m \leq 5.957779467924371 \cdot 10^{-260}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;m \leq 3.2355533048779405 \cdot 10^{-257}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;m \leq 1.0425030099422942 \cdot 10^{-219}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;m \leq 4.6668236699408005 \cdot 10^{-208}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;m \leq 3.526543340822764 \cdot 10^{-168}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;m \leq 2.82186406055365 \cdot 10^{-156}:\\
\;\;\;\;t_4\\
\mathbf{elif}\;m \leq 5.0058231899697725 \cdot 10^{-138}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;m \leq 8.762797621445695 \cdot 10^{-118}:\\
\;\;\;\;t_3\\
\mathbf{elif}\;m \leq 1.1945419363790285 \cdot 10^{-104}:\\
\;\;\;\;\frac{\frac{{m}^{3}}{{v}^{3}} + -1}{{t_1}^{2} + \left(1 + t_1\right)} \cdot \left(1 - m\right)\\
\mathbf{else}:\\
\;\;\;\;t_4\\
\end{array}
(FPCore (m v) :precision binary64 (* (- (/ (* m (- 1.0 m)) v) 1.0) (- 1.0 m)))
(FPCore (m v)
:precision binary64
(let* ((t_0 (* (fma m (/ (- 1.0 m) v) -1.0) (- 1.0 m)))
(t_1 (/ (* m (- 1.0 m)) v))
(t_2 (log t_1))
(t_3 (* (expm1 (sqrt (pow t_2 2.0))) (- 1.0 m)))
(t_4 (* (- (exp (fabs t_2)) 1.0) (- 1.0 m))))
(if (<= m 3.040599766070955e-302)
t_3
(if (<= m 9.835665880300794e-281)
t_0
(if (<= m 1.067715992841778e-274)
t_4
(if (<= m 5.957779467924371e-260)
t_0
(if (<= m 3.2355533048779405e-257)
t_3
(if (<= m 1.0425030099422942e-219)
t_0
(if (<= m 4.6668236699408005e-208)
t_3
(if (<= m 3.526543340822764e-168)
t_0
(if (<= m 2.82186406055365e-156)
t_4
(if (<= m 5.0058231899697725e-138)
t_0
(if (<= m 8.762797621445695e-118)
t_3
(if (<= m 1.1945419363790285e-104)
(*
(/
(+ (/ (pow m 3.0) (pow v 3.0)) -1.0)
(+ (pow t_1 2.0) (+ 1.0 t_1)))
(- 1.0 m))
t_4))))))))))))))double code(double m, double v) {
return (((m * (1.0 - m)) / v) - 1.0) * (1.0 - m);
}
double code(double m, double v) {
double t_0 = fma(m, ((1.0 - m) / v), -1.0) * (1.0 - m);
double t_1 = (m * (1.0 - m)) / v;
double t_2 = log(t_1);
double t_3 = expm1(sqrt(pow(t_2, 2.0))) * (1.0 - m);
double t_4 = (exp(fabs(t_2)) - 1.0) * (1.0 - m);
double tmp;
if (m <= 3.040599766070955e-302) {
tmp = t_3;
} else if (m <= 9.835665880300794e-281) {
tmp = t_0;
} else if (m <= 1.067715992841778e-274) {
tmp = t_4;
} else if (m <= 5.957779467924371e-260) {
tmp = t_0;
} else if (m <= 3.2355533048779405e-257) {
tmp = t_3;
} else if (m <= 1.0425030099422942e-219) {
tmp = t_0;
} else if (m <= 4.6668236699408005e-208) {
tmp = t_3;
} else if (m <= 3.526543340822764e-168) {
tmp = t_0;
} else if (m <= 2.82186406055365e-156) {
tmp = t_4;
} else if (m <= 5.0058231899697725e-138) {
tmp = t_0;
} else if (m <= 8.762797621445695e-118) {
tmp = t_3;
} else if (m <= 1.1945419363790285e-104) {
tmp = (((pow(m, 3.0) / pow(v, 3.0)) + -1.0) / (pow(t_1, 2.0) + (1.0 + t_1))) * (1.0 - m);
} else {
tmp = t_4;
}
return tmp;
}



Bits error versus m



Bits error versus v
if m < 3.0405997660709548e-302 or 5.95777946792437108e-260 < m < 3.235553304877941e-257 or 1.04250300994229425e-219 < m < 4.66682366994080054e-208 or 5.0058231899697725e-138 < m < 8.76279762144569546e-118Initial program 0.0
Applied egg-rr1.9
Applied egg-rr40.0
if 3.0405997660709548e-302 < m < 9.835665880300794e-281 or 1.067715992841778e-274 < m < 5.95777946792437108e-260 or 3.235553304877941e-257 < m < 1.04250300994229425e-219 or 4.66682366994080054e-208 < m < 3.5265433408227639e-168 or 2.82186406055365019e-156 < m < 5.0058231899697725e-138Initial program 0.0
Applied egg-rr0.1
if 9.835665880300794e-281 < m < 1.067715992841778e-274 or 3.5265433408227639e-168 < m < 2.82186406055365019e-156 or 1.19454193637902848e-104 < m Initial program 0.2
Applied egg-rr21.1
Applied egg-rr31.4
Taylor expanded in m around 0 31.4
if 8.76279762144569546e-118 < m < 1.19454193637902848e-104Initial program 0.0
Applied egg-rr18.7
Taylor expanded in m around 0 41.2
Final simplification21.3
herbie shell --seed 2022127
(FPCore (m v)
:name "b parameter of renormalized beta distribution"
:precision binary64
:pre (and (and (< 0.0 m) (< 0.0 v)) (< v 0.25))
(* (- (/ (* m (- 1.0 m)) v) 1.0) (- 1.0 m)))