\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}{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}} + 1} + \frac{1}{\frac{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}}{NaChar}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r208056 = NdChar;
double r208057 = 1.0;
double r208058 = Ec;
double r208059 = Vef;
double r208060 = r208058 - r208059;
double r208061 = EDonor;
double r208062 = r208060 - r208061;
double r208063 = mu;
double r208064 = r208062 - r208063;
double r208065 = -r208064;
double r208066 = KbT;
double r208067 = r208065 / r208066;
double r208068 = exp(r208067);
double r208069 = r208057 + r208068;
double r208070 = r208056 / r208069;
double r208071 = NaChar;
double r208072 = Ev;
double r208073 = r208072 + r208059;
double r208074 = EAccept;
double r208075 = r208073 + r208074;
double r208076 = -r208063;
double r208077 = r208075 + r208076;
double r208078 = r208077 / r208066;
double r208079 = exp(r208078);
double r208080 = r208057 + r208079;
double r208081 = r208071 / r208080;
double r208082 = r208070 + r208081;
return r208082;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r208083 = NdChar;
double r208084 = mu;
double r208085 = EDonor;
double r208086 = Ec;
double r208087 = Vef;
double r208088 = r208086 - r208087;
double r208089 = r208085 - r208088;
double r208090 = r208084 + r208089;
double r208091 = KbT;
double r208092 = r208090 / r208091;
double r208093 = exp(r208092);
double r208094 = 1.0;
double r208095 = r208093 + r208094;
double r208096 = r208083 / r208095;
double r208097 = 1.0;
double r208098 = Ev;
double r208099 = r208098 + r208087;
double r208100 = EAccept;
double r208101 = r208099 + r208100;
double r208102 = r208101 - r208084;
double r208103 = r208102 / r208091;
double r208104 = exp(r208103);
double r208105 = r208094 + r208104;
double r208106 = NaChar;
double r208107 = r208105 / r208106;
double r208108 = r208097 / r208107;
double r208109 = r208096 + r208108;
return r208109;
}



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