\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}}}NaChar \cdot \frac{1}{1 + e^{\frac{\left(Vef + EAccept\right) + \left(Ev - mu\right)}{KbT}}} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - EDonor\right) - Vef\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r172831 = NdChar;
double r172832 = 1.0;
double r172833 = Ec;
double r172834 = Vef;
double r172835 = r172833 - r172834;
double r172836 = EDonor;
double r172837 = r172835 - r172836;
double r172838 = mu;
double r172839 = r172837 - r172838;
double r172840 = -r172839;
double r172841 = KbT;
double r172842 = r172840 / r172841;
double r172843 = exp(r172842);
double r172844 = r172832 + r172843;
double r172845 = r172831 / r172844;
double r172846 = NaChar;
double r172847 = Ev;
double r172848 = r172847 + r172834;
double r172849 = EAccept;
double r172850 = r172848 + r172849;
double r172851 = -r172838;
double r172852 = r172850 + r172851;
double r172853 = r172852 / r172841;
double r172854 = exp(r172853);
double r172855 = r172832 + r172854;
double r172856 = r172846 / r172855;
double r172857 = r172845 + r172856;
return r172857;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r172858 = NaChar;
double r172859 = 1.0;
double r172860 = 1.0;
double r172861 = Vef;
double r172862 = EAccept;
double r172863 = r172861 + r172862;
double r172864 = Ev;
double r172865 = mu;
double r172866 = r172864 - r172865;
double r172867 = r172863 + r172866;
double r172868 = KbT;
double r172869 = r172867 / r172868;
double r172870 = exp(r172869);
double r172871 = r172860 + r172870;
double r172872 = r172859 / r172871;
double r172873 = r172858 * r172872;
double r172874 = NdChar;
double r172875 = Ec;
double r172876 = EDonor;
double r172877 = r172875 - r172876;
double r172878 = r172877 - r172861;
double r172879 = r172865 - r172878;
double r172880 = r172879 / r172868;
double r172881 = exp(r172880);
double r172882 = r172881 + r172860;
double r172883 = r172874 / r172882;
double r172884 = r172873 + r172883;
return r172884;
}



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 div-inv0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019179 +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))))))