\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{1}{\frac{e^{\frac{EDonor - \left(\left(Ec - mu\right) - Vef\right)}{KbT}} + 1}{NdChar}} + \frac{NaChar}{e^{\frac{\left(EAccept + \left(Vef + Ev\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 r12881301 = NdChar;
double r12881302 = 1.0;
double r12881303 = Ec;
double r12881304 = Vef;
double r12881305 = r12881303 - r12881304;
double r12881306 = EDonor;
double r12881307 = r12881305 - r12881306;
double r12881308 = mu;
double r12881309 = r12881307 - r12881308;
double r12881310 = -r12881309;
double r12881311 = KbT;
double r12881312 = r12881310 / r12881311;
double r12881313 = exp(r12881312);
double r12881314 = r12881302 + r12881313;
double r12881315 = r12881301 / r12881314;
double r12881316 = NaChar;
double r12881317 = Ev;
double r12881318 = r12881317 + r12881304;
double r12881319 = EAccept;
double r12881320 = r12881318 + r12881319;
double r12881321 = -r12881308;
double r12881322 = r12881320 + r12881321;
double r12881323 = r12881322 / r12881311;
double r12881324 = exp(r12881323);
double r12881325 = r12881302 + r12881324;
double r12881326 = r12881316 / r12881325;
double r12881327 = r12881315 + r12881326;
return r12881327;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r12881328 = 1.0;
double r12881329 = EDonor;
double r12881330 = Ec;
double r12881331 = mu;
double r12881332 = r12881330 - r12881331;
double r12881333 = Vef;
double r12881334 = r12881332 - r12881333;
double r12881335 = r12881329 - r12881334;
double r12881336 = KbT;
double r12881337 = r12881335 / r12881336;
double r12881338 = exp(r12881337);
double r12881339 = r12881338 + r12881328;
double r12881340 = NdChar;
double r12881341 = r12881339 / r12881340;
double r12881342 = r12881328 / r12881341;
double r12881343 = NaChar;
double r12881344 = EAccept;
double r12881345 = Ev;
double r12881346 = r12881333 + r12881345;
double r12881347 = r12881344 + r12881346;
double r12881348 = r12881347 - r12881331;
double r12881349 = r12881348 / r12881336;
double r12881350 = exp(r12881349);
double r12881351 = r12881350 + r12881328;
double r12881352 = r12881343 / r12881351;
double r12881353 = r12881342 + r12881352;
return r12881353;
}



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
rmApplied clear-num0.1
Final simplification0.1
herbie shell --seed 2019158 +o rules:numerics
(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))))))