\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}{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}} + 1} + \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 r174596 = NdChar;
double r174597 = 1.0;
double r174598 = Ec;
double r174599 = Vef;
double r174600 = r174598 - r174599;
double r174601 = EDonor;
double r174602 = r174600 - r174601;
double r174603 = mu;
double r174604 = r174602 - r174603;
double r174605 = -r174604;
double r174606 = KbT;
double r174607 = r174605 / r174606;
double r174608 = exp(r174607);
double r174609 = r174597 + r174608;
double r174610 = r174596 / r174609;
double r174611 = NaChar;
double r174612 = Ev;
double r174613 = r174612 + r174599;
double r174614 = EAccept;
double r174615 = r174613 + r174614;
double r174616 = -r174603;
double r174617 = r174615 + r174616;
double r174618 = r174617 / r174606;
double r174619 = exp(r174618);
double r174620 = r174597 + r174619;
double r174621 = r174611 / r174620;
double r174622 = r174610 + r174621;
return r174622;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r174623 = NdChar;
double r174624 = mu;
double r174625 = EDonor;
double r174626 = Ec;
double r174627 = Vef;
double r174628 = r174626 - r174627;
double r174629 = r174625 - r174628;
double r174630 = r174624 + r174629;
double r174631 = KbT;
double r174632 = r174630 / r174631;
double r174633 = exp(r174632);
double r174634 = 1.0;
double r174635 = r174633 + r174634;
double r174636 = r174623 / r174635;
double r174637 = NaChar;
double r174638 = Ev;
double r174639 = r174638 + r174627;
double r174640 = EAccept;
double r174641 = r174639 + r174640;
double r174642 = r174641 - r174624;
double r174643 = r174642 / r174631;
double r174644 = exp(r174643);
double r174645 = r174634 + r174644;
double r174646 = r174637 / r174645;
double r174647 = r174636 + r174646;
return r174647;
}



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 2019209
(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))))))