\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(Vef + Ev\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 r174479 = NdChar;
double r174480 = 1.0;
double r174481 = Ec;
double r174482 = Vef;
double r174483 = r174481 - r174482;
double r174484 = EDonor;
double r174485 = r174483 - r174484;
double r174486 = mu;
double r174487 = r174485 - r174486;
double r174488 = -r174487;
double r174489 = KbT;
double r174490 = r174488 / r174489;
double r174491 = exp(r174490);
double r174492 = r174480 + r174491;
double r174493 = r174479 / r174492;
double r174494 = NaChar;
double r174495 = Ev;
double r174496 = r174495 + r174482;
double r174497 = EAccept;
double r174498 = r174496 + r174497;
double r174499 = -r174486;
double r174500 = r174498 + r174499;
double r174501 = r174500 / r174489;
double r174502 = exp(r174501);
double r174503 = r174480 + r174502;
double r174504 = r174494 / r174503;
double r174505 = r174493 + r174504;
return r174505;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r174506 = NaChar;
double r174507 = Vef;
double r174508 = Ev;
double r174509 = r174507 + r174508;
double r174510 = mu;
double r174511 = r174509 - r174510;
double r174512 = EAccept;
double r174513 = r174511 + r174512;
double r174514 = KbT;
double r174515 = r174513 / r174514;
double r174516 = exp(r174515);
double r174517 = 1.0;
double r174518 = r174516 + r174517;
double r174519 = r174506 / r174518;
double r174520 = NdChar;
double r174521 = Ec;
double r174522 = r174521 - r174507;
double r174523 = EDonor;
double r174524 = r174522 - r174523;
double r174525 = r174510 - r174524;
double r174526 = r174525 / r174514;
double r174527 = exp(r174526);
double r174528 = r174527 + r174517;
double r174529 = r174520 / r174528;
double r174530 = r174519 + r174529;
return r174530;
}



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 2019196
(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))))))