\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 r310226 = NdChar;
double r310227 = 1.0;
double r310228 = Ec;
double r310229 = Vef;
double r310230 = r310228 - r310229;
double r310231 = EDonor;
double r310232 = r310230 - r310231;
double r310233 = mu;
double r310234 = r310232 - r310233;
double r310235 = -r310234;
double r310236 = KbT;
double r310237 = r310235 / r310236;
double r310238 = exp(r310237);
double r310239 = r310227 + r310238;
double r310240 = r310226 / r310239;
double r310241 = NaChar;
double r310242 = Ev;
double r310243 = r310242 + r310229;
double r310244 = EAccept;
double r310245 = r310243 + r310244;
double r310246 = -r310233;
double r310247 = r310245 + r310246;
double r310248 = r310247 / r310236;
double r310249 = exp(r310248);
double r310250 = r310227 + r310249;
double r310251 = r310241 / r310250;
double r310252 = r310240 + r310251;
return r310252;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r310253 = NdChar;
double r310254 = 1.0;
double r310255 = Ec;
double r310256 = Vef;
double r310257 = r310255 - r310256;
double r310258 = EDonor;
double r310259 = r310257 - r310258;
double r310260 = mu;
double r310261 = r310259 - r310260;
double r310262 = -r310261;
double r310263 = KbT;
double r310264 = r310262 / r310263;
double r310265 = exp(r310264);
double r310266 = r310254 + r310265;
double r310267 = r310253 / r310266;
double r310268 = NaChar;
double r310269 = Ev;
double r310270 = r310269 + r310256;
double r310271 = EAccept;
double r310272 = r310270 + r310271;
double r310273 = -r310260;
double r310274 = r310272 + r310273;
double r310275 = r310274 / r310263;
double r310276 = exp(r310275);
double r310277 = r310254 + r310276;
double r310278 = r310268 / r310277;
double r310279 = r310267 + r310278;
return r310279;
}



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