\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{\left(Ev + Vef\right) - \left(mu - EAccept\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{\left(Vef + \left(mu - Ec\right)\right) + EDonor}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r9067325 = NdChar;
double r9067326 = 1.0;
double r9067327 = Ec;
double r9067328 = Vef;
double r9067329 = r9067327 - r9067328;
double r9067330 = EDonor;
double r9067331 = r9067329 - r9067330;
double r9067332 = mu;
double r9067333 = r9067331 - r9067332;
double r9067334 = -r9067333;
double r9067335 = KbT;
double r9067336 = r9067334 / r9067335;
double r9067337 = exp(r9067336);
double r9067338 = r9067326 + r9067337;
double r9067339 = r9067325 / r9067338;
double r9067340 = NaChar;
double r9067341 = Ev;
double r9067342 = r9067341 + r9067328;
double r9067343 = EAccept;
double r9067344 = r9067342 + r9067343;
double r9067345 = -r9067332;
double r9067346 = r9067344 + r9067345;
double r9067347 = r9067346 / r9067335;
double r9067348 = exp(r9067347);
double r9067349 = r9067326 + r9067348;
double r9067350 = r9067340 / r9067349;
double r9067351 = r9067339 + r9067350;
return r9067351;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r9067352 = NaChar;
double r9067353 = Ev;
double r9067354 = Vef;
double r9067355 = r9067353 + r9067354;
double r9067356 = mu;
double r9067357 = EAccept;
double r9067358 = r9067356 - r9067357;
double r9067359 = r9067355 - r9067358;
double r9067360 = KbT;
double r9067361 = r9067359 / r9067360;
double r9067362 = exp(r9067361);
double r9067363 = 1.0;
double r9067364 = r9067362 + r9067363;
double r9067365 = r9067352 / r9067364;
double r9067366 = NdChar;
double r9067367 = Ec;
double r9067368 = r9067356 - r9067367;
double r9067369 = r9067354 + r9067368;
double r9067370 = EDonor;
double r9067371 = r9067369 + r9067370;
double r9067372 = r9067371 / r9067360;
double r9067373 = exp(r9067372);
double r9067374 = r9067373 + r9067363;
double r9067375 = r9067366 / r9067374;
double r9067376 = r9067365 + r9067375;
return r9067376;
}



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 2019168
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
(+ (/ NdChar (+ 1.0 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1.0 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))