\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{-\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}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r246560 = NdChar;
double r246561 = 1.0;
double r246562 = Ec;
double r246563 = Vef;
double r246564 = r246562 - r246563;
double r246565 = EDonor;
double r246566 = r246564 - r246565;
double r246567 = mu;
double r246568 = r246566 - r246567;
double r246569 = -r246568;
double r246570 = KbT;
double r246571 = r246569 / r246570;
double r246572 = exp(r246571);
double r246573 = r246561 + r246572;
double r246574 = r246560 / r246573;
double r246575 = NaChar;
double r246576 = Ev;
double r246577 = r246576 + r246563;
double r246578 = EAccept;
double r246579 = r246577 + r246578;
double r246580 = -r246567;
double r246581 = r246579 + r246580;
double r246582 = r246581 / r246570;
double r246583 = exp(r246582);
double r246584 = r246561 + r246583;
double r246585 = r246575 / r246584;
double r246586 = r246574 + r246585;
return r246586;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r246587 = NdChar;
double r246588 = 1.0;
double r246589 = Ec;
double r246590 = Vef;
double r246591 = r246589 - r246590;
double r246592 = EDonor;
double r246593 = r246591 - r246592;
double r246594 = mu;
double r246595 = r246593 - r246594;
double r246596 = -r246595;
double r246597 = KbT;
double r246598 = r246596 / r246597;
double r246599 = exp(r246598);
double r246600 = r246588 + r246599;
double r246601 = r246587 / r246600;
double r246602 = NaChar;
double r246603 = Ev;
double r246604 = r246603 + r246590;
double r246605 = EAccept;
double r246606 = r246604 + r246605;
double r246607 = -r246594;
double r246608 = r246606 + r246607;
double r246609 = r246608 / r246597;
double r246610 = exp(r246609);
double r246611 = r246588 + r246610;
double r246612 = r246602 / r246611;
double r246613 = r246601 + r246612;
return r246613;
}



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
Final simplification0.0
herbie shell --seed 2020056 +o rules:numerics
(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))))))