\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 r7582368 = NdChar;
double r7582369 = 1.0;
double r7582370 = Ec;
double r7582371 = Vef;
double r7582372 = r7582370 - r7582371;
double r7582373 = EDonor;
double r7582374 = r7582372 - r7582373;
double r7582375 = mu;
double r7582376 = r7582374 - r7582375;
double r7582377 = -r7582376;
double r7582378 = KbT;
double r7582379 = r7582377 / r7582378;
double r7582380 = exp(r7582379);
double r7582381 = r7582369 + r7582380;
double r7582382 = r7582368 / r7582381;
double r7582383 = NaChar;
double r7582384 = Ev;
double r7582385 = r7582384 + r7582371;
double r7582386 = EAccept;
double r7582387 = r7582385 + r7582386;
double r7582388 = -r7582375;
double r7582389 = r7582387 + r7582388;
double r7582390 = r7582389 / r7582378;
double r7582391 = exp(r7582390);
double r7582392 = r7582369 + r7582391;
double r7582393 = r7582383 / r7582392;
double r7582394 = r7582382 + r7582393;
return r7582394;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7582395 = 1.0;
double r7582396 = EDonor;
double r7582397 = Ec;
double r7582398 = mu;
double r7582399 = r7582397 - r7582398;
double r7582400 = Vef;
double r7582401 = r7582399 - r7582400;
double r7582402 = r7582396 - r7582401;
double r7582403 = KbT;
double r7582404 = r7582402 / r7582403;
double r7582405 = exp(r7582404);
double r7582406 = r7582405 + r7582395;
double r7582407 = NdChar;
double r7582408 = r7582406 / r7582407;
double r7582409 = r7582395 / r7582408;
double r7582410 = NaChar;
double r7582411 = EAccept;
double r7582412 = Ev;
double r7582413 = r7582400 + r7582412;
double r7582414 = r7582411 + r7582413;
double r7582415 = r7582414 - r7582398;
double r7582416 = r7582415 / r7582403;
double r7582417 = exp(r7582416);
double r7582418 = r7582417 + r7582395;
double r7582419 = r7582410 / r7582418;
double r7582420 = r7582409 + r7582419;
return r7582420;
}



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