\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 r326854 = NdChar;
double r326855 = 1.0;
double r326856 = Ec;
double r326857 = Vef;
double r326858 = r326856 - r326857;
double r326859 = EDonor;
double r326860 = r326858 - r326859;
double r326861 = mu;
double r326862 = r326860 - r326861;
double r326863 = -r326862;
double r326864 = KbT;
double r326865 = r326863 / r326864;
double r326866 = exp(r326865);
double r326867 = r326855 + r326866;
double r326868 = r326854 / r326867;
double r326869 = NaChar;
double r326870 = Ev;
double r326871 = r326870 + r326857;
double r326872 = EAccept;
double r326873 = r326871 + r326872;
double r326874 = -r326861;
double r326875 = r326873 + r326874;
double r326876 = r326875 / r326864;
double r326877 = exp(r326876);
double r326878 = r326855 + r326877;
double r326879 = r326869 / r326878;
double r326880 = r326868 + r326879;
return r326880;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r326881 = NdChar;
double r326882 = 1.0;
double r326883 = Ec;
double r326884 = Vef;
double r326885 = r326883 - r326884;
double r326886 = EDonor;
double r326887 = r326885 - r326886;
double r326888 = mu;
double r326889 = r326887 - r326888;
double r326890 = -r326889;
double r326891 = KbT;
double r326892 = r326890 / r326891;
double r326893 = exp(r326892);
double r326894 = r326882 + r326893;
double r326895 = r326881 / r326894;
double r326896 = NaChar;
double r326897 = Ev;
double r326898 = r326897 + r326884;
double r326899 = EAccept;
double r326900 = r326898 + r326899;
double r326901 = -r326888;
double r326902 = r326900 + r326901;
double r326903 = r326902 / r326891;
double r326904 = exp(r326903);
double r326905 = r326882 + r326904;
double r326906 = r326896 / r326905;
double r326907 = r326895 + r326906;
return r326907;
}



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