Average Error: 47.2 → 0.9
Time: 1.1m
Precision: 64
Internal precision: 1152
\[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{cp} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{cn}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{cp} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{cn}}\]
\[\frac{{\left(1 - \frac{1}{1 + e^{-s}}\right)}^{cn}}{{\left(1 - \frac{1}{1 + e^{-t}}\right)}^{cn}} \cdot \frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{cp}}{1 + \left(t \cdot \frac{1}{2} + \log \frac{1}{2}\right) \cdot cp}\]

Error

Bits error versus cp

Bits error versus cn

Bits error versus t

Bits error versus s

Derivation

  1. Initial program 47.2

    \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{cp} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{cn}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{cp} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{cn}}\]
  2. Applied taylor 0.9

    \[\leadsto \frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{cp} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{cn}}{\left(\frac{1}{2} \cdot \left(cp \cdot t\right) + \left(1 + \log \frac{1}{2} \cdot cp\right)\right) \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{cn}}\]
  3. Taylor expanded around 0 0.9

    \[\leadsto \frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{cp} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{cn}}{\color{blue}{\left(\frac{1}{2} \cdot \left(cp \cdot t\right) + \left(1 + \log \frac{1}{2} \cdot cp\right)\right)} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{cn}}\]
  4. Applied simplify 0.9

    \[\leadsto \color{blue}{\frac{{\left(1 - \frac{1}{1 + e^{-s}}\right)}^{cn}}{{\left(1 - \frac{1}{1 + e^{-t}}\right)}^{cn}} \cdot \frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{cp}}{1 + \left(t \cdot \frac{1}{2} + \log \frac{1}{2}\right) \cdot cp}}\]
  5. Removed slow pow expressions

Runtime

Time bar (total: 1.1m) Debug log

Please include this information when filing a bug report:

herbie shell --seed '#(3052192724 3812927732 3686175817 630908657 2373248591 511094450)'
(FPCore (cp cn t s)
  :name "Probabilities in a clustering algorithm"
  :pre (and (< 0 cp) (< 0 cn))
  (/ (* (pow (/ 1 (+ 1 (exp (- s)))) cp) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) cn)) (* (pow (/ 1 (+ 1 (exp (- t)))) cp) (pow (- 1 (/ 1 (+ 1 (exp (- t))))) cn))))