\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 r7520513 = NdChar;
double r7520514 = 1.0;
double r7520515 = Ec;
double r7520516 = Vef;
double r7520517 = r7520515 - r7520516;
double r7520518 = EDonor;
double r7520519 = r7520517 - r7520518;
double r7520520 = mu;
double r7520521 = r7520519 - r7520520;
double r7520522 = -r7520521;
double r7520523 = KbT;
double r7520524 = r7520522 / r7520523;
double r7520525 = exp(r7520524);
double r7520526 = r7520514 + r7520525;
double r7520527 = r7520513 / r7520526;
double r7520528 = NaChar;
double r7520529 = Ev;
double r7520530 = r7520529 + r7520516;
double r7520531 = EAccept;
double r7520532 = r7520530 + r7520531;
double r7520533 = -r7520520;
double r7520534 = r7520532 + r7520533;
double r7520535 = r7520534 / r7520523;
double r7520536 = exp(r7520535);
double r7520537 = r7520514 + r7520536;
double r7520538 = r7520528 / r7520537;
double r7520539 = r7520527 + r7520538;
return r7520539;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7520540 = NaChar;
double r7520541 = Ev;
double r7520542 = Vef;
double r7520543 = r7520541 + r7520542;
double r7520544 = EAccept;
double r7520545 = mu;
double r7520546 = r7520544 - r7520545;
double r7520547 = r7520543 + r7520546;
double r7520548 = KbT;
double r7520549 = r7520547 / r7520548;
double r7520550 = exp(r7520549);
double r7520551 = 1.0;
double r7520552 = r7520550 + r7520551;
double r7520553 = r7520540 / r7520552;
double r7520554 = NdChar;
double r7520555 = EDonor;
double r7520556 = Ec;
double r7520557 = r7520555 - r7520556;
double r7520558 = r7520542 + r7520557;
double r7520559 = r7520558 + r7520545;
double r7520560 = r7520559 / r7520548;
double r7520561 = exp(r7520560);
double r7520562 = r7520561 + r7520551;
double r7520563 = r7520554 / r7520562;
double r7520564 = r7520553 + r7520563;
return r7520564;
}



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