\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{\frac{\frac{NaChar}{\sqrt{\sqrt{e^{\frac{\left(Ev + \left(Vef + EAccept\right)\right) - mu}{KbT}} + 1}}}}{\sqrt{\sqrt{e^{\frac{\left(Ev + \left(Vef + EAccept\right)\right) - mu}{KbT}} + 1}}}}{\sqrt{e^{\frac{\left(Ev + \left(Vef + EAccept\right)\right) - mu}{KbT}} + 1}} + \frac{1}{1 + e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}} \cdot NdChardouble f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7394356 = NdChar;
double r7394357 = 1.0;
double r7394358 = Ec;
double r7394359 = Vef;
double r7394360 = r7394358 - r7394359;
double r7394361 = EDonor;
double r7394362 = r7394360 - r7394361;
double r7394363 = mu;
double r7394364 = r7394362 - r7394363;
double r7394365 = -r7394364;
double r7394366 = KbT;
double r7394367 = r7394365 / r7394366;
double r7394368 = exp(r7394367);
double r7394369 = r7394357 + r7394368;
double r7394370 = r7394356 / r7394369;
double r7394371 = NaChar;
double r7394372 = Ev;
double r7394373 = r7394372 + r7394359;
double r7394374 = EAccept;
double r7394375 = r7394373 + r7394374;
double r7394376 = -r7394363;
double r7394377 = r7394375 + r7394376;
double r7394378 = r7394377 / r7394366;
double r7394379 = exp(r7394378);
double r7394380 = r7394357 + r7394379;
double r7394381 = r7394371 / r7394380;
double r7394382 = r7394370 + r7394381;
return r7394382;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7394383 = NaChar;
double r7394384 = Ev;
double r7394385 = Vef;
double r7394386 = EAccept;
double r7394387 = r7394385 + r7394386;
double r7394388 = r7394384 + r7394387;
double r7394389 = mu;
double r7394390 = r7394388 - r7394389;
double r7394391 = KbT;
double r7394392 = r7394390 / r7394391;
double r7394393 = exp(r7394392);
double r7394394 = 1.0;
double r7394395 = r7394393 + r7394394;
double r7394396 = sqrt(r7394395);
double r7394397 = sqrt(r7394396);
double r7394398 = r7394383 / r7394397;
double r7394399 = r7394398 / r7394397;
double r7394400 = r7394399 / r7394396;
double r7394401 = Ec;
double r7394402 = r7394401 - r7394385;
double r7394403 = EDonor;
double r7394404 = r7394402 - r7394403;
double r7394405 = r7394389 - r7394404;
double r7394406 = r7394405 / r7394391;
double r7394407 = exp(r7394406);
double r7394408 = r7394394 + r7394407;
double r7394409 = r7394394 / r7394408;
double r7394410 = NdChar;
double r7394411 = r7394409 * r7394410;
double r7394412 = r7394400 + r7394411;
return r7394412;
}



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 div-inv0.0
rmApplied add-sqr-sqrt0.2
Applied associate-/r*0.1
rmApplied add-sqr-sqrt0.1
Applied sqrt-prod0.1
Applied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019135
(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))))))