\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{NdChar}{\mathsf{fma}\left(\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, 1\right)} + \frac{NaChar}{e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6677370 = NdChar;
double r6677371 = 1.0;
double r6677372 = Ec;
double r6677373 = Vef;
double r6677374 = r6677372 - r6677373;
double r6677375 = EDonor;
double r6677376 = r6677374 - r6677375;
double r6677377 = mu;
double r6677378 = r6677376 - r6677377;
double r6677379 = -r6677378;
double r6677380 = KbT;
double r6677381 = r6677379 / r6677380;
double r6677382 = exp(r6677381);
double r6677383 = r6677371 + r6677382;
double r6677384 = r6677370 / r6677383;
double r6677385 = NaChar;
double r6677386 = Ev;
double r6677387 = r6677386 + r6677373;
double r6677388 = EAccept;
double r6677389 = r6677387 + r6677388;
double r6677390 = -r6677377;
double r6677391 = r6677389 + r6677390;
double r6677392 = r6677391 / r6677380;
double r6677393 = exp(r6677392);
double r6677394 = r6677371 + r6677393;
double r6677395 = r6677385 / r6677394;
double r6677396 = r6677384 + r6677395;
return r6677396;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6677397 = NdChar;
double r6677398 = mu;
double r6677399 = Ec;
double r6677400 = Vef;
double r6677401 = r6677399 - r6677400;
double r6677402 = EDonor;
double r6677403 = r6677401 - r6677402;
double r6677404 = r6677398 - r6677403;
double r6677405 = KbT;
double r6677406 = r6677404 / r6677405;
double r6677407 = exp(r6677406);
double r6677408 = sqrt(r6677407);
double r6677409 = 1.0;
double r6677410 = fma(r6677408, r6677408, r6677409);
double r6677411 = r6677397 / r6677410;
double r6677412 = NaChar;
double r6677413 = r6677400 - r6677398;
double r6677414 = Ev;
double r6677415 = r6677413 + r6677414;
double r6677416 = EAccept;
double r6677417 = r6677415 + r6677416;
double r6677418 = r6677417 / r6677405;
double r6677419 = exp(r6677418);
double r6677420 = r6677419 + r6677409;
double r6677421 = r6677412 / r6677420;
double r6677422 = r6677411 + r6677421;
return r6677422;
}



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
Initial program 0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied fma-def0.0
Final simplification0.0
herbie shell --seed 2019138 +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))))))