\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 + \frac{1}{e^{\frac{\left(\left(Ec - Vef\right) - EDonor\right) - mu}{KbT}}}} + \frac{NaChar}{1 + \sqrt{e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}} \cdot \sqrt{e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r331208 = NdChar;
double r331209 = 1.0;
double r331210 = Ec;
double r331211 = Vef;
double r331212 = r331210 - r331211;
double r331213 = EDonor;
double r331214 = r331212 - r331213;
double r331215 = mu;
double r331216 = r331214 - r331215;
double r331217 = -r331216;
double r331218 = KbT;
double r331219 = r331217 / r331218;
double r331220 = exp(r331219);
double r331221 = r331209 + r331220;
double r331222 = r331208 / r331221;
double r331223 = NaChar;
double r331224 = Ev;
double r331225 = r331224 + r331211;
double r331226 = EAccept;
double r331227 = r331225 + r331226;
double r331228 = -r331215;
double r331229 = r331227 + r331228;
double r331230 = r331229 / r331218;
double r331231 = exp(r331230);
double r331232 = r331209 + r331231;
double r331233 = r331223 / r331232;
double r331234 = r331222 + r331233;
return r331234;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r331235 = NdChar;
double r331236 = 1.0;
double r331237 = 1.0;
double r331238 = Ec;
double r331239 = Vef;
double r331240 = r331238 - r331239;
double r331241 = EDonor;
double r331242 = r331240 - r331241;
double r331243 = mu;
double r331244 = r331242 - r331243;
double r331245 = KbT;
double r331246 = r331244 / r331245;
double r331247 = exp(r331246);
double r331248 = r331237 / r331247;
double r331249 = r331236 + r331248;
double r331250 = r331235 / r331249;
double r331251 = NaChar;
double r331252 = Ev;
double r331253 = r331252 + r331239;
double r331254 = EAccept;
double r331255 = r331253 + r331254;
double r331256 = -r331243;
double r331257 = r331255 + r331256;
double r331258 = r331257 / r331245;
double r331259 = exp(r331258);
double r331260 = sqrt(r331259);
double r331261 = r331260 * r331260;
double r331262 = r331236 + r331261;
double r331263 = r331251 / r331262;
double r331264 = r331250 + r331263;
return r331264;
}



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
rmApplied distribute-frac-neg0.0
Applied exp-neg0.0
rmApplied add-sqr-sqrt0.0
Final simplification0.0
herbie shell --seed 2020035
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
:precision binary64
(+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))