\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}{\sqrt[3]{\sqrt[3]{{\left({\left(1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}\right)}^{3}\right)}^{3}}}} + \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 r239976 = NdChar;
double r239977 = 1.0;
double r239978 = Ec;
double r239979 = Vef;
double r239980 = r239978 - r239979;
double r239981 = EDonor;
double r239982 = r239980 - r239981;
double r239983 = mu;
double r239984 = r239982 - r239983;
double r239985 = -r239984;
double r239986 = KbT;
double r239987 = r239985 / r239986;
double r239988 = exp(r239987);
double r239989 = r239977 + r239988;
double r239990 = r239976 / r239989;
double r239991 = NaChar;
double r239992 = Ev;
double r239993 = r239992 + r239979;
double r239994 = EAccept;
double r239995 = r239993 + r239994;
double r239996 = -r239983;
double r239997 = r239995 + r239996;
double r239998 = r239997 / r239986;
double r239999 = exp(r239998);
double r240000 = r239977 + r239999;
double r240001 = r239991 / r240000;
double r240002 = r239990 + r240001;
return r240002;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r240003 = NdChar;
double r240004 = 1.0;
double r240005 = Ec;
double r240006 = Vef;
double r240007 = r240005 - r240006;
double r240008 = EDonor;
double r240009 = r240007 - r240008;
double r240010 = mu;
double r240011 = r240009 - r240010;
double r240012 = -r240011;
double r240013 = KbT;
double r240014 = r240012 / r240013;
double r240015 = exp(r240014);
double r240016 = r240004 + r240015;
double r240017 = 3.0;
double r240018 = pow(r240016, r240017);
double r240019 = pow(r240018, r240017);
double r240020 = cbrt(r240019);
double r240021 = cbrt(r240020);
double r240022 = r240003 / r240021;
double r240023 = NaChar;
double r240024 = Ev;
double r240025 = r240024 + r240006;
double r240026 = EAccept;
double r240027 = r240025 + r240026;
double r240028 = -r240010;
double r240029 = r240027 + r240028;
double r240030 = r240029 / r240013;
double r240031 = exp(r240030);
double r240032 = r240004 + r240031;
double r240033 = r240023 / r240032;
double r240034 = r240022 + r240033;
return r240034;
}



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 add-cbrt-cube0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020036 +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))))))