\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(Ev + Vef\right) - \left(mu - EAccept\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{\left(Vef + \left(mu - Ec\right)\right) + EDonor}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r9129663 = NdChar;
double r9129664 = 1.0;
double r9129665 = Ec;
double r9129666 = Vef;
double r9129667 = r9129665 - r9129666;
double r9129668 = EDonor;
double r9129669 = r9129667 - r9129668;
double r9129670 = mu;
double r9129671 = r9129669 - r9129670;
double r9129672 = -r9129671;
double r9129673 = KbT;
double r9129674 = r9129672 / r9129673;
double r9129675 = exp(r9129674);
double r9129676 = r9129664 + r9129675;
double r9129677 = r9129663 / r9129676;
double r9129678 = NaChar;
double r9129679 = Ev;
double r9129680 = r9129679 + r9129666;
double r9129681 = EAccept;
double r9129682 = r9129680 + r9129681;
double r9129683 = -r9129670;
double r9129684 = r9129682 + r9129683;
double r9129685 = r9129684 / r9129673;
double r9129686 = exp(r9129685);
double r9129687 = r9129664 + r9129686;
double r9129688 = r9129678 / r9129687;
double r9129689 = r9129677 + r9129688;
return r9129689;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r9129690 = NaChar;
double r9129691 = Ev;
double r9129692 = Vef;
double r9129693 = r9129691 + r9129692;
double r9129694 = mu;
double r9129695 = EAccept;
double r9129696 = r9129694 - r9129695;
double r9129697 = r9129693 - r9129696;
double r9129698 = KbT;
double r9129699 = r9129697 / r9129698;
double r9129700 = exp(r9129699);
double r9129701 = 1.0;
double r9129702 = r9129700 + r9129701;
double r9129703 = r9129690 / r9129702;
double r9129704 = NdChar;
double r9129705 = Ec;
double r9129706 = r9129694 - r9129705;
double r9129707 = r9129692 + r9129706;
double r9129708 = EDonor;
double r9129709 = r9129707 + r9129708;
double r9129710 = r9129709 / r9129698;
double r9129711 = exp(r9129710);
double r9129712 = r9129711 + r9129701;
double r9129713 = r9129704 / r9129712;
double r9129714 = r9129703 + r9129713;
return r9129714;
}



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