\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{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + NaChar \cdot \frac{1}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r323482 = NdChar;
double r323483 = 1.0;
double r323484 = Ec;
double r323485 = Vef;
double r323486 = r323484 - r323485;
double r323487 = EDonor;
double r323488 = r323486 - r323487;
double r323489 = mu;
double r323490 = r323488 - r323489;
double r323491 = -r323490;
double r323492 = KbT;
double r323493 = r323491 / r323492;
double r323494 = exp(r323493);
double r323495 = r323483 + r323494;
double r323496 = r323482 / r323495;
double r323497 = NaChar;
double r323498 = Ev;
double r323499 = r323498 + r323485;
double r323500 = EAccept;
double r323501 = r323499 + r323500;
double r323502 = -r323489;
double r323503 = r323501 + r323502;
double r323504 = r323503 / r323492;
double r323505 = exp(r323504);
double r323506 = r323483 + r323505;
double r323507 = r323497 / r323506;
double r323508 = r323496 + r323507;
return r323508;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r323509 = NdChar;
double r323510 = 1.0;
double r323511 = Ec;
double r323512 = Vef;
double r323513 = r323511 - r323512;
double r323514 = EDonor;
double r323515 = r323513 - r323514;
double r323516 = mu;
double r323517 = r323515 - r323516;
double r323518 = -r323517;
double r323519 = KbT;
double r323520 = r323518 / r323519;
double r323521 = exp(r323520);
double r323522 = r323510 + r323521;
double r323523 = r323509 / r323522;
double r323524 = NaChar;
double r323525 = 1.0;
double r323526 = Ev;
double r323527 = r323526 + r323512;
double r323528 = EAccept;
double r323529 = r323527 + r323528;
double r323530 = -r323516;
double r323531 = r323529 + r323530;
double r323532 = r323531 / r323519;
double r323533 = exp(r323532);
double r323534 = r323510 + r323533;
double r323535 = r323525 / r323534;
double r323536 = r323524 * r323535;
double r323537 = r323523 + r323536;
return r323537;
}



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
rmApplied div-inv0.0
Final simplification0.0
herbie shell --seed 2020060 +o rules:numerics
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
:precision binary64
(+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))