\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{1}{\frac{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}}{NdChar}} + \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 r250830 = NdChar;
double r250831 = 1.0;
double r250832 = Ec;
double r250833 = Vef;
double r250834 = r250832 - r250833;
double r250835 = EDonor;
double r250836 = r250834 - r250835;
double r250837 = mu;
double r250838 = r250836 - r250837;
double r250839 = -r250838;
double r250840 = KbT;
double r250841 = r250839 / r250840;
double r250842 = exp(r250841);
double r250843 = r250831 + r250842;
double r250844 = r250830 / r250843;
double r250845 = NaChar;
double r250846 = Ev;
double r250847 = r250846 + r250833;
double r250848 = EAccept;
double r250849 = r250847 + r250848;
double r250850 = -r250837;
double r250851 = r250849 + r250850;
double r250852 = r250851 / r250840;
double r250853 = exp(r250852);
double r250854 = r250831 + r250853;
double r250855 = r250845 / r250854;
double r250856 = r250844 + r250855;
return r250856;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r250857 = 1.0;
double r250858 = 1.0;
double r250859 = Ec;
double r250860 = Vef;
double r250861 = r250859 - r250860;
double r250862 = EDonor;
double r250863 = r250861 - r250862;
double r250864 = mu;
double r250865 = r250863 - r250864;
double r250866 = -r250865;
double r250867 = KbT;
double r250868 = r250866 / r250867;
double r250869 = exp(r250868);
double r250870 = r250858 + r250869;
double r250871 = NdChar;
double r250872 = r250870 / r250871;
double r250873 = r250857 / r250872;
double r250874 = NaChar;
double r250875 = Ev;
double r250876 = r250875 + r250860;
double r250877 = EAccept;
double r250878 = r250876 + r250877;
double r250879 = -r250864;
double r250880 = r250878 + r250879;
double r250881 = r250880 / r250867;
double r250882 = exp(r250881);
double r250883 = r250858 + r250882;
double r250884 = r250874 / r250883;
double r250885 = r250873 + r250884;
return r250885;
}



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 clear-num0.1
Final simplification0.1
herbie shell --seed 2019353 +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))))))