\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 + \mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}\right)\right)} + \frac{NaChar}{1 + 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 r365188 = NdChar;
double r365189 = 1.0;
double r365190 = Ec;
double r365191 = Vef;
double r365192 = r365190 - r365191;
double r365193 = EDonor;
double r365194 = r365192 - r365193;
double r365195 = mu;
double r365196 = r365194 - r365195;
double r365197 = -r365196;
double r365198 = KbT;
double r365199 = r365197 / r365198;
double r365200 = exp(r365199);
double r365201 = r365189 + r365200;
double r365202 = r365188 / r365201;
double r365203 = NaChar;
double r365204 = Ev;
double r365205 = r365204 + r365191;
double r365206 = EAccept;
double r365207 = r365205 + r365206;
double r365208 = -r365195;
double r365209 = r365207 + r365208;
double r365210 = r365209 / r365198;
double r365211 = exp(r365210);
double r365212 = r365189 + r365211;
double r365213 = r365203 / r365212;
double r365214 = r365202 + r365213;
return r365214;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r365215 = NdChar;
double r365216 = 1.0;
double r365217 = Ec;
double r365218 = Vef;
double r365219 = r365217 - r365218;
double r365220 = EDonor;
double r365221 = r365219 - r365220;
double r365222 = mu;
double r365223 = r365221 - r365222;
double r365224 = -r365223;
double r365225 = KbT;
double r365226 = r365224 / r365225;
double r365227 = exp(r365226);
double r365228 = log1p(r365227);
double r365229 = expm1(r365228);
double r365230 = r365216 + r365229;
double r365231 = r365215 / r365230;
double r365232 = NaChar;
double r365233 = Ev;
double r365234 = r365233 + r365218;
double r365235 = EAccept;
double r365236 = r365234 + r365235;
double r365237 = -r365222;
double r365238 = r365236 + r365237;
double r365239 = r365238 / r365225;
double r365240 = exp(r365239);
double r365241 = r365216 + r365240;
double r365242 = r365232 / r365241;
double r365243 = r365231 + r365242;
return r365243;
}



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