\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 r401294 = NdChar;
double r401295 = 1.0;
double r401296 = Ec;
double r401297 = Vef;
double r401298 = r401296 - r401297;
double r401299 = EDonor;
double r401300 = r401298 - r401299;
double r401301 = mu;
double r401302 = r401300 - r401301;
double r401303 = -r401302;
double r401304 = KbT;
double r401305 = r401303 / r401304;
double r401306 = exp(r401305);
double r401307 = r401295 + r401306;
double r401308 = r401294 / r401307;
double r401309 = NaChar;
double r401310 = Ev;
double r401311 = r401310 + r401297;
double r401312 = EAccept;
double r401313 = r401311 + r401312;
double r401314 = -r401301;
double r401315 = r401313 + r401314;
double r401316 = r401315 / r401304;
double r401317 = exp(r401316);
double r401318 = r401295 + r401317;
double r401319 = r401309 / r401318;
double r401320 = r401308 + r401319;
return r401320;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r401321 = NdChar;
double r401322 = 1.0;
double r401323 = Ec;
double r401324 = Vef;
double r401325 = r401323 - r401324;
double r401326 = EDonor;
double r401327 = r401325 - r401326;
double r401328 = mu;
double r401329 = r401327 - r401328;
double r401330 = -r401329;
double r401331 = KbT;
double r401332 = r401330 / r401331;
double r401333 = exp(r401332);
double r401334 = r401322 + r401333;
double r401335 = r401321 / r401334;
double r401336 = NaChar;
double r401337 = Ev;
double r401338 = r401337 + r401324;
double r401339 = EAccept;
double r401340 = r401338 + r401339;
double r401341 = -r401328;
double r401342 = r401340 + r401341;
double r401343 = r401342 / r401331;
double r401344 = exp(r401343);
double r401345 = r401322 + r401344;
double r401346 = r401336 / r401345;
double r401347 = r401335 + r401346;
return r401347;
}



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