\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}{1 + e^{-\frac{Ec - \left(EDonor + \left(mu + Vef\right)\right)}{KbT}}} + \frac{NaChar}{e^{\frac{\left(\left(Ev + Vef\right) - mu\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 r45771507 = NdChar;
double r45771508 = 1.0;
double r45771509 = Ec;
double r45771510 = Vef;
double r45771511 = r45771509 - r45771510;
double r45771512 = EDonor;
double r45771513 = r45771511 - r45771512;
double r45771514 = mu;
double r45771515 = r45771513 - r45771514;
double r45771516 = -r45771515;
double r45771517 = KbT;
double r45771518 = r45771516 / r45771517;
double r45771519 = exp(r45771518);
double r45771520 = r45771508 + r45771519;
double r45771521 = r45771507 / r45771520;
double r45771522 = NaChar;
double r45771523 = Ev;
double r45771524 = r45771523 + r45771510;
double r45771525 = EAccept;
double r45771526 = r45771524 + r45771525;
double r45771527 = -r45771514;
double r45771528 = r45771526 + r45771527;
double r45771529 = r45771528 / r45771517;
double r45771530 = exp(r45771529);
double r45771531 = r45771508 + r45771530;
double r45771532 = r45771522 / r45771531;
double r45771533 = r45771521 + r45771532;
return r45771533;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r45771534 = NdChar;
double r45771535 = 1.0;
double r45771536 = Ec;
double r45771537 = EDonor;
double r45771538 = mu;
double r45771539 = Vef;
double r45771540 = r45771538 + r45771539;
double r45771541 = r45771537 + r45771540;
double r45771542 = r45771536 - r45771541;
double r45771543 = KbT;
double r45771544 = r45771542 / r45771543;
double r45771545 = -r45771544;
double r45771546 = exp(r45771545);
double r45771547 = r45771535 + r45771546;
double r45771548 = r45771534 / r45771547;
double r45771549 = NaChar;
double r45771550 = Ev;
double r45771551 = r45771550 + r45771539;
double r45771552 = r45771551 - r45771538;
double r45771553 = EAccept;
double r45771554 = r45771552 + r45771553;
double r45771555 = r45771554 / r45771543;
double r45771556 = exp(r45771555);
double r45771557 = r45771556 + r45771535;
double r45771558 = r45771549 / r45771557;
double r45771559 = r45771548 + r45771558;
return r45771559;
}



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 2019107 +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))))))