\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(Vef - mu\right) + \left(Ev + EAccept\right)}{KbT}} + 1} + \frac{NdChar}{\log \left(\sqrt[3]{e^{e^{\frac{\left(mu - Ec\right) + \left(EDonor + Vef\right)}{KbT}} \cdot 3}} \cdot e\right)}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r2896866 = NdChar;
double r2896867 = 1.0;
double r2896868 = Ec;
double r2896869 = Vef;
double r2896870 = r2896868 - r2896869;
double r2896871 = EDonor;
double r2896872 = r2896870 - r2896871;
double r2896873 = mu;
double r2896874 = r2896872 - r2896873;
double r2896875 = -r2896874;
double r2896876 = KbT;
double r2896877 = r2896875 / r2896876;
double r2896878 = exp(r2896877);
double r2896879 = r2896867 + r2896878;
double r2896880 = r2896866 / r2896879;
double r2896881 = NaChar;
double r2896882 = Ev;
double r2896883 = r2896882 + r2896869;
double r2896884 = EAccept;
double r2896885 = r2896883 + r2896884;
double r2896886 = -r2896873;
double r2896887 = r2896885 + r2896886;
double r2896888 = r2896887 / r2896876;
double r2896889 = exp(r2896888);
double r2896890 = r2896867 + r2896889;
double r2896891 = r2896881 / r2896890;
double r2896892 = r2896880 + r2896891;
return r2896892;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r2896893 = NaChar;
double r2896894 = Vef;
double r2896895 = mu;
double r2896896 = r2896894 - r2896895;
double r2896897 = Ev;
double r2896898 = EAccept;
double r2896899 = r2896897 + r2896898;
double r2896900 = r2896896 + r2896899;
double r2896901 = KbT;
double r2896902 = r2896900 / r2896901;
double r2896903 = exp(r2896902);
double r2896904 = 1.0;
double r2896905 = r2896903 + r2896904;
double r2896906 = r2896893 / r2896905;
double r2896907 = NdChar;
double r2896908 = Ec;
double r2896909 = r2896895 - r2896908;
double r2896910 = EDonor;
double r2896911 = r2896910 + r2896894;
double r2896912 = r2896909 + r2896911;
double r2896913 = r2896912 / r2896901;
double r2896914 = exp(r2896913);
double r2896915 = 3.0;
double r2896916 = r2896914 * r2896915;
double r2896917 = exp(r2896916);
double r2896918 = cbrt(r2896917);
double r2896919 = exp(1.0);
double r2896920 = r2896918 * r2896919;
double r2896921 = log(r2896920);
double r2896922 = r2896907 / r2896921;
double r2896923 = r2896906 + r2896922;
return r2896923;
}



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 add-log-exp0.0
Applied add-log-exp0.1
Applied sum-log0.1
Simplified0.1
rmApplied add-cbrt-cube0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019151
(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))))))