\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{1}{\frac{KbT}{mu - \left(\left(Ec - Vef\right) - EDonor\right)}}}} + \frac{NaChar}{e^{\frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r4509568 = NdChar;
double r4509569 = 1.0;
double r4509570 = Ec;
double r4509571 = Vef;
double r4509572 = r4509570 - r4509571;
double r4509573 = EDonor;
double r4509574 = r4509572 - r4509573;
double r4509575 = mu;
double r4509576 = r4509574 - r4509575;
double r4509577 = -r4509576;
double r4509578 = KbT;
double r4509579 = r4509577 / r4509578;
double r4509580 = exp(r4509579);
double r4509581 = r4509569 + r4509580;
double r4509582 = r4509568 / r4509581;
double r4509583 = NaChar;
double r4509584 = Ev;
double r4509585 = r4509584 + r4509571;
double r4509586 = EAccept;
double r4509587 = r4509585 + r4509586;
double r4509588 = -r4509575;
double r4509589 = r4509587 + r4509588;
double r4509590 = r4509589 / r4509578;
double r4509591 = exp(r4509590);
double r4509592 = r4509569 + r4509591;
double r4509593 = r4509583 / r4509592;
double r4509594 = r4509582 + r4509593;
return r4509594;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r4509595 = NdChar;
double r4509596 = 1.0;
double r4509597 = KbT;
double r4509598 = mu;
double r4509599 = Ec;
double r4509600 = Vef;
double r4509601 = r4509599 - r4509600;
double r4509602 = EDonor;
double r4509603 = r4509601 - r4509602;
double r4509604 = r4509598 - r4509603;
double r4509605 = r4509597 / r4509604;
double r4509606 = r4509596 / r4509605;
double r4509607 = exp(r4509606);
double r4509608 = r4509596 + r4509607;
double r4509609 = r4509595 / r4509608;
double r4509610 = NaChar;
double r4509611 = Ev;
double r4509612 = r4509611 + r4509600;
double r4509613 = r4509612 - r4509598;
double r4509614 = EAccept;
double r4509615 = r4509613 + r4509614;
double r4509616 = r4509615 / r4509597;
double r4509617 = exp(r4509616);
double r4509618 = r4509617 + r4509596;
double r4509619 = r4509610 / r4509618;
double r4509620 = r4509609 + r4509619;
return r4509620;
}



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
rmApplied clear-num0.0
Final simplification0.0
herbie shell --seed 2019130 +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))))))