Average Error: 0.2 → 0.2
Time: 56.3s
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 m\]
\[m \cdot (\left(\frac{m}{v}\right) \cdot \left(1 - m\right) + -1)_*\]
\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m
m \cdot (\left(\frac{m}{v}\right) \cdot \left(1 - m\right) + -1)_*
double f(double m, double v) {
        double r1934472 = m;
        double r1934473 = 1.0;
        double r1934474 = r1934473 - r1934472;
        double r1934475 = r1934472 * r1934474;
        double r1934476 = v;
        double r1934477 = r1934475 / r1934476;
        double r1934478 = r1934477 - r1934473;
        double r1934479 = r1934478 * r1934472;
        return r1934479;
}

double f(double m, double v) {
        double r1934480 = m;
        double r1934481 = v;
        double r1934482 = r1934480 / r1934481;
        double r1934483 = 1.0;
        double r1934484 = r1934483 - r1934480;
        double r1934485 = -1.0;
        double r1934486 = fma(r1934482, r1934484, r1934485);
        double r1934487 = r1934480 * r1934486;
        return r1934487;
}

Error

Bits error versus m

Bits error versus v

Derivation

  1. Initial program 0.2

    \[\left(\frac{m \cdot \left(1 - m\right)}{v} - 1\right) \cdot m\]
  2. Using strategy rm
  3. Applied *-un-lft-identity0.2

    \[\leadsto \left(\frac{m \cdot \left(1 - m\right)}{v} - \color{blue}{1 \cdot 1}\right) \cdot m\]
  4. Applied add-cube-cbrt0.8

    \[\leadsto \left(\frac{m \cdot \left(1 - m\right)}{\color{blue}{\left(\sqrt[3]{v} \cdot \sqrt[3]{v}\right) \cdot \sqrt[3]{v}}} - 1 \cdot 1\right) \cdot m\]
  5. Applied times-frac0.8

    \[\leadsto \left(\color{blue}{\frac{m}{\sqrt[3]{v} \cdot \sqrt[3]{v}} \cdot \frac{1 - m}{\sqrt[3]{v}}} - 1 \cdot 1\right) \cdot m\]
  6. Applied prod-diff0.8

    \[\leadsto \color{blue}{\left((\left(\frac{m}{\sqrt[3]{v} \cdot \sqrt[3]{v}}\right) \cdot \left(\frac{1 - m}{\sqrt[3]{v}}\right) + \left(-1 \cdot 1\right))_* + (\left(-1\right) \cdot 1 + \left(1 \cdot 1\right))_*\right)} \cdot m\]
  7. Simplified0.2

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

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

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

Reproduce

herbie shell --seed 2019104 +o rules:numerics
(FPCore (m v)
  :name "a parameter of renormalized beta distribution"
  :pre (and (< 0 m) (< 0 v) (< v 0.25))
  (* (- (/ (* m (- 1 m)) v) 1) m))