\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 + \log \left(e^{e^{-\frac{Ec - \left(Vef + \left(mu + EDonor\right)\right)}{KbT}}}\right)} + \frac{NaChar}{1 + e^{\frac{\left(-mu\right) + \left(EAccept + \left(Ev + Vef\right)\right)}{KbT}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r335661 = NdChar;
double r335662 = 1.0;
double r335663 = Ec;
double r335664 = Vef;
double r335665 = r335663 - r335664;
double r335666 = EDonor;
double r335667 = r335665 - r335666;
double r335668 = mu;
double r335669 = r335667 - r335668;
double r335670 = -r335669;
double r335671 = KbT;
double r335672 = r335670 / r335671;
double r335673 = exp(r335672);
double r335674 = r335662 + r335673;
double r335675 = r335661 / r335674;
double r335676 = NaChar;
double r335677 = Ev;
double r335678 = r335677 + r335664;
double r335679 = EAccept;
double r335680 = r335678 + r335679;
double r335681 = -r335668;
double r335682 = r335680 + r335681;
double r335683 = r335682 / r335671;
double r335684 = exp(r335683);
double r335685 = r335662 + r335684;
double r335686 = r335676 / r335685;
double r335687 = r335675 + r335686;
return r335687;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r335688 = NdChar;
double r335689 = 1.0;
double r335690 = Ec;
double r335691 = Vef;
double r335692 = mu;
double r335693 = EDonor;
double r335694 = r335692 + r335693;
double r335695 = r335691 + r335694;
double r335696 = r335690 - r335695;
double r335697 = KbT;
double r335698 = r335696 / r335697;
double r335699 = -r335698;
double r335700 = exp(r335699);
double r335701 = exp(r335700);
double r335702 = log(r335701);
double r335703 = r335689 + r335702;
double r335704 = r335688 / r335703;
double r335705 = NaChar;
double r335706 = -r335692;
double r335707 = EAccept;
double r335708 = Ev;
double r335709 = r335708 + r335691;
double r335710 = r335707 + r335709;
double r335711 = r335706 + r335710;
double r335712 = r335711 / r335697;
double r335713 = exp(r335712);
double r335714 = r335689 + r335713;
double r335715 = r335705 / r335714;
double r335716 = r335704 + r335715;
return r335716;
}



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-log-exp0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019174 +o rules:numerics
(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))))))