\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(Vef - mu\right) + \left(Ev + EAccept\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r4785393 = NdChar;
double r4785394 = 1.0;
double r4785395 = Ec;
double r4785396 = Vef;
double r4785397 = r4785395 - r4785396;
double r4785398 = EDonor;
double r4785399 = r4785397 - r4785398;
double r4785400 = mu;
double r4785401 = r4785399 - r4785400;
double r4785402 = -r4785401;
double r4785403 = KbT;
double r4785404 = r4785402 / r4785403;
double r4785405 = exp(r4785404);
double r4785406 = r4785394 + r4785405;
double r4785407 = r4785393 / r4785406;
double r4785408 = NaChar;
double r4785409 = Ev;
double r4785410 = r4785409 + r4785396;
double r4785411 = EAccept;
double r4785412 = r4785410 + r4785411;
double r4785413 = -r4785400;
double r4785414 = r4785412 + r4785413;
double r4785415 = r4785414 / r4785403;
double r4785416 = exp(r4785415);
double r4785417 = r4785394 + r4785416;
double r4785418 = r4785408 / r4785417;
double r4785419 = r4785407 + r4785418;
return r4785419;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r4785420 = NaChar;
double r4785421 = Vef;
double r4785422 = mu;
double r4785423 = r4785421 - r4785422;
double r4785424 = Ev;
double r4785425 = EAccept;
double r4785426 = r4785424 + r4785425;
double r4785427 = r4785423 + r4785426;
double r4785428 = KbT;
double r4785429 = r4785427 / r4785428;
double r4785430 = exp(r4785429);
double r4785431 = 1.0;
double r4785432 = r4785430 + r4785431;
double r4785433 = r4785420 / r4785432;
double r4785434 = NdChar;
double r4785435 = Ec;
double r4785436 = r4785435 - r4785421;
double r4785437 = EDonor;
double r4785438 = r4785436 - r4785437;
double r4785439 = r4785422 - r4785438;
double r4785440 = r4785439 / r4785428;
double r4785441 = exp(r4785440);
double r4785442 = r4785441 + r4785431;
double r4785443 = r4785434 / r4785442;
double r4785444 = r4785433 + r4785443;
return r4785444;
}



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