\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{1}{\frac{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}}{NdChar}} + \frac{NaChar}{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 r249779 = NdChar;
double r249780 = 1.0;
double r249781 = Ec;
double r249782 = Vef;
double r249783 = r249781 - r249782;
double r249784 = EDonor;
double r249785 = r249783 - r249784;
double r249786 = mu;
double r249787 = r249785 - r249786;
double r249788 = -r249787;
double r249789 = KbT;
double r249790 = r249788 / r249789;
double r249791 = exp(r249790);
double r249792 = r249780 + r249791;
double r249793 = r249779 / r249792;
double r249794 = NaChar;
double r249795 = Ev;
double r249796 = r249795 + r249782;
double r249797 = EAccept;
double r249798 = r249796 + r249797;
double r249799 = -r249786;
double r249800 = r249798 + r249799;
double r249801 = r249800 / r249789;
double r249802 = exp(r249801);
double r249803 = r249780 + r249802;
double r249804 = r249794 / r249803;
double r249805 = r249793 + r249804;
return r249805;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r249806 = 1.0;
double r249807 = 1.0;
double r249808 = Ec;
double r249809 = Vef;
double r249810 = r249808 - r249809;
double r249811 = EDonor;
double r249812 = r249810 - r249811;
double r249813 = mu;
double r249814 = r249812 - r249813;
double r249815 = -r249814;
double r249816 = KbT;
double r249817 = r249815 / r249816;
double r249818 = exp(r249817);
double r249819 = r249807 + r249818;
double r249820 = NdChar;
double r249821 = r249819 / r249820;
double r249822 = r249806 / r249821;
double r249823 = NaChar;
double r249824 = Ev;
double r249825 = r249824 + r249809;
double r249826 = EAccept;
double r249827 = r249825 + r249826;
double r249828 = -r249813;
double r249829 = r249827 + r249828;
double r249830 = r249829 / r249816;
double r249831 = exp(r249830);
double r249832 = r249807 + r249831;
double r249833 = r249823 / r249832;
double r249834 = r249822 + r249833;
return r249834;
}



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 clear-num0.1
Final simplification0.1
herbie shell --seed 2019353 +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))))))