\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{Vef + \left(\left(Ev - mu\right) + EAccept\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{EDonor - \left(Ec - \left(Vef + mu\right)\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r8358960 = NdChar;
double r8358961 = 1.0;
double r8358962 = Ec;
double r8358963 = Vef;
double r8358964 = r8358962 - r8358963;
double r8358965 = EDonor;
double r8358966 = r8358964 - r8358965;
double r8358967 = mu;
double r8358968 = r8358966 - r8358967;
double r8358969 = -r8358968;
double r8358970 = KbT;
double r8358971 = r8358969 / r8358970;
double r8358972 = exp(r8358971);
double r8358973 = r8358961 + r8358972;
double r8358974 = r8358960 / r8358973;
double r8358975 = NaChar;
double r8358976 = Ev;
double r8358977 = r8358976 + r8358963;
double r8358978 = EAccept;
double r8358979 = r8358977 + r8358978;
double r8358980 = -r8358967;
double r8358981 = r8358979 + r8358980;
double r8358982 = r8358981 / r8358970;
double r8358983 = exp(r8358982);
double r8358984 = r8358961 + r8358983;
double r8358985 = r8358975 / r8358984;
double r8358986 = r8358974 + r8358985;
return r8358986;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r8358987 = NaChar;
double r8358988 = Vef;
double r8358989 = Ev;
double r8358990 = mu;
double r8358991 = r8358989 - r8358990;
double r8358992 = EAccept;
double r8358993 = r8358991 + r8358992;
double r8358994 = r8358988 + r8358993;
double r8358995 = KbT;
double r8358996 = r8358994 / r8358995;
double r8358997 = exp(r8358996);
double r8358998 = 1.0;
double r8358999 = r8358997 + r8358998;
double r8359000 = r8358987 / r8358999;
double r8359001 = NdChar;
double r8359002 = EDonor;
double r8359003 = Ec;
double r8359004 = r8358988 + r8358990;
double r8359005 = r8359003 - r8359004;
double r8359006 = r8359002 - r8359005;
double r8359007 = r8359006 / r8358995;
double r8359008 = exp(r8359007);
double r8359009 = r8359008 + r8358998;
double r8359010 = r8359001 / r8359009;
double r8359011 = r8359000 + r8359010;
return r8359011;
}



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 2019163
(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))))))