\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}{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}} + 1} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r118895 = NdChar;
double r118896 = 1.0;
double r118897 = Ec;
double r118898 = Vef;
double r118899 = r118897 - r118898;
double r118900 = EDonor;
double r118901 = r118899 - r118900;
double r118902 = mu;
double r118903 = r118901 - r118902;
double r118904 = -r118903;
double r118905 = KbT;
double r118906 = r118904 / r118905;
double r118907 = exp(r118906);
double r118908 = r118896 + r118907;
double r118909 = r118895 / r118908;
double r118910 = NaChar;
double r118911 = Ev;
double r118912 = r118911 + r118898;
double r118913 = EAccept;
double r118914 = r118912 + r118913;
double r118915 = -r118902;
double r118916 = r118914 + r118915;
double r118917 = r118916 / r118905;
double r118918 = exp(r118917);
double r118919 = r118896 + r118918;
double r118920 = r118910 / r118919;
double r118921 = r118909 + r118920;
return r118921;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r118922 = NdChar;
double r118923 = mu;
double r118924 = EDonor;
double r118925 = Ec;
double r118926 = Vef;
double r118927 = r118925 - r118926;
double r118928 = r118924 - r118927;
double r118929 = r118923 + r118928;
double r118930 = KbT;
double r118931 = r118929 / r118930;
double r118932 = exp(r118931);
double r118933 = 1.0;
double r118934 = r118932 + r118933;
double r118935 = r118922 / r118934;
double r118936 = NaChar;
double r118937 = Ev;
double r118938 = r118937 + r118926;
double r118939 = EAccept;
double r118940 = r118938 + r118939;
double r118941 = r118940 - r118923;
double r118942 = r118941 / r118930;
double r118943 = exp(r118942);
double r118944 = r118933 + r118943;
double r118945 = r118936 / r118944;
double r118946 = r118935 + r118945;
return r118946;
}



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