\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(\left(Ev + Vef\right) - mu\right) + EAccept}{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 r3998491 = NdChar;
double r3998492 = 1.0;
double r3998493 = Ec;
double r3998494 = Vef;
double r3998495 = r3998493 - r3998494;
double r3998496 = EDonor;
double r3998497 = r3998495 - r3998496;
double r3998498 = mu;
double r3998499 = r3998497 - r3998498;
double r3998500 = -r3998499;
double r3998501 = KbT;
double r3998502 = r3998500 / r3998501;
double r3998503 = exp(r3998502);
double r3998504 = r3998492 + r3998503;
double r3998505 = r3998491 / r3998504;
double r3998506 = NaChar;
double r3998507 = Ev;
double r3998508 = r3998507 + r3998494;
double r3998509 = EAccept;
double r3998510 = r3998508 + r3998509;
double r3998511 = -r3998498;
double r3998512 = r3998510 + r3998511;
double r3998513 = r3998512 / r3998501;
double r3998514 = exp(r3998513);
double r3998515 = r3998492 + r3998514;
double r3998516 = r3998506 / r3998515;
double r3998517 = r3998505 + r3998516;
return r3998517;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r3998518 = NaChar;
double r3998519 = Ev;
double r3998520 = Vef;
double r3998521 = r3998519 + r3998520;
double r3998522 = mu;
double r3998523 = r3998521 - r3998522;
double r3998524 = EAccept;
double r3998525 = r3998523 + r3998524;
double r3998526 = KbT;
double r3998527 = r3998525 / r3998526;
double r3998528 = exp(r3998527);
double r3998529 = 1.0;
double r3998530 = r3998528 + r3998529;
double r3998531 = r3998518 / r3998530;
double r3998532 = NdChar;
double r3998533 = Ec;
double r3998534 = r3998533 - r3998520;
double r3998535 = EDonor;
double r3998536 = r3998534 - r3998535;
double r3998537 = r3998522 - r3998536;
double r3998538 = r3998537 / r3998526;
double r3998539 = exp(r3998538);
double r3998540 = r3998539 + r3998529;
double r3998541 = r3998532 / r3998540;
double r3998542 = r3998531 + r3998541;
return r3998542;
}



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