\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(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}} + 1} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r4487941 = NdChar;
double r4487942 = 1.0;
double r4487943 = Ec;
double r4487944 = Vef;
double r4487945 = r4487943 - r4487944;
double r4487946 = EDonor;
double r4487947 = r4487945 - r4487946;
double r4487948 = mu;
double r4487949 = r4487947 - r4487948;
double r4487950 = -r4487949;
double r4487951 = KbT;
double r4487952 = r4487950 / r4487951;
double r4487953 = exp(r4487952);
double r4487954 = r4487942 + r4487953;
double r4487955 = r4487941 / r4487954;
double r4487956 = NaChar;
double r4487957 = Ev;
double r4487958 = r4487957 + r4487944;
double r4487959 = EAccept;
double r4487960 = r4487958 + r4487959;
double r4487961 = -r4487948;
double r4487962 = r4487960 + r4487961;
double r4487963 = r4487962 / r4487951;
double r4487964 = exp(r4487963);
double r4487965 = r4487942 + r4487964;
double r4487966 = r4487956 / r4487965;
double r4487967 = r4487955 + r4487966;
return r4487967;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r4487968 = NaChar;
double r4487969 = Vef;
double r4487970 = mu;
double r4487971 = r4487969 - r4487970;
double r4487972 = Ev;
double r4487973 = r4487971 + r4487972;
double r4487974 = EAccept;
double r4487975 = r4487973 + r4487974;
double r4487976 = KbT;
double r4487977 = r4487975 / r4487976;
double r4487978 = exp(r4487977);
double r4487979 = 1.0;
double r4487980 = r4487978 + r4487979;
double r4487981 = r4487968 / r4487980;
double r4487982 = NdChar;
double r4487983 = Ec;
double r4487984 = r4487983 - r4487969;
double r4487985 = EDonor;
double r4487986 = r4487984 - r4487985;
double r4487987 = r4487970 - r4487986;
double r4487988 = r4487987 / r4487976;
double r4487989 = exp(r4487988);
double r4487990 = r4487989 + r4487979;
double r4487991 = r4487982 / r4487990;
double r4487992 = r4487981 + r4487991;
return r4487992;
}



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