\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 + \sqrt[3]{\mathsf{expm1}\left(\mathsf{log1p}\left({\left(e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}\right)}^{3}\right)\right)}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r241967 = NdChar;
double r241968 = 1.0;
double r241969 = Ec;
double r241970 = Vef;
double r241971 = r241969 - r241970;
double r241972 = EDonor;
double r241973 = r241971 - r241972;
double r241974 = mu;
double r241975 = r241973 - r241974;
double r241976 = -r241975;
double r241977 = KbT;
double r241978 = r241976 / r241977;
double r241979 = exp(r241978);
double r241980 = r241968 + r241979;
double r241981 = r241967 / r241980;
double r241982 = NaChar;
double r241983 = Ev;
double r241984 = r241983 + r241970;
double r241985 = EAccept;
double r241986 = r241984 + r241985;
double r241987 = -r241974;
double r241988 = r241986 + r241987;
double r241989 = r241988 / r241977;
double r241990 = exp(r241989);
double r241991 = r241968 + r241990;
double r241992 = r241982 / r241991;
double r241993 = r241981 + r241992;
return r241993;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r241994 = NdChar;
double r241995 = 1.0;
double r241996 = Ec;
double r241997 = Vef;
double r241998 = r241996 - r241997;
double r241999 = EDonor;
double r242000 = r241998 - r241999;
double r242001 = mu;
double r242002 = r242000 - r242001;
double r242003 = -r242002;
double r242004 = KbT;
double r242005 = r242003 / r242004;
double r242006 = exp(r242005);
double r242007 = r241995 + r242006;
double r242008 = r241994 / r242007;
double r242009 = NaChar;
double r242010 = Ev;
double r242011 = r242010 + r241997;
double r242012 = EAccept;
double r242013 = r242011 + r242012;
double r242014 = r242013 - r242001;
double r242015 = r242014 / r242004;
double r242016 = exp(r242015);
double r242017 = 3.0;
double r242018 = pow(r242016, r242017);
double r242019 = log1p(r242018);
double r242020 = expm1(r242019);
double r242021 = cbrt(r242020);
double r242022 = r241995 + r242021;
double r242023 = r242009 / r242022;
double r242024 = r242008 + r242023;
return r242024;
}



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
rmApplied add-cbrt-cube0.0
Simplified0.0
rmApplied expm1-log1p-u0.0
Final simplification0.0
herbie shell --seed 2019323 +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))))))