\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}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}} + \frac{NdChar}{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\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 r150336 = NdChar;
double r150337 = 1.0;
double r150338 = Ec;
double r150339 = Vef;
double r150340 = r150338 - r150339;
double r150341 = EDonor;
double r150342 = r150340 - r150341;
double r150343 = mu;
double r150344 = r150342 - r150343;
double r150345 = -r150344;
double r150346 = KbT;
double r150347 = r150345 / r150346;
double r150348 = exp(r150347);
double r150349 = r150337 + r150348;
double r150350 = r150336 / r150349;
double r150351 = NaChar;
double r150352 = Ev;
double r150353 = r150352 + r150339;
double r150354 = EAccept;
double r150355 = r150353 + r150354;
double r150356 = -r150343;
double r150357 = r150355 + r150356;
double r150358 = r150357 / r150346;
double r150359 = exp(r150358);
double r150360 = r150337 + r150359;
double r150361 = r150351 / r150360;
double r150362 = r150350 + r150361;
return r150362;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r150363 = NaChar;
double r150364 = 1.0;
double r150365 = Ev;
double r150366 = Vef;
double r150367 = r150365 + r150366;
double r150368 = EAccept;
double r150369 = r150367 + r150368;
double r150370 = mu;
double r150371 = r150369 - r150370;
double r150372 = KbT;
double r150373 = r150371 / r150372;
double r150374 = exp(r150373);
double r150375 = r150364 + r150374;
double r150376 = r150363 / r150375;
double r150377 = NdChar;
double r150378 = EDonor;
double r150379 = Ec;
double r150380 = r150379 - r150366;
double r150381 = r150378 - r150380;
double r150382 = r150370 + r150381;
double r150383 = r150382 / r150372;
double r150384 = exp(r150383);
double r150385 = r150384 + r150364;
double r150386 = r150377 / r150385;
double r150387 = r150376 + r150386;
return r150387;
}



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 2019195
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
(+ (/ NdChar (+ 1.0 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1.0 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))