\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}{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}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r572 = NdChar;
double r573 = 1.0;
double r574 = Ec;
double r575 = Vef;
double r576 = r574 - r575;
double r577 = EDonor;
double r578 = r576 - r577;
double r579 = mu;
double r580 = r578 - r579;
double r581 = -r580;
double r582 = KbT;
double r583 = r581 / r582;
double r584 = exp(r583);
double r585 = r573 + r584;
double r586 = r572 / r585;
double r587 = NaChar;
double r588 = Ev;
double r589 = r588 + r575;
double r590 = EAccept;
double r591 = r589 + r590;
double r592 = -r579;
double r593 = r591 + r592;
double r594 = r593 / r582;
double r595 = exp(r594);
double r596 = r573 + r595;
double r597 = r587 / r596;
double r598 = r586 + r597;
return r598;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r599 = NdChar;
double r600 = 1.0;
double r601 = Ec;
double r602 = Vef;
double r603 = r601 - r602;
double r604 = EDonor;
double r605 = r603 - r604;
double r606 = mu;
double r607 = r605 - r606;
double r608 = -r607;
double r609 = KbT;
double r610 = r608 / r609;
double r611 = exp(r610);
double r612 = r600 + r611;
double r613 = r599 / r612;
double r614 = NaChar;
double r615 = Ev;
double r616 = r615 + r602;
double r617 = EAccept;
double r618 = r616 + r617;
double r619 = -r606;
double r620 = r618 + r619;
double r621 = r620 / r609;
double r622 = exp(r621);
double r623 = r600 + r622;
double r624 = r614 / r623;
double r625 = r613 + r624;
return r625;
}



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
Final simplification0.0
herbie shell --seed 2020025 +o rules:numerics
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
:precision binary64
(+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))