\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{\left(EAccept + \left(Vef + Ev\right)\right) - mu}{KbT}} + 1} + \frac{NdChar}{e^{\frac{EDonor - \left(\left(Ec - mu\right) - Vef\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6268369 = NdChar;
double r6268370 = 1.0;
double r6268371 = Ec;
double r6268372 = Vef;
double r6268373 = r6268371 - r6268372;
double r6268374 = EDonor;
double r6268375 = r6268373 - r6268374;
double r6268376 = mu;
double r6268377 = r6268375 - r6268376;
double r6268378 = -r6268377;
double r6268379 = KbT;
double r6268380 = r6268378 / r6268379;
double r6268381 = exp(r6268380);
double r6268382 = r6268370 + r6268381;
double r6268383 = r6268369 / r6268382;
double r6268384 = NaChar;
double r6268385 = Ev;
double r6268386 = r6268385 + r6268372;
double r6268387 = EAccept;
double r6268388 = r6268386 + r6268387;
double r6268389 = -r6268376;
double r6268390 = r6268388 + r6268389;
double r6268391 = r6268390 / r6268379;
double r6268392 = exp(r6268391);
double r6268393 = r6268370 + r6268392;
double r6268394 = r6268384 / r6268393;
double r6268395 = r6268383 + r6268394;
return r6268395;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6268396 = NaChar;
double r6268397 = EAccept;
double r6268398 = Vef;
double r6268399 = Ev;
double r6268400 = r6268398 + r6268399;
double r6268401 = r6268397 + r6268400;
double r6268402 = mu;
double r6268403 = r6268401 - r6268402;
double r6268404 = KbT;
double r6268405 = r6268403 / r6268404;
double r6268406 = exp(r6268405);
double r6268407 = 1.0;
double r6268408 = r6268406 + r6268407;
double r6268409 = r6268396 / r6268408;
double r6268410 = NdChar;
double r6268411 = EDonor;
double r6268412 = Ec;
double r6268413 = r6268412 - r6268402;
double r6268414 = r6268413 - r6268398;
double r6268415 = r6268411 - r6268414;
double r6268416 = r6268415 / r6268404;
double r6268417 = exp(r6268416);
double r6268418 = r6268417 + r6268407;
double r6268419 = r6268410 / r6268418;
double r6268420 = r6268409 + r6268419;
return r6268420;
}



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 2019164 +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))))))