\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(Ev + Vef\right) - mu\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 r5576468 = NdChar;
double r5576469 = 1.0;
double r5576470 = Ec;
double r5576471 = Vef;
double r5576472 = r5576470 - r5576471;
double r5576473 = EDonor;
double r5576474 = r5576472 - r5576473;
double r5576475 = mu;
double r5576476 = r5576474 - r5576475;
double r5576477 = -r5576476;
double r5576478 = KbT;
double r5576479 = r5576477 / r5576478;
double r5576480 = exp(r5576479);
double r5576481 = r5576469 + r5576480;
double r5576482 = r5576468 / r5576481;
double r5576483 = NaChar;
double r5576484 = Ev;
double r5576485 = r5576484 + r5576471;
double r5576486 = EAccept;
double r5576487 = r5576485 + r5576486;
double r5576488 = -r5576475;
double r5576489 = r5576487 + r5576488;
double r5576490 = r5576489 / r5576478;
double r5576491 = exp(r5576490);
double r5576492 = r5576469 + r5576491;
double r5576493 = r5576483 / r5576492;
double r5576494 = r5576482 + r5576493;
return r5576494;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r5576495 = NdChar;
double r5576496 = mu;
double r5576497 = Ec;
double r5576498 = Vef;
double r5576499 = r5576497 - r5576498;
double r5576500 = EDonor;
double r5576501 = r5576499 - r5576500;
double r5576502 = r5576496 - r5576501;
double r5576503 = KbT;
double r5576504 = r5576502 / r5576503;
double r5576505 = exp(r5576504);
double r5576506 = sqrt(r5576505);
double r5576507 = 1.0;
double r5576508 = fma(r5576506, r5576506, r5576507);
double r5576509 = r5576495 / r5576508;
double r5576510 = NaChar;
double r5576511 = Ev;
double r5576512 = r5576511 + r5576498;
double r5576513 = r5576512 - r5576496;
double r5576514 = EAccept;
double r5576515 = r5576513 + r5576514;
double r5576516 = r5576515 / r5576503;
double r5576517 = exp(r5576516);
double r5576518 = r5576517 + r5576507;
double r5576519 = r5576510 / r5576518;
double r5576520 = r5576509 + r5576519;
return r5576520;
}



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