\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(EAccept + \left(Vef + Ev\right)\right) - mu}{KbT}} + 1} + \frac{NdChar}{e^{\frac{EDonor - \left(\left(Ec - mu\right) - Vef\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6717880 = NdChar;
double r6717881 = 1.0;
double r6717882 = Ec;
double r6717883 = Vef;
double r6717884 = r6717882 - r6717883;
double r6717885 = EDonor;
double r6717886 = r6717884 - r6717885;
double r6717887 = mu;
double r6717888 = r6717886 - r6717887;
double r6717889 = -r6717888;
double r6717890 = KbT;
double r6717891 = r6717889 / r6717890;
double r6717892 = exp(r6717891);
double r6717893 = r6717881 + r6717892;
double r6717894 = r6717880 / r6717893;
double r6717895 = NaChar;
double r6717896 = Ev;
double r6717897 = r6717896 + r6717883;
double r6717898 = EAccept;
double r6717899 = r6717897 + r6717898;
double r6717900 = -r6717887;
double r6717901 = r6717899 + r6717900;
double r6717902 = r6717901 / r6717890;
double r6717903 = exp(r6717902);
double r6717904 = r6717881 + r6717903;
double r6717905 = r6717895 / r6717904;
double r6717906 = r6717894 + r6717905;
return r6717906;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6717907 = NaChar;
double r6717908 = EAccept;
double r6717909 = Vef;
double r6717910 = Ev;
double r6717911 = r6717909 + r6717910;
double r6717912 = r6717908 + r6717911;
double r6717913 = mu;
double r6717914 = r6717912 - r6717913;
double r6717915 = KbT;
double r6717916 = r6717914 / r6717915;
double r6717917 = exp(r6717916);
double r6717918 = 1.0;
double r6717919 = r6717917 + r6717918;
double r6717920 = r6717907 / r6717919;
double r6717921 = NdChar;
double r6717922 = EDonor;
double r6717923 = Ec;
double r6717924 = r6717923 - r6717913;
double r6717925 = r6717924 - r6717909;
double r6717926 = r6717922 - r6717925;
double r6717927 = r6717926 / r6717915;
double r6717928 = exp(r6717927);
double r6717929 = r6717928 + r6717918;
double r6717930 = r6717921 / r6717929;
double r6717931 = r6717920 + r6717930;
return r6717931;
}



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 2019168 +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))))))