\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 r6432302 = NdChar;
double r6432303 = 1.0;
double r6432304 = Ec;
double r6432305 = Vef;
double r6432306 = r6432304 - r6432305;
double r6432307 = EDonor;
double r6432308 = r6432306 - r6432307;
double r6432309 = mu;
double r6432310 = r6432308 - r6432309;
double r6432311 = -r6432310;
double r6432312 = KbT;
double r6432313 = r6432311 / r6432312;
double r6432314 = exp(r6432313);
double r6432315 = r6432303 + r6432314;
double r6432316 = r6432302 / r6432315;
double r6432317 = NaChar;
double r6432318 = Ev;
double r6432319 = r6432318 + r6432305;
double r6432320 = EAccept;
double r6432321 = r6432319 + r6432320;
double r6432322 = -r6432309;
double r6432323 = r6432321 + r6432322;
double r6432324 = r6432323 / r6432312;
double r6432325 = exp(r6432324);
double r6432326 = r6432303 + r6432325;
double r6432327 = r6432317 / r6432326;
double r6432328 = r6432316 + r6432327;
return r6432328;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6432329 = NaChar;
double r6432330 = Ev;
double r6432331 = Vef;
double r6432332 = r6432330 + r6432331;
double r6432333 = mu;
double r6432334 = EAccept;
double r6432335 = r6432333 - r6432334;
double r6432336 = r6432332 - r6432335;
double r6432337 = KbT;
double r6432338 = r6432336 / r6432337;
double r6432339 = exp(r6432338);
double r6432340 = 1.0;
double r6432341 = r6432339 + r6432340;
double r6432342 = r6432329 / r6432341;
double r6432343 = NdChar;
double r6432344 = Ec;
double r6432345 = r6432333 - r6432344;
double r6432346 = r6432331 + r6432345;
double r6432347 = EDonor;
double r6432348 = r6432346 + r6432347;
double r6432349 = r6432348 / r6432337;
double r6432350 = exp(r6432349);
double r6432351 = r6432350 + r6432340;
double r6432352 = r6432343 / r6432351;
double r6432353 = r6432342 + r6432352;
return r6432353;
}



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