\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 + \frac{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 r29723427 = NdChar;
double r29723428 = 1.0;
double r29723429 = Ec;
double r29723430 = Vef;
double r29723431 = r29723429 - r29723430;
double r29723432 = EDonor;
double r29723433 = r29723431 - r29723432;
double r29723434 = mu;
double r29723435 = r29723433 - r29723434;
double r29723436 = -r29723435;
double r29723437 = KbT;
double r29723438 = r29723436 / r29723437;
double r29723439 = exp(r29723438);
double r29723440 = r29723428 + r29723439;
double r29723441 = r29723427 / r29723440;
double r29723442 = NaChar;
double r29723443 = Ev;
double r29723444 = r29723443 + r29723430;
double r29723445 = EAccept;
double r29723446 = r29723444 + r29723445;
double r29723447 = -r29723434;
double r29723448 = r29723446 + r29723447;
double r29723449 = r29723448 / r29723437;
double r29723450 = exp(r29723449);
double r29723451 = r29723428 + r29723450;
double r29723452 = r29723442 / r29723451;
double r29723453 = r29723441 + r29723452;
return r29723453;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r29723454 = NdChar;
double r29723455 = 1.0;
double r29723456 = Ec;
double r29723457 = EDonor;
double r29723458 = mu;
double r29723459 = Vef;
double r29723460 = r29723458 + r29723459;
double r29723461 = r29723457 + r29723460;
double r29723462 = r29723456 - r29723461;
double r29723463 = KbT;
double r29723464 = r29723462 / r29723463;
double r29723465 = exp(r29723464);
double r29723466 = r29723455 / r29723465;
double r29723467 = r29723455 + r29723466;
double r29723468 = r29723454 / r29723467;
double r29723469 = NaChar;
double r29723470 = Ev;
double r29723471 = r29723470 + r29723459;
double r29723472 = r29723471 - r29723458;
double r29723473 = EAccept;
double r29723474 = r29723472 + r29723473;
double r29723475 = r29723474 / r29723463;
double r29723476 = exp(r29723475);
double r29723477 = r29723476 + r29723455;
double r29723478 = r29723469 / r29723477;
double r29723479 = r29723468 + r29723478;
return r29723479;
}



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
rmApplied neg-sub00.0
Applied div-sub0.0
Applied exp-diff0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019119 +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))))))