\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 + e^{-\frac{Ec - \left(EDonor + \left(mu + Vef\right)\right)}{KbT}}} + \frac{NaChar}{e^{\frac{\left(\left(Ev + Vef\right) - mu\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 r54166236 = NdChar;
double r54166237 = 1.0;
double r54166238 = Ec;
double r54166239 = Vef;
double r54166240 = r54166238 - r54166239;
double r54166241 = EDonor;
double r54166242 = r54166240 - r54166241;
double r54166243 = mu;
double r54166244 = r54166242 - r54166243;
double r54166245 = -r54166244;
double r54166246 = KbT;
double r54166247 = r54166245 / r54166246;
double r54166248 = exp(r54166247);
double r54166249 = r54166237 + r54166248;
double r54166250 = r54166236 / r54166249;
double r54166251 = NaChar;
double r54166252 = Ev;
double r54166253 = r54166252 + r54166239;
double r54166254 = EAccept;
double r54166255 = r54166253 + r54166254;
double r54166256 = -r54166243;
double r54166257 = r54166255 + r54166256;
double r54166258 = r54166257 / r54166246;
double r54166259 = exp(r54166258);
double r54166260 = r54166237 + r54166259;
double r54166261 = r54166251 / r54166260;
double r54166262 = r54166250 + r54166261;
return r54166262;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r54166263 = NdChar;
double r54166264 = 1.0;
double r54166265 = Ec;
double r54166266 = EDonor;
double r54166267 = mu;
double r54166268 = Vef;
double r54166269 = r54166267 + r54166268;
double r54166270 = r54166266 + r54166269;
double r54166271 = r54166265 - r54166270;
double r54166272 = KbT;
double r54166273 = r54166271 / r54166272;
double r54166274 = -r54166273;
double r54166275 = exp(r54166274);
double r54166276 = r54166264 + r54166275;
double r54166277 = r54166263 / r54166276;
double r54166278 = NaChar;
double r54166279 = Ev;
double r54166280 = r54166279 + r54166268;
double r54166281 = r54166280 - r54166267;
double r54166282 = EAccept;
double r54166283 = r54166281 + r54166282;
double r54166284 = r54166283 / r54166272;
double r54166285 = exp(r54166284);
double r54166286 = r54166285 + r54166264;
double r54166287 = r54166278 / r54166286;
double r54166288 = r54166277 + r54166287;
return r54166288;
}



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 2019121
(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))))))