\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}{\log \left(e^{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}}}\right) + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r10746339 = NdChar;
double r10746340 = 1.0;
double r10746341 = Ec;
double r10746342 = Vef;
double r10746343 = r10746341 - r10746342;
double r10746344 = EDonor;
double r10746345 = r10746343 - r10746344;
double r10746346 = mu;
double r10746347 = r10746345 - r10746346;
double r10746348 = -r10746347;
double r10746349 = KbT;
double r10746350 = r10746348 / r10746349;
double r10746351 = exp(r10746350);
double r10746352 = r10746340 + r10746351;
double r10746353 = r10746339 / r10746352;
double r10746354 = NaChar;
double r10746355 = Ev;
double r10746356 = r10746355 + r10746342;
double r10746357 = EAccept;
double r10746358 = r10746356 + r10746357;
double r10746359 = -r10746346;
double r10746360 = r10746358 + r10746359;
double r10746361 = r10746360 / r10746349;
double r10746362 = exp(r10746361);
double r10746363 = r10746340 + r10746362;
double r10746364 = r10746354 / r10746363;
double r10746365 = r10746353 + r10746364;
return r10746365;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r10746366 = NaChar;
double r10746367 = 1.0;
double r10746368 = Ev;
double r10746369 = Vef;
double r10746370 = r10746368 + r10746369;
double r10746371 = EAccept;
double r10746372 = r10746370 + r10746371;
double r10746373 = mu;
double r10746374 = r10746372 - r10746373;
double r10746375 = KbT;
double r10746376 = r10746374 / r10746375;
double r10746377 = exp(r10746376);
double r10746378 = r10746367 + r10746377;
double r10746379 = r10746366 / r10746378;
double r10746380 = NdChar;
double r10746381 = EDonor;
double r10746382 = Ec;
double r10746383 = r10746382 - r10746369;
double r10746384 = r10746381 - r10746383;
double r10746385 = r10746373 + r10746384;
double r10746386 = r10746385 / r10746375;
double r10746387 = exp(r10746386);
double r10746388 = exp(r10746387);
double r10746389 = log(r10746388);
double r10746390 = r10746389 + r10746367;
double r10746391 = r10746380 / r10746390;
double r10746392 = r10746379 + r10746391;
return r10746392;
}



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 add-log-exp0.1
Final simplification0.1
herbie shell --seed 2019174
(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))))))