\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 \cdot e^{e^{\frac{\left(\left(mu + EDonor\right) - Ec\right) + Vef}{KbT}}}\right)} + \frac{NaChar}{e^{\frac{\left(\left(Vef - mu\right) + Ev\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 r9334908 = NdChar;
double r9334909 = 1.0;
double r9334910 = Ec;
double r9334911 = Vef;
double r9334912 = r9334910 - r9334911;
double r9334913 = EDonor;
double r9334914 = r9334912 - r9334913;
double r9334915 = mu;
double r9334916 = r9334914 - r9334915;
double r9334917 = -r9334916;
double r9334918 = KbT;
double r9334919 = r9334917 / r9334918;
double r9334920 = exp(r9334919);
double r9334921 = r9334909 + r9334920;
double r9334922 = r9334908 / r9334921;
double r9334923 = NaChar;
double r9334924 = Ev;
double r9334925 = r9334924 + r9334911;
double r9334926 = EAccept;
double r9334927 = r9334925 + r9334926;
double r9334928 = -r9334915;
double r9334929 = r9334927 + r9334928;
double r9334930 = r9334929 / r9334918;
double r9334931 = exp(r9334930);
double r9334932 = r9334909 + r9334931;
double r9334933 = r9334923 / r9334932;
double r9334934 = r9334922 + r9334933;
return r9334934;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r9334935 = NdChar;
double r9334936 = exp(1.0);
double r9334937 = mu;
double r9334938 = EDonor;
double r9334939 = r9334937 + r9334938;
double r9334940 = Ec;
double r9334941 = r9334939 - r9334940;
double r9334942 = Vef;
double r9334943 = r9334941 + r9334942;
double r9334944 = KbT;
double r9334945 = r9334943 / r9334944;
double r9334946 = exp(r9334945);
double r9334947 = exp(r9334946);
double r9334948 = r9334936 * r9334947;
double r9334949 = log(r9334948);
double r9334950 = r9334935 / r9334949;
double r9334951 = NaChar;
double r9334952 = r9334942 - r9334937;
double r9334953 = Ev;
double r9334954 = r9334952 + r9334953;
double r9334955 = EAccept;
double r9334956 = r9334954 + r9334955;
double r9334957 = r9334956 / r9334944;
double r9334958 = exp(r9334957);
double r9334959 = 1.0;
double r9334960 = r9334958 + r9334959;
double r9334961 = r9334951 / r9334960;
double r9334962 = r9334950 + r9334961;
return r9334962;
}



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.1
Applied sum-log0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019138
(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))))))