\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 r167431 = NdChar;
double r167432 = 1.0;
double r167433 = Ec;
double r167434 = Vef;
double r167435 = r167433 - r167434;
double r167436 = EDonor;
double r167437 = r167435 - r167436;
double r167438 = mu;
double r167439 = r167437 - r167438;
double r167440 = -r167439;
double r167441 = KbT;
double r167442 = r167440 / r167441;
double r167443 = exp(r167442);
double r167444 = r167432 + r167443;
double r167445 = r167431 / r167444;
double r167446 = NaChar;
double r167447 = Ev;
double r167448 = r167447 + r167434;
double r167449 = EAccept;
double r167450 = r167448 + r167449;
double r167451 = -r167438;
double r167452 = r167450 + r167451;
double r167453 = r167452 / r167441;
double r167454 = exp(r167453);
double r167455 = r167432 + r167454;
double r167456 = r167446 / r167455;
double r167457 = r167445 + r167456;
return r167457;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r167458 = NdChar;
double r167459 = 1.0;
double r167460 = Ec;
double r167461 = Vef;
double r167462 = r167460 - r167461;
double r167463 = EDonor;
double r167464 = r167462 - r167463;
double r167465 = mu;
double r167466 = r167464 - r167465;
double r167467 = -r167466;
double r167468 = KbT;
double r167469 = r167467 / r167468;
double r167470 = exp(r167469);
double r167471 = r167459 + r167470;
double r167472 = r167458 / r167471;
double r167473 = NaChar;
double r167474 = Ev;
double r167475 = r167474 + r167461;
double r167476 = EAccept;
double r167477 = r167475 + r167476;
double r167478 = -r167465;
double r167479 = r167477 + r167478;
double r167480 = r167479 / r167468;
double r167481 = exp(r167480);
double r167482 = r167459 + r167481;
double r167483 = r167473 / r167482;
double r167484 = r167472 + r167483;
return r167484;
}



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