\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{1}{\frac{1 + e^{\frac{\left(EAccept + Ev\right) + \left(Vef - mu\right)}{KbT}}}{NaChar}} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7683154 = NdChar;
double r7683155 = 1.0;
double r7683156 = Ec;
double r7683157 = Vef;
double r7683158 = r7683156 - r7683157;
double r7683159 = EDonor;
double r7683160 = r7683158 - r7683159;
double r7683161 = mu;
double r7683162 = r7683160 - r7683161;
double r7683163 = -r7683162;
double r7683164 = KbT;
double r7683165 = r7683163 / r7683164;
double r7683166 = exp(r7683165);
double r7683167 = r7683155 + r7683166;
double r7683168 = r7683154 / r7683167;
double r7683169 = NaChar;
double r7683170 = Ev;
double r7683171 = r7683170 + r7683157;
double r7683172 = EAccept;
double r7683173 = r7683171 + r7683172;
double r7683174 = -r7683161;
double r7683175 = r7683173 + r7683174;
double r7683176 = r7683175 / r7683164;
double r7683177 = exp(r7683176);
double r7683178 = r7683155 + r7683177;
double r7683179 = r7683169 / r7683178;
double r7683180 = r7683168 + r7683179;
return r7683180;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7683181 = 1.0;
double r7683182 = EAccept;
double r7683183 = Ev;
double r7683184 = r7683182 + r7683183;
double r7683185 = Vef;
double r7683186 = mu;
double r7683187 = r7683185 - r7683186;
double r7683188 = r7683184 + r7683187;
double r7683189 = KbT;
double r7683190 = r7683188 / r7683189;
double r7683191 = exp(r7683190);
double r7683192 = r7683181 + r7683191;
double r7683193 = NaChar;
double r7683194 = r7683192 / r7683193;
double r7683195 = r7683181 / r7683194;
double r7683196 = NdChar;
double r7683197 = Ec;
double r7683198 = r7683197 - r7683185;
double r7683199 = EDonor;
double r7683200 = r7683198 - r7683199;
double r7683201 = r7683186 - r7683200;
double r7683202 = r7683201 / r7683189;
double r7683203 = exp(r7683202);
double r7683204 = r7683203 + r7683181;
double r7683205 = r7683196 / r7683204;
double r7683206 = r7683195 + r7683205;
return r7683206;
}



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 clear-num0.1
Final simplification0.1
herbie shell --seed 2019142
(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))))))