\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 + 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}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r224835 = NdChar;
double r224836 = 1.0;
double r224837 = Ec;
double r224838 = Vef;
double r224839 = r224837 - r224838;
double r224840 = EDonor;
double r224841 = r224839 - r224840;
double r224842 = mu;
double r224843 = r224841 - r224842;
double r224844 = -r224843;
double r224845 = KbT;
double r224846 = r224844 / r224845;
double r224847 = exp(r224846);
double r224848 = r224836 + r224847;
double r224849 = r224835 / r224848;
double r224850 = NaChar;
double r224851 = Ev;
double r224852 = r224851 + r224838;
double r224853 = EAccept;
double r224854 = r224852 + r224853;
double r224855 = -r224842;
double r224856 = r224854 + r224855;
double r224857 = r224856 / r224845;
double r224858 = exp(r224857);
double r224859 = r224836 + r224858;
double r224860 = r224850 / r224859;
double r224861 = r224849 + r224860;
return r224861;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r224862 = NdChar;
double r224863 = 1.0;
double r224864 = Ec;
double r224865 = Vef;
double r224866 = r224864 - r224865;
double r224867 = EDonor;
double r224868 = r224866 - r224867;
double r224869 = mu;
double r224870 = r224868 - r224869;
double r224871 = -r224870;
double r224872 = KbT;
double r224873 = r224871 / r224872;
double r224874 = exp(r224873);
double r224875 = r224863 + r224874;
double r224876 = r224862 / r224875;
double r224877 = NaChar;
double r224878 = Ev;
double r224879 = r224878 + r224865;
double r224880 = EAccept;
double r224881 = r224879 + r224880;
double r224882 = -r224869;
double r224883 = r224881 + r224882;
double r224884 = r224883 / r224872;
double r224885 = exp(r224884);
double r224886 = r224863 + r224885;
double r224887 = r224877 / r224886;
double r224888 = r224876 + r224887;
return r224888;
}



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
Final simplification0.0
herbie shell --seed 2020083 +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))))))