\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 r200478 = NdChar;
double r200479 = 1.0;
double r200480 = Ec;
double r200481 = Vef;
double r200482 = r200480 - r200481;
double r200483 = EDonor;
double r200484 = r200482 - r200483;
double r200485 = mu;
double r200486 = r200484 - r200485;
double r200487 = -r200486;
double r200488 = KbT;
double r200489 = r200487 / r200488;
double r200490 = exp(r200489);
double r200491 = r200479 + r200490;
double r200492 = r200478 / r200491;
double r200493 = NaChar;
double r200494 = Ev;
double r200495 = r200494 + r200481;
double r200496 = EAccept;
double r200497 = r200495 + r200496;
double r200498 = -r200485;
double r200499 = r200497 + r200498;
double r200500 = r200499 / r200488;
double r200501 = exp(r200500);
double r200502 = r200479 + r200501;
double r200503 = r200493 / r200502;
double r200504 = r200492 + r200503;
return r200504;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r200505 = NdChar;
double r200506 = 1.0;
double r200507 = Ec;
double r200508 = Vef;
double r200509 = r200507 - r200508;
double r200510 = EDonor;
double r200511 = r200509 - r200510;
double r200512 = mu;
double r200513 = r200511 - r200512;
double r200514 = -r200513;
double r200515 = KbT;
double r200516 = r200514 / r200515;
double r200517 = exp(r200516);
double r200518 = r200506 + r200517;
double r200519 = r200505 / r200518;
double r200520 = NaChar;
double r200521 = Ev;
double r200522 = r200521 + r200508;
double r200523 = EAccept;
double r200524 = r200522 + r200523;
double r200525 = -r200512;
double r200526 = r200524 + r200525;
double r200527 = r200526 / r200515;
double r200528 = exp(r200527);
double r200529 = r200506 + r200528;
double r200530 = r200520 / r200529;
double r200531 = r200519 + r200530;
return r200531;
}



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