Average Error: 0.0 → 0.0
Time: 17.4s
Precision: 64
\[\frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}\]
\[\frac{NdChar}{\mathsf{fma}\left(\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, 1\right)} + \frac{NaChar}{e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}} + 1}\]
\frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}
\frac{NdChar}{\mathsf{fma}\left(\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, 1\right)} + \frac{NaChar}{e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}} + 1}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r6677370 = NdChar;
        double r6677371 = 1.0;
        double r6677372 = Ec;
        double r6677373 = Vef;
        double r6677374 = r6677372 - r6677373;
        double r6677375 = EDonor;
        double r6677376 = r6677374 - r6677375;
        double r6677377 = mu;
        double r6677378 = r6677376 - r6677377;
        double r6677379 = -r6677378;
        double r6677380 = KbT;
        double r6677381 = r6677379 / r6677380;
        double r6677382 = exp(r6677381);
        double r6677383 = r6677371 + r6677382;
        double r6677384 = r6677370 / r6677383;
        double r6677385 = NaChar;
        double r6677386 = Ev;
        double r6677387 = r6677386 + r6677373;
        double r6677388 = EAccept;
        double r6677389 = r6677387 + r6677388;
        double r6677390 = -r6677377;
        double r6677391 = r6677389 + r6677390;
        double r6677392 = r6677391 / r6677380;
        double r6677393 = exp(r6677392);
        double r6677394 = r6677371 + r6677393;
        double r6677395 = r6677385 / r6677394;
        double r6677396 = r6677384 + r6677395;
        return r6677396;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r6677397 = NdChar;
        double r6677398 = mu;
        double r6677399 = Ec;
        double r6677400 = Vef;
        double r6677401 = r6677399 - r6677400;
        double r6677402 = EDonor;
        double r6677403 = r6677401 - r6677402;
        double r6677404 = r6677398 - r6677403;
        double r6677405 = KbT;
        double r6677406 = r6677404 / r6677405;
        double r6677407 = exp(r6677406);
        double r6677408 = sqrt(r6677407);
        double r6677409 = 1.0;
        double r6677410 = fma(r6677408, r6677408, r6677409);
        double r6677411 = r6677397 / r6677410;
        double r6677412 = NaChar;
        double r6677413 = r6677400 - r6677398;
        double r6677414 = Ev;
        double r6677415 = r6677413 + r6677414;
        double r6677416 = EAccept;
        double r6677417 = r6677415 + r6677416;
        double r6677418 = r6677417 / r6677405;
        double r6677419 = exp(r6677418);
        double r6677420 = r6677419 + r6677409;
        double r6677421 = r6677412 / r6677420;
        double r6677422 = r6677411 + r6677421;
        return r6677422;
}

Error

Bits error versus NdChar

Bits error versus Ec

Bits error versus Vef

Bits error versus EDonor

Bits error versus mu

Bits error versus KbT

Bits error versus NaChar

Bits error versus Ev

Bits error versus EAccept

Derivation

  1. Initial program 0.0

    \[\frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(\left(Vef - mu\right) + Ev\right)}{KbT}}} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.0

    \[\leadsto \frac{NaChar}{1 + e^{\frac{EAccept + \left(\left(Vef - mu\right) + Ev\right)}{KbT}}} + \frac{NdChar}{\color{blue}{\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}} \cdot \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}} + 1}\]
  5. Applied fma-def0.0

    \[\leadsto \frac{NaChar}{1 + e^{\frac{EAccept + \left(\left(Vef - mu\right) + Ev\right)}{KbT}}} + \frac{NdChar}{\color{blue}{\mathsf{fma}\left(\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, 1\right)}}\]
  6. Final simplification0.0

    \[\leadsto \frac{NdChar}{\mathsf{fma}\left(\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, 1\right)} + \frac{NaChar}{e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}} + 1}\]

Reproduce

herbie shell --seed 2019138 +o rules:numerics
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
  :name "Bulmash initializePoisson"
  (+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))