\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 + \log \left(e^{e^{\frac{\left(Vef + EDonor\right) + \left(mu - Ec\right)}{KbT}}}\right)} + \frac{NaChar}{e^{\frac{\left(\left(Vef + Ev\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 r146721 = NdChar;
double r146722 = 1.0;
double r146723 = Ec;
double r146724 = Vef;
double r146725 = r146723 - r146724;
double r146726 = EDonor;
double r146727 = r146725 - r146726;
double r146728 = mu;
double r146729 = r146727 - r146728;
double r146730 = -r146729;
double r146731 = KbT;
double r146732 = r146730 / r146731;
double r146733 = exp(r146732);
double r146734 = r146722 + r146733;
double r146735 = r146721 / r146734;
double r146736 = NaChar;
double r146737 = Ev;
double r146738 = r146737 + r146724;
double r146739 = EAccept;
double r146740 = r146738 + r146739;
double r146741 = -r146728;
double r146742 = r146740 + r146741;
double r146743 = r146742 / r146731;
double r146744 = exp(r146743);
double r146745 = r146722 + r146744;
double r146746 = r146736 / r146745;
double r146747 = r146735 + r146746;
return r146747;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r146748 = NdChar;
double r146749 = 1.0;
double r146750 = Vef;
double r146751 = EDonor;
double r146752 = r146750 + r146751;
double r146753 = mu;
double r146754 = Ec;
double r146755 = r146753 - r146754;
double r146756 = r146752 + r146755;
double r146757 = KbT;
double r146758 = r146756 / r146757;
double r146759 = exp(r146758);
double r146760 = exp(r146759);
double r146761 = log(r146760);
double r146762 = r146749 + r146761;
double r146763 = r146748 / r146762;
double r146764 = NaChar;
double r146765 = Ev;
double r146766 = r146750 + r146765;
double r146767 = r146766 - r146753;
double r146768 = EAccept;
double r146769 = r146767 + r146768;
double r146770 = r146769 / r146757;
double r146771 = exp(r146770);
double r146772 = r146771 + r146749;
double r146773 = r146764 / r146772;
double r146774 = r146763 + r146773;
return r146774;
}



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
rmApplied add-log-exp0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019174
(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))))))