\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{1}{\left(e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}} + 1\right) \cdot \frac{1}{NaChar}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r120176 = NdChar;
double r120177 = 1.0;
double r120178 = Ec;
double r120179 = Vef;
double r120180 = r120178 - r120179;
double r120181 = EDonor;
double r120182 = r120180 - r120181;
double r120183 = mu;
double r120184 = r120182 - r120183;
double r120185 = -r120184;
double r120186 = KbT;
double r120187 = r120185 / r120186;
double r120188 = exp(r120187);
double r120189 = r120177 + r120188;
double r120190 = r120176 / r120189;
double r120191 = NaChar;
double r120192 = Ev;
double r120193 = r120192 + r120179;
double r120194 = EAccept;
double r120195 = r120193 + r120194;
double r120196 = -r120183;
double r120197 = r120195 + r120196;
double r120198 = r120197 / r120186;
double r120199 = exp(r120198);
double r120200 = r120177 + r120199;
double r120201 = r120191 / r120200;
double r120202 = r120190 + r120201;
return r120202;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r120203 = NdChar;
double r120204 = 1.0;
double r120205 = Ec;
double r120206 = Vef;
double r120207 = r120205 - r120206;
double r120208 = EDonor;
double r120209 = r120207 - r120208;
double r120210 = mu;
double r120211 = r120209 - r120210;
double r120212 = -r120211;
double r120213 = KbT;
double r120214 = r120212 / r120213;
double r120215 = exp(r120214);
double r120216 = r120204 + r120215;
double r120217 = r120203 / r120216;
double r120218 = 1.0;
double r120219 = Ev;
double r120220 = r120219 + r120206;
double r120221 = EAccept;
double r120222 = r120220 + r120221;
double r120223 = r120222 - r120210;
double r120224 = r120223 / r120213;
double r120225 = exp(r120224);
double r120226 = r120225 + r120204;
double r120227 = NaChar;
double r120228 = r120218 / r120227;
double r120229 = r120226 * r120228;
double r120230 = r120218 / r120229;
double r120231 = r120217 + r120230;
return r120231;
}



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
Simplified0.1
rmApplied div-inv0.1
Final simplification0.1
herbie shell --seed 2019306 +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))))))