\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(EAccept - mu\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{\left(Vef + \left(EDonor - Ec\right)\right) + mu}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r8575240 = NdChar;
double r8575241 = 1.0;
double r8575242 = Ec;
double r8575243 = Vef;
double r8575244 = r8575242 - r8575243;
double r8575245 = EDonor;
double r8575246 = r8575244 - r8575245;
double r8575247 = mu;
double r8575248 = r8575246 - r8575247;
double r8575249 = -r8575248;
double r8575250 = KbT;
double r8575251 = r8575249 / r8575250;
double r8575252 = exp(r8575251);
double r8575253 = r8575241 + r8575252;
double r8575254 = r8575240 / r8575253;
double r8575255 = NaChar;
double r8575256 = Ev;
double r8575257 = r8575256 + r8575243;
double r8575258 = EAccept;
double r8575259 = r8575257 + r8575258;
double r8575260 = -r8575247;
double r8575261 = r8575259 + r8575260;
double r8575262 = r8575261 / r8575250;
double r8575263 = exp(r8575262);
double r8575264 = r8575241 + r8575263;
double r8575265 = r8575255 / r8575264;
double r8575266 = r8575254 + r8575265;
return r8575266;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r8575267 = NaChar;
double r8575268 = Ev;
double r8575269 = Vef;
double r8575270 = r8575268 + r8575269;
double r8575271 = EAccept;
double r8575272 = mu;
double r8575273 = r8575271 - r8575272;
double r8575274 = r8575270 + r8575273;
double r8575275 = KbT;
double r8575276 = r8575274 / r8575275;
double r8575277 = exp(r8575276);
double r8575278 = 1.0;
double r8575279 = r8575277 + r8575278;
double r8575280 = r8575267 / r8575279;
double r8575281 = NdChar;
double r8575282 = EDonor;
double r8575283 = Ec;
double r8575284 = r8575282 - r8575283;
double r8575285 = r8575269 + r8575284;
double r8575286 = r8575285 + r8575272;
double r8575287 = r8575286 / r8575275;
double r8575288 = exp(r8575287);
double r8575289 = r8575288 + r8575278;
double r8575290 = r8575281 / r8575289;
double r8575291 = r8575280 + r8575290;
return r8575291;
}



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 +o rules:numerics
(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))))))