\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{NaChar}{e^{\frac{\left(Ev + Vef\right) - \left(mu - EAccept\right)}{KbT}} + 1} + \frac{NdChar}{1 + \sqrt[3]{e^{\frac{\left(Vef + \left(mu - Ec\right)\right) + EDonor}{KbT}}} \cdot {\left(e^{\frac{\left(Vef + \left(mu - Ec\right)\right) + EDonor}{KbT}}\right)}^{\frac{2}{3}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r9252193 = NdChar;
double r9252194 = 1.0;
double r9252195 = Ec;
double r9252196 = Vef;
double r9252197 = r9252195 - r9252196;
double r9252198 = EDonor;
double r9252199 = r9252197 - r9252198;
double r9252200 = mu;
double r9252201 = r9252199 - r9252200;
double r9252202 = -r9252201;
double r9252203 = KbT;
double r9252204 = r9252202 / r9252203;
double r9252205 = exp(r9252204);
double r9252206 = r9252194 + r9252205;
double r9252207 = r9252193 / r9252206;
double r9252208 = NaChar;
double r9252209 = Ev;
double r9252210 = r9252209 + r9252196;
double r9252211 = EAccept;
double r9252212 = r9252210 + r9252211;
double r9252213 = -r9252200;
double r9252214 = r9252212 + r9252213;
double r9252215 = r9252214 / r9252203;
double r9252216 = exp(r9252215);
double r9252217 = r9252194 + r9252216;
double r9252218 = r9252208 / r9252217;
double r9252219 = r9252207 + r9252218;
return r9252219;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r9252220 = NaChar;
double r9252221 = Ev;
double r9252222 = Vef;
double r9252223 = r9252221 + r9252222;
double r9252224 = mu;
double r9252225 = EAccept;
double r9252226 = r9252224 - r9252225;
double r9252227 = r9252223 - r9252226;
double r9252228 = KbT;
double r9252229 = r9252227 / r9252228;
double r9252230 = exp(r9252229);
double r9252231 = 1.0;
double r9252232 = r9252230 + r9252231;
double r9252233 = r9252220 / r9252232;
double r9252234 = NdChar;
double r9252235 = Ec;
double r9252236 = r9252224 - r9252235;
double r9252237 = r9252222 + r9252236;
double r9252238 = EDonor;
double r9252239 = r9252237 + r9252238;
double r9252240 = r9252239 / r9252228;
double r9252241 = exp(r9252240);
double r9252242 = cbrt(r9252241);
double r9252243 = 0.6666666666666666;
double r9252244 = pow(r9252241, r9252243);
double r9252245 = r9252242 * r9252244;
double r9252246 = r9252231 + r9252245;
double r9252247 = r9252234 / r9252246;
double r9252248 = r9252233 + r9252247;
return r9252248;
}



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 add-cube-cbrt0.0
rmApplied pow1/30.0
Applied pow1/30.0
Applied pow-prod-up0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019170
(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))))))