\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{1}{\frac{e^{\frac{\left(mu + EDonor\right) - \left(Ec - Vef\right)}{KbT}} + 1}{NdChar}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r169532 = NdChar;
double r169533 = 1.0;
double r169534 = Ec;
double r169535 = Vef;
double r169536 = r169534 - r169535;
double r169537 = EDonor;
double r169538 = r169536 - r169537;
double r169539 = mu;
double r169540 = r169538 - r169539;
double r169541 = -r169540;
double r169542 = KbT;
double r169543 = r169541 / r169542;
double r169544 = exp(r169543);
double r169545 = r169533 + r169544;
double r169546 = r169532 / r169545;
double r169547 = NaChar;
double r169548 = Ev;
double r169549 = r169548 + r169535;
double r169550 = EAccept;
double r169551 = r169549 + r169550;
double r169552 = -r169539;
double r169553 = r169551 + r169552;
double r169554 = r169553 / r169542;
double r169555 = exp(r169554);
double r169556 = r169533 + r169555;
double r169557 = r169547 / r169556;
double r169558 = r169546 + r169557;
return r169558;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r169559 = 1.0;
double r169560 = mu;
double r169561 = EDonor;
double r169562 = r169560 + r169561;
double r169563 = Ec;
double r169564 = Vef;
double r169565 = r169563 - r169564;
double r169566 = r169562 - r169565;
double r169567 = KbT;
double r169568 = r169566 / r169567;
double r169569 = exp(r169568);
double r169570 = 1.0;
double r169571 = r169569 + r169570;
double r169572 = NdChar;
double r169573 = r169571 / r169572;
double r169574 = r169559 / r169573;
double r169575 = NaChar;
double r169576 = Ev;
double r169577 = r169576 + r169564;
double r169578 = EAccept;
double r169579 = r169577 + r169578;
double r169580 = r169579 - r169560;
double r169581 = r169580 / r169567;
double r169582 = exp(r169581);
double r169583 = r169570 + r169582;
double r169584 = r169575 / r169583;
double r169585 = r169574 + r169584;
return r169585;
}



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
Results
Initial program 0.0
Simplified0.0
rmApplied clear-num0.1
Final simplification0.1
herbie shell --seed 2019323
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
:precision binary64
(+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))