\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{NaChar}{e^{\frac{EAccept + \left(\left(Ev - mu\right) + Vef\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - EDonor\right) - Vef\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r171586 = NdChar;
double r171587 = 1.0;
double r171588 = Ec;
double r171589 = Vef;
double r171590 = r171588 - r171589;
double r171591 = EDonor;
double r171592 = r171590 - r171591;
double r171593 = mu;
double r171594 = r171592 - r171593;
double r171595 = -r171594;
double r171596 = KbT;
double r171597 = r171595 / r171596;
double r171598 = exp(r171597);
double r171599 = r171587 + r171598;
double r171600 = r171586 / r171599;
double r171601 = NaChar;
double r171602 = Ev;
double r171603 = r171602 + r171589;
double r171604 = EAccept;
double r171605 = r171603 + r171604;
double r171606 = -r171593;
double r171607 = r171605 + r171606;
double r171608 = r171607 / r171596;
double r171609 = exp(r171608);
double r171610 = r171587 + r171609;
double r171611 = r171601 / r171610;
double r171612 = r171600 + r171611;
return r171612;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r171613 = NaChar;
double r171614 = EAccept;
double r171615 = Ev;
double r171616 = mu;
double r171617 = r171615 - r171616;
double r171618 = Vef;
double r171619 = r171617 + r171618;
double r171620 = r171614 + r171619;
double r171621 = KbT;
double r171622 = r171620 / r171621;
double r171623 = exp(r171622);
double r171624 = 1.0;
double r171625 = r171623 + r171624;
double r171626 = r171613 / r171625;
double r171627 = NdChar;
double r171628 = Ec;
double r171629 = EDonor;
double r171630 = r171628 - r171629;
double r171631 = r171630 - r171618;
double r171632 = r171616 - r171631;
double r171633 = r171632 / r171621;
double r171634 = exp(r171633);
double r171635 = r171634 + r171624;
double r171636 = r171627 / r171635;
double r171637 = r171626 + r171636;
return r171637;
}



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
Final simplification0.0
herbie shell --seed 2019194 +o rules:numerics
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
(+ (/ NdChar (+ 1.0 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1.0 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))