\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}{e^{\frac{\left(EDonor - Ec\right) + \left(mu + Vef\right)}{KbT}} + 1} + \frac{NaChar}{e^{\frac{\left(EAccept - mu\right) + \left(Ev + Vef\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7486159 = NdChar;
double r7486160 = 1.0;
double r7486161 = Ec;
double r7486162 = Vef;
double r7486163 = r7486161 - r7486162;
double r7486164 = EDonor;
double r7486165 = r7486163 - r7486164;
double r7486166 = mu;
double r7486167 = r7486165 - r7486166;
double r7486168 = -r7486167;
double r7486169 = KbT;
double r7486170 = r7486168 / r7486169;
double r7486171 = exp(r7486170);
double r7486172 = r7486160 + r7486171;
double r7486173 = r7486159 / r7486172;
double r7486174 = NaChar;
double r7486175 = Ev;
double r7486176 = r7486175 + r7486162;
double r7486177 = EAccept;
double r7486178 = r7486176 + r7486177;
double r7486179 = -r7486166;
double r7486180 = r7486178 + r7486179;
double r7486181 = r7486180 / r7486169;
double r7486182 = exp(r7486181);
double r7486183 = r7486160 + r7486182;
double r7486184 = r7486174 / r7486183;
double r7486185 = r7486173 + r7486184;
return r7486185;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7486186 = NdChar;
double r7486187 = EDonor;
double r7486188 = Ec;
double r7486189 = r7486187 - r7486188;
double r7486190 = mu;
double r7486191 = Vef;
double r7486192 = r7486190 + r7486191;
double r7486193 = r7486189 + r7486192;
double r7486194 = KbT;
double r7486195 = r7486193 / r7486194;
double r7486196 = exp(r7486195);
double r7486197 = 1.0;
double r7486198 = r7486196 + r7486197;
double r7486199 = r7486186 / r7486198;
double r7486200 = NaChar;
double r7486201 = EAccept;
double r7486202 = r7486201 - r7486190;
double r7486203 = Ev;
double r7486204 = r7486203 + r7486191;
double r7486205 = r7486202 + r7486204;
double r7486206 = r7486205 / r7486194;
double r7486207 = exp(r7486206);
double r7486208 = r7486207 + r7486197;
double r7486209 = r7486200 / r7486208;
double r7486210 = r7486199 + r7486209;
return r7486210;
}



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
Final simplification0.0
herbie shell --seed 2019200 +o rules:numerics
(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))))))