\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}{{e}^{\left(\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}\right)} + 1} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r190604 = NdChar;
double r190605 = 1.0;
double r190606 = Ec;
double r190607 = Vef;
double r190608 = r190606 - r190607;
double r190609 = EDonor;
double r190610 = r190608 - r190609;
double r190611 = mu;
double r190612 = r190610 - r190611;
double r190613 = -r190612;
double r190614 = KbT;
double r190615 = r190613 / r190614;
double r190616 = exp(r190615);
double r190617 = r190605 + r190616;
double r190618 = r190604 / r190617;
double r190619 = NaChar;
double r190620 = Ev;
double r190621 = r190620 + r190607;
double r190622 = EAccept;
double r190623 = r190621 + r190622;
double r190624 = -r190611;
double r190625 = r190623 + r190624;
double r190626 = r190625 / r190614;
double r190627 = exp(r190626);
double r190628 = r190605 + r190627;
double r190629 = r190619 / r190628;
double r190630 = r190618 + r190629;
return r190630;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r190631 = NdChar;
double r190632 = exp(1.0);
double r190633 = mu;
double r190634 = EDonor;
double r190635 = Ec;
double r190636 = Vef;
double r190637 = r190635 - r190636;
double r190638 = r190634 - r190637;
double r190639 = r190633 + r190638;
double r190640 = KbT;
double r190641 = r190639 / r190640;
double r190642 = pow(r190632, r190641);
double r190643 = 1.0;
double r190644 = r190642 + r190643;
double r190645 = r190631 / r190644;
double r190646 = NaChar;
double r190647 = Ev;
double r190648 = r190647 + r190636;
double r190649 = EAccept;
double r190650 = r190648 + r190649;
double r190651 = r190650 - r190633;
double r190652 = r190651 / r190640;
double r190653 = exp(r190652);
double r190654 = r190643 + r190653;
double r190655 = r190646 / r190654;
double r190656 = r190645 + r190655;
return r190656;
}



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 *-un-lft-identity0.0
Applied *-un-lft-identity0.0
Applied times-frac0.0
Applied exp-prod0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019235 +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))))))