\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{NaChar}{e^{\frac{Vef + \left(\left(Ev - mu\right) + EAccept\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{EDonor - \left(Ec - \left(Vef + mu\right)\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r17385373 = NdChar;
double r17385374 = 1.0;
double r17385375 = Ec;
double r17385376 = Vef;
double r17385377 = r17385375 - r17385376;
double r17385378 = EDonor;
double r17385379 = r17385377 - r17385378;
double r17385380 = mu;
double r17385381 = r17385379 - r17385380;
double r17385382 = -r17385381;
double r17385383 = KbT;
double r17385384 = r17385382 / r17385383;
double r17385385 = exp(r17385384);
double r17385386 = r17385374 + r17385385;
double r17385387 = r17385373 / r17385386;
double r17385388 = NaChar;
double r17385389 = Ev;
double r17385390 = r17385389 + r17385376;
double r17385391 = EAccept;
double r17385392 = r17385390 + r17385391;
double r17385393 = -r17385380;
double r17385394 = r17385392 + r17385393;
double r17385395 = r17385394 / r17385383;
double r17385396 = exp(r17385395);
double r17385397 = r17385374 + r17385396;
double r17385398 = r17385388 / r17385397;
double r17385399 = r17385387 + r17385398;
return r17385399;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r17385400 = NaChar;
double r17385401 = Vef;
double r17385402 = Ev;
double r17385403 = mu;
double r17385404 = r17385402 - r17385403;
double r17385405 = EAccept;
double r17385406 = r17385404 + r17385405;
double r17385407 = r17385401 + r17385406;
double r17385408 = KbT;
double r17385409 = r17385407 / r17385408;
double r17385410 = exp(r17385409);
double r17385411 = 1.0;
double r17385412 = r17385410 + r17385411;
double r17385413 = r17385400 / r17385412;
double r17385414 = NdChar;
double r17385415 = EDonor;
double r17385416 = Ec;
double r17385417 = r17385401 + r17385403;
double r17385418 = r17385416 - r17385417;
double r17385419 = r17385415 - r17385418;
double r17385420 = r17385419 / r17385408;
double r17385421 = exp(r17385420);
double r17385422 = r17385421 + r17385411;
double r17385423 = r17385414 / r17385422;
double r17385424 = r17385413 + r17385423;
return r17385424;
}



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