\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 + \left(Vef + EAccept\right)\right) - mu}{KbT}} + 1} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r5394235 = NdChar;
double r5394236 = 1.0;
double r5394237 = Ec;
double r5394238 = Vef;
double r5394239 = r5394237 - r5394238;
double r5394240 = EDonor;
double r5394241 = r5394239 - r5394240;
double r5394242 = mu;
double r5394243 = r5394241 - r5394242;
double r5394244 = -r5394243;
double r5394245 = KbT;
double r5394246 = r5394244 / r5394245;
double r5394247 = exp(r5394246);
double r5394248 = r5394236 + r5394247;
double r5394249 = r5394235 / r5394248;
double r5394250 = NaChar;
double r5394251 = Ev;
double r5394252 = r5394251 + r5394238;
double r5394253 = EAccept;
double r5394254 = r5394252 + r5394253;
double r5394255 = -r5394242;
double r5394256 = r5394254 + r5394255;
double r5394257 = r5394256 / r5394245;
double r5394258 = exp(r5394257);
double r5394259 = r5394236 + r5394258;
double r5394260 = r5394250 / r5394259;
double r5394261 = r5394249 + r5394260;
return r5394261;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r5394262 = NaChar;
double r5394263 = Ev;
double r5394264 = Vef;
double r5394265 = EAccept;
double r5394266 = r5394264 + r5394265;
double r5394267 = r5394263 + r5394266;
double r5394268 = mu;
double r5394269 = r5394267 - r5394268;
double r5394270 = KbT;
double r5394271 = r5394269 / r5394270;
double r5394272 = exp(r5394271);
double r5394273 = 1.0;
double r5394274 = r5394272 + r5394273;
double r5394275 = r5394262 / r5394274;
double r5394276 = NdChar;
double r5394277 = Ec;
double r5394278 = r5394277 - r5394264;
double r5394279 = EDonor;
double r5394280 = r5394278 - r5394279;
double r5394281 = r5394268 - r5394280;
double r5394282 = r5394281 / r5394270;
double r5394283 = exp(r5394282);
double r5394284 = r5394283 + r5394273;
double r5394285 = r5394276 / r5394284;
double r5394286 = r5394275 + r5394285;
return r5394286;
}



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