\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}{\log \left(e^{e^{\frac{EDonor + \left(\left(mu - Ec\right) + Vef\right)}{KbT}}} \cdot e\right)} + \frac{NaChar}{e^{\frac{\left(Vef - mu\right) + \left(Ev + EAccept\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r8751812 = NdChar;
double r8751813 = 1.0;
double r8751814 = Ec;
double r8751815 = Vef;
double r8751816 = r8751814 - r8751815;
double r8751817 = EDonor;
double r8751818 = r8751816 - r8751817;
double r8751819 = mu;
double r8751820 = r8751818 - r8751819;
double r8751821 = -r8751820;
double r8751822 = KbT;
double r8751823 = r8751821 / r8751822;
double r8751824 = exp(r8751823);
double r8751825 = r8751813 + r8751824;
double r8751826 = r8751812 / r8751825;
double r8751827 = NaChar;
double r8751828 = Ev;
double r8751829 = r8751828 + r8751815;
double r8751830 = EAccept;
double r8751831 = r8751829 + r8751830;
double r8751832 = -r8751819;
double r8751833 = r8751831 + r8751832;
double r8751834 = r8751833 / r8751822;
double r8751835 = exp(r8751834);
double r8751836 = r8751813 + r8751835;
double r8751837 = r8751827 / r8751836;
double r8751838 = r8751826 + r8751837;
return r8751838;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r8751839 = NdChar;
double r8751840 = EDonor;
double r8751841 = mu;
double r8751842 = Ec;
double r8751843 = r8751841 - r8751842;
double r8751844 = Vef;
double r8751845 = r8751843 + r8751844;
double r8751846 = r8751840 + r8751845;
double r8751847 = KbT;
double r8751848 = r8751846 / r8751847;
double r8751849 = exp(r8751848);
double r8751850 = exp(r8751849);
double r8751851 = exp(1.0);
double r8751852 = r8751850 * r8751851;
double r8751853 = log(r8751852);
double r8751854 = r8751839 / r8751853;
double r8751855 = NaChar;
double r8751856 = r8751844 - r8751841;
double r8751857 = Ev;
double r8751858 = EAccept;
double r8751859 = r8751857 + r8751858;
double r8751860 = r8751856 + r8751859;
double r8751861 = r8751860 / r8751847;
double r8751862 = exp(r8751861);
double r8751863 = 1.0;
double r8751864 = r8751862 + r8751863;
double r8751865 = r8751855 / r8751864;
double r8751866 = r8751854 + r8751865;
return r8751866;
}



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.0
Applied add-log-exp0.0
Applied sum-log0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019143
(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))))))