\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 + 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}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r175894 = NdChar;
double r175895 = 1.0;
double r175896 = Ec;
double r175897 = Vef;
double r175898 = r175896 - r175897;
double r175899 = EDonor;
double r175900 = r175898 - r175899;
double r175901 = mu;
double r175902 = r175900 - r175901;
double r175903 = -r175902;
double r175904 = KbT;
double r175905 = r175903 / r175904;
double r175906 = exp(r175905);
double r175907 = r175895 + r175906;
double r175908 = r175894 / r175907;
double r175909 = NaChar;
double r175910 = Ev;
double r175911 = r175910 + r175897;
double r175912 = EAccept;
double r175913 = r175911 + r175912;
double r175914 = -r175901;
double r175915 = r175913 + r175914;
double r175916 = r175915 / r175904;
double r175917 = exp(r175916);
double r175918 = r175895 + r175917;
double r175919 = r175909 / r175918;
double r175920 = r175908 + r175919;
return r175920;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r175921 = NdChar;
double r175922 = 1.0;
double r175923 = Ec;
double r175924 = Vef;
double r175925 = r175923 - r175924;
double r175926 = EDonor;
double r175927 = r175925 - r175926;
double r175928 = mu;
double r175929 = r175927 - r175928;
double r175930 = -r175929;
double r175931 = KbT;
double r175932 = r175930 / r175931;
double r175933 = exp(r175932);
double r175934 = r175922 + r175933;
double r175935 = r175921 / r175934;
double r175936 = NaChar;
double r175937 = Ev;
double r175938 = r175937 + r175924;
double r175939 = EAccept;
double r175940 = r175938 + r175939;
double r175941 = -r175928;
double r175942 = r175940 + r175941;
double r175943 = r175942 / r175931;
double r175944 = exp(r175943);
double r175945 = r175922 + r175944;
double r175946 = r175936 / r175945;
double r175947 = r175935 + r175946;
return r175947;
}



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
Final simplification0.0
herbie shell --seed 2019325 +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))))))