\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(EAccept + \left(Vef + Ev\right)\right) - mu}{KbT}} + 1} + \frac{NdChar}{e^{\frac{EDonor - \left(\left(Ec - mu\right) - Vef\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r5599537 = NdChar;
double r5599538 = 1.0;
double r5599539 = Ec;
double r5599540 = Vef;
double r5599541 = r5599539 - r5599540;
double r5599542 = EDonor;
double r5599543 = r5599541 - r5599542;
double r5599544 = mu;
double r5599545 = r5599543 - r5599544;
double r5599546 = -r5599545;
double r5599547 = KbT;
double r5599548 = r5599546 / r5599547;
double r5599549 = exp(r5599548);
double r5599550 = r5599538 + r5599549;
double r5599551 = r5599537 / r5599550;
double r5599552 = NaChar;
double r5599553 = Ev;
double r5599554 = r5599553 + r5599540;
double r5599555 = EAccept;
double r5599556 = r5599554 + r5599555;
double r5599557 = -r5599544;
double r5599558 = r5599556 + r5599557;
double r5599559 = r5599558 / r5599547;
double r5599560 = exp(r5599559);
double r5599561 = r5599538 + r5599560;
double r5599562 = r5599552 / r5599561;
double r5599563 = r5599551 + r5599562;
return r5599563;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r5599564 = NaChar;
double r5599565 = EAccept;
double r5599566 = Vef;
double r5599567 = Ev;
double r5599568 = r5599566 + r5599567;
double r5599569 = r5599565 + r5599568;
double r5599570 = mu;
double r5599571 = r5599569 - r5599570;
double r5599572 = KbT;
double r5599573 = r5599571 / r5599572;
double r5599574 = exp(r5599573);
double r5599575 = 1.0;
double r5599576 = r5599574 + r5599575;
double r5599577 = r5599564 / r5599576;
double r5599578 = NdChar;
double r5599579 = EDonor;
double r5599580 = Ec;
double r5599581 = r5599580 - r5599570;
double r5599582 = r5599581 - r5599566;
double r5599583 = r5599579 - r5599582;
double r5599584 = r5599583 / r5599572;
double r5599585 = exp(r5599584);
double r5599586 = r5599585 + r5599575;
double r5599587 = r5599578 / r5599586;
double r5599588 = r5599577 + r5599587;
return r5599588;
}



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