\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 + {\left(e^{-1}\right)}^{\left(\sqrt[3]{{\left(\frac{\left(\left(Ec - Vef\right) - EDonor\right) - mu}{KbT}\right)}^{3}}\right)}} + \frac{NaChar}{1 + \sqrt[3]{{\left(e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}\right)}^{\frac{3}{2}}} \cdot \sqrt[3]{{\left(e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}\right)}^{\frac{3}{2}}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r333431 = NdChar;
double r333432 = 1.0;
double r333433 = Ec;
double r333434 = Vef;
double r333435 = r333433 - r333434;
double r333436 = EDonor;
double r333437 = r333435 - r333436;
double r333438 = mu;
double r333439 = r333437 - r333438;
double r333440 = -r333439;
double r333441 = KbT;
double r333442 = r333440 / r333441;
double r333443 = exp(r333442);
double r333444 = r333432 + r333443;
double r333445 = r333431 / r333444;
double r333446 = NaChar;
double r333447 = Ev;
double r333448 = r333447 + r333434;
double r333449 = EAccept;
double r333450 = r333448 + r333449;
double r333451 = -r333438;
double r333452 = r333450 + r333451;
double r333453 = r333452 / r333441;
double r333454 = exp(r333453);
double r333455 = r333432 + r333454;
double r333456 = r333446 / r333455;
double r333457 = r333445 + r333456;
return r333457;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r333458 = NdChar;
double r333459 = 1.0;
double r333460 = -1.0;
double r333461 = exp(r333460);
double r333462 = Ec;
double r333463 = Vef;
double r333464 = r333462 - r333463;
double r333465 = EDonor;
double r333466 = r333464 - r333465;
double r333467 = mu;
double r333468 = r333466 - r333467;
double r333469 = KbT;
double r333470 = r333468 / r333469;
double r333471 = 3.0;
double r333472 = pow(r333470, r333471);
double r333473 = cbrt(r333472);
double r333474 = pow(r333461, r333473);
double r333475 = r333459 + r333474;
double r333476 = r333458 / r333475;
double r333477 = NaChar;
double r333478 = Ev;
double r333479 = r333478 + r333463;
double r333480 = EAccept;
double r333481 = r333479 + r333480;
double r333482 = r333481 - r333467;
double r333483 = r333482 / r333469;
double r333484 = exp(r333483);
double r333485 = 1.5;
double r333486 = pow(r333484, r333485);
double r333487 = cbrt(r333486);
double r333488 = r333487 * r333487;
double r333489 = r333459 + r333488;
double r333490 = r333477 / r333489;
double r333491 = r333476 + r333490;
return r333491;
}



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 add-cbrt-cube6.8
Applied add-cbrt-cube17.9
Applied cbrt-undiv17.9
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied neg-mul-10.0
Applied times-frac0.0
Applied unpow-prod-down0.0
Applied cbrt-prod0.0
Applied exp-prod0.0
Simplified0.0
rmApplied add-cbrt-cube0.0
Simplified0.0
rmApplied sqr-pow0.0
Applied cbrt-prod0.0
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019323 +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))))))