\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 r163510 = NdChar;
double r163511 = 1.0;
double r163512 = Ec;
double r163513 = Vef;
double r163514 = r163512 - r163513;
double r163515 = EDonor;
double r163516 = r163514 - r163515;
double r163517 = mu;
double r163518 = r163516 - r163517;
double r163519 = -r163518;
double r163520 = KbT;
double r163521 = r163519 / r163520;
double r163522 = exp(r163521);
double r163523 = r163511 + r163522;
double r163524 = r163510 / r163523;
double r163525 = NaChar;
double r163526 = Ev;
double r163527 = r163526 + r163513;
double r163528 = EAccept;
double r163529 = r163527 + r163528;
double r163530 = -r163517;
double r163531 = r163529 + r163530;
double r163532 = r163531 / r163520;
double r163533 = exp(r163532);
double r163534 = r163511 + r163533;
double r163535 = r163525 / r163534;
double r163536 = r163524 + r163535;
return r163536;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r163537 = NdChar;
double r163538 = mu;
double r163539 = EDonor;
double r163540 = Ec;
double r163541 = Vef;
double r163542 = r163540 - r163541;
double r163543 = r163539 - r163542;
double r163544 = r163538 + r163543;
double r163545 = KbT;
double r163546 = r163544 / r163545;
double r163547 = exp(r163546);
double r163548 = 1.0;
double r163549 = r163547 + r163548;
double r163550 = r163537 / r163549;
double r163551 = NaChar;
double r163552 = Ev;
double r163553 = r163552 + r163541;
double r163554 = EAccept;
double r163555 = r163553 + r163554;
double r163556 = r163555 - r163538;
double r163557 = r163556 / r163545;
double r163558 = exp(r163557);
double r163559 = r163548 + r163558;
double r163560 = r163551 / r163559;
double r163561 = r163550 + r163560;
return r163561;
}



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