\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}{\mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}}\right)\right) + 1} + \frac{NdChar}{1 + e^{\frac{EDonor - \left(\left(Ec - Vef\right) - mu\right)}{KbT}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r2132796 = NdChar;
double r2132797 = 1.0;
double r2132798 = Ec;
double r2132799 = Vef;
double r2132800 = r2132798 - r2132799;
double r2132801 = EDonor;
double r2132802 = r2132800 - r2132801;
double r2132803 = mu;
double r2132804 = r2132802 - r2132803;
double r2132805 = -r2132804;
double r2132806 = KbT;
double r2132807 = r2132805 / r2132806;
double r2132808 = exp(r2132807);
double r2132809 = r2132797 + r2132808;
double r2132810 = r2132796 / r2132809;
double r2132811 = NaChar;
double r2132812 = Ev;
double r2132813 = r2132812 + r2132799;
double r2132814 = EAccept;
double r2132815 = r2132813 + r2132814;
double r2132816 = -r2132803;
double r2132817 = r2132815 + r2132816;
double r2132818 = r2132817 / r2132806;
double r2132819 = exp(r2132818);
double r2132820 = r2132797 + r2132819;
double r2132821 = r2132811 / r2132820;
double r2132822 = r2132810 + r2132821;
return r2132822;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r2132823 = NaChar;
double r2132824 = Vef;
double r2132825 = mu;
double r2132826 = r2132824 - r2132825;
double r2132827 = Ev;
double r2132828 = r2132826 + r2132827;
double r2132829 = EAccept;
double r2132830 = r2132828 + r2132829;
double r2132831 = KbT;
double r2132832 = r2132830 / r2132831;
double r2132833 = exp(r2132832);
double r2132834 = log1p(r2132833);
double r2132835 = expm1(r2132834);
double r2132836 = 1.0;
double r2132837 = r2132835 + r2132836;
double r2132838 = r2132823 / r2132837;
double r2132839 = NdChar;
double r2132840 = EDonor;
double r2132841 = Ec;
double r2132842 = r2132841 - r2132824;
double r2132843 = r2132842 - r2132825;
double r2132844 = r2132840 - r2132843;
double r2132845 = r2132844 / r2132831;
double r2132846 = exp(r2132845);
double r2132847 = r2132836 + r2132846;
double r2132848 = r2132839 / r2132847;
double r2132849 = r2132838 + r2132848;
return r2132849;
}



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 expm1-log1p-u0.0
Final simplification0.0
herbie shell --seed 2019156 +o rules:numerics
(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))))))