\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 + \frac{1}{e^{\frac{\left(\left(Ec - Vef\right) - EDonor\right) - mu}{KbT}}}} + \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 r307850 = NdChar;
double r307851 = 1.0;
double r307852 = Ec;
double r307853 = Vef;
double r307854 = r307852 - r307853;
double r307855 = EDonor;
double r307856 = r307854 - r307855;
double r307857 = mu;
double r307858 = r307856 - r307857;
double r307859 = -r307858;
double r307860 = KbT;
double r307861 = r307859 / r307860;
double r307862 = exp(r307861);
double r307863 = r307851 + r307862;
double r307864 = r307850 / r307863;
double r307865 = NaChar;
double r307866 = Ev;
double r307867 = r307866 + r307853;
double r307868 = EAccept;
double r307869 = r307867 + r307868;
double r307870 = -r307857;
double r307871 = r307869 + r307870;
double r307872 = r307871 / r307860;
double r307873 = exp(r307872);
double r307874 = r307851 + r307873;
double r307875 = r307865 / r307874;
double r307876 = r307864 + r307875;
return r307876;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r307877 = NdChar;
double r307878 = 1.0;
double r307879 = 1.0;
double r307880 = Ec;
double r307881 = Vef;
double r307882 = r307880 - r307881;
double r307883 = EDonor;
double r307884 = r307882 - r307883;
double r307885 = mu;
double r307886 = r307884 - r307885;
double r307887 = KbT;
double r307888 = r307886 / r307887;
double r307889 = exp(r307888);
double r307890 = r307879 / r307889;
double r307891 = r307878 + r307890;
double r307892 = r307877 / r307891;
double r307893 = NaChar;
double r307894 = Ev;
double r307895 = r307894 + r307881;
double r307896 = EAccept;
double r307897 = r307895 + r307896;
double r307898 = -r307885;
double r307899 = r307897 + r307898;
double r307900 = r307899 / r307887;
double r307901 = exp(r307900);
double r307902 = r307878 + r307901;
double r307903 = r307893 / r307902;
double r307904 = r307892 + r307903;
return r307904;
}



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 distribute-frac-neg0.0
Applied exp-neg0.0
Final simplification0.0
herbie shell --seed 2019346 +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))))))