\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(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1} + \frac{NaChar}{1 + \sqrt{e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}} \cdot \sqrt{e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r345044 = NdChar;
double r345045 = 1.0;
double r345046 = Ec;
double r345047 = Vef;
double r345048 = r345046 - r345047;
double r345049 = EDonor;
double r345050 = r345048 - r345049;
double r345051 = mu;
double r345052 = r345050 - r345051;
double r345053 = -r345052;
double r345054 = KbT;
double r345055 = r345053 / r345054;
double r345056 = exp(r345055);
double r345057 = r345045 + r345056;
double r345058 = r345044 / r345057;
double r345059 = NaChar;
double r345060 = Ev;
double r345061 = r345060 + r345047;
double r345062 = EAccept;
double r345063 = r345061 + r345062;
double r345064 = -r345051;
double r345065 = r345063 + r345064;
double r345066 = r345065 / r345054;
double r345067 = exp(r345066);
double r345068 = r345045 + r345067;
double r345069 = r345059 / r345068;
double r345070 = r345058 + r345069;
return r345070;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r345071 = NdChar;
double r345072 = mu;
double r345073 = Ec;
double r345074 = Vef;
double r345075 = r345073 - r345074;
double r345076 = EDonor;
double r345077 = r345075 - r345076;
double r345078 = r345072 - r345077;
double r345079 = KbT;
double r345080 = r345078 / r345079;
double r345081 = exp(r345080);
double r345082 = 1.0;
double r345083 = r345081 + r345082;
double r345084 = r345071 / r345083;
double r345085 = NaChar;
double r345086 = Ev;
double r345087 = r345086 + r345074;
double r345088 = EAccept;
double r345089 = r345087 + r345088;
double r345090 = r345089 - r345072;
double r345091 = r345090 / r345079;
double r345092 = exp(r345091);
double r345093 = sqrt(r345092);
double r345094 = r345093 * r345093;
double r345095 = r345082 + r345094;
double r345096 = r345085 / r345095;
double r345097 = r345084 + r345096;
return r345097;
}



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 add-sqr-sqrt0.0
Final simplification0.0
herbie shell --seed 2020047 +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))))))