Average Error: 0.1 → 21.3
Time: 5.6s
Precision: binary64
\[\left(0 < m \land 0 < v\right) \land v < 0.25\]
\[\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} \]
\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;
}

Error

Bits error versus m

Bits error versus v

Derivation

  1. Split input into 4 regimes
  2. 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-118

    1. Initial program 0.0

      \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right) \]
    2. Applied egg-rr1.9

      \[\leadsto \color{blue}{\mathsf{expm1}\left(\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)\right)} \cdot \left(1 - m\right) \]
    3. Applied egg-rr40.0

      \[\leadsto \mathsf{expm1}\left(\color{blue}{\sqrt{{\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)}^{2}}}\right) \cdot \left(1 - m\right) \]

    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-138

    1. Initial program 0.0

      \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right) \]
    2. Applied egg-rr0.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(m, \frac{1 - m}{v}, -1\right)} \cdot \left(1 - m\right) \]

    if 9.835665880300794e-281 < m < 1.067715992841778e-274 or 3.5265433408227639e-168 < m < 2.82186406055365019e-156 or 1.19454193637902848e-104 < m

    1. Initial program 0.2

      \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right) \]
    2. Applied egg-rr21.1

      \[\leadsto \color{blue}{\mathsf{expm1}\left(\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)\right)} \cdot \left(1 - m\right) \]
    3. Applied egg-rr31.4

      \[\leadsto \mathsf{expm1}\left(\color{blue}{\left|\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)\right|}\right) \cdot \left(1 - m\right) \]
    4. Taylor expanded in m around 0 31.4

      \[\leadsto \color{blue}{\left(e^{\left|\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)\right|} - 1\right)} \cdot \left(1 - m\right) \]

    if 8.76279762144569546e-118 < m < 1.19454193637902848e-104

    1. Initial program 0.0

      \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot \left(1 - m\right) \]
    2. Applied egg-rr18.7

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

      \[\leadsto \frac{\color{blue}{\frac{{m}^{3}}{{v}^{3}}} + -1}{{\left(\frac{m \cdot \left(1 - m\right)}{v}\right)}^{2} + \left(1 + \frac{m \cdot \left(1 - m\right)}{v}\right)} \cdot \left(1 - m\right) \]
  3. Recombined 4 regimes into one program.
  4. Final simplification21.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;m \leq 3.040599766070955 \cdot 10^{-302}:\\ \;\;\;\;\mathsf{expm1}\left(\sqrt{{\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)}^{2}}\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 9.835665880300794 \cdot 10^{-281}:\\ \;\;\;\;\mathsf{fma}\left(m, \frac{1 - m}{v}, -1\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 1.067715992841778 \cdot 10^{-274}:\\ \;\;\;\;\left(e^{\left|\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)\right|} - 1\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 5.957779467924371 \cdot 10^{-260}:\\ \;\;\;\;\mathsf{fma}\left(m, \frac{1 - m}{v}, -1\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 3.2355533048779405 \cdot 10^{-257}:\\ \;\;\;\;\mathsf{expm1}\left(\sqrt{{\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)}^{2}}\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 1.0425030099422942 \cdot 10^{-219}:\\ \;\;\;\;\mathsf{fma}\left(m, \frac{1 - m}{v}, -1\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 4.6668236699408005 \cdot 10^{-208}:\\ \;\;\;\;\mathsf{expm1}\left(\sqrt{{\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)}^{2}}\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 3.526543340822764 \cdot 10^{-168}:\\ \;\;\;\;\mathsf{fma}\left(m, \frac{1 - m}{v}, -1\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 2.82186406055365 \cdot 10^{-156}:\\ \;\;\;\;\left(e^{\left|\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)\right|} - 1\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 5.0058231899697725 \cdot 10^{-138}:\\ \;\;\;\;\mathsf{fma}\left(m, \frac{1 - m}{v}, -1\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 8.762797621445695 \cdot 10^{-118}:\\ \;\;\;\;\mathsf{expm1}\left(\sqrt{{\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)}^{2}}\right) \cdot \left(1 - m\right)\\ \mathbf{elif}\;m \leq 1.1945419363790285 \cdot 10^{-104}:\\ \;\;\;\;\frac{\frac{{m}^{3}}{{v}^{3}} + -1}{{\left(\frac{m \cdot \left(1 - m\right)}{v}\right)}^{2} + \left(1 + \frac{m \cdot \left(1 - m\right)}{v}\right)} \cdot \left(1 - m\right)\\ \mathbf{else}:\\ \;\;\;\;\left(e^{\left|\log \left(\frac{m \cdot \left(1 - m\right)}{v}\right)\right|} - 1\right) \cdot \left(1 - m\right)\\ \end{array} \]

Reproduce

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)))