\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}{\sqrt[3]{\sqrt[3]{{\left({\left(1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}\right)}^{3}\right)}^{3}}}} + \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 r251742 = NdChar;
double r251743 = 1.0;
double r251744 = Ec;
double r251745 = Vef;
double r251746 = r251744 - r251745;
double r251747 = EDonor;
double r251748 = r251746 - r251747;
double r251749 = mu;
double r251750 = r251748 - r251749;
double r251751 = -r251750;
double r251752 = KbT;
double r251753 = r251751 / r251752;
double r251754 = exp(r251753);
double r251755 = r251743 + r251754;
double r251756 = r251742 / r251755;
double r251757 = NaChar;
double r251758 = Ev;
double r251759 = r251758 + r251745;
double r251760 = EAccept;
double r251761 = r251759 + r251760;
double r251762 = -r251749;
double r251763 = r251761 + r251762;
double r251764 = r251763 / r251752;
double r251765 = exp(r251764);
double r251766 = r251743 + r251765;
double r251767 = r251757 / r251766;
double r251768 = r251756 + r251767;
return r251768;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r251769 = NdChar;
double r251770 = 1.0;
double r251771 = Ec;
double r251772 = Vef;
double r251773 = r251771 - r251772;
double r251774 = EDonor;
double r251775 = r251773 - r251774;
double r251776 = mu;
double r251777 = r251775 - r251776;
double r251778 = -r251777;
double r251779 = KbT;
double r251780 = r251778 / r251779;
double r251781 = exp(r251780);
double r251782 = r251770 + r251781;
double r251783 = 3.0;
double r251784 = pow(r251782, r251783);
double r251785 = pow(r251784, r251783);
double r251786 = cbrt(r251785);
double r251787 = cbrt(r251786);
double r251788 = r251769 / r251787;
double r251789 = NaChar;
double r251790 = Ev;
double r251791 = r251790 + r251772;
double r251792 = EAccept;
double r251793 = r251791 + r251792;
double r251794 = -r251776;
double r251795 = r251793 + r251794;
double r251796 = r251795 / r251779;
double r251797 = exp(r251796);
double r251798 = r251770 + r251797;
double r251799 = r251789 / r251798;
double r251800 = r251788 + r251799;
return r251800;
}



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-cube0.0
Simplified0.0
rmApplied add-cbrt-cube0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020036 +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))))))