\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{NaChar}{e^{\frac{\left(Ev + Vef\right) + \left(EAccept - mu\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{\left(Vef + \left(EDonor - Ec\right)\right) + mu}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7524168 = NdChar;
double r7524169 = 1.0;
double r7524170 = Ec;
double r7524171 = Vef;
double r7524172 = r7524170 - r7524171;
double r7524173 = EDonor;
double r7524174 = r7524172 - r7524173;
double r7524175 = mu;
double r7524176 = r7524174 - r7524175;
double r7524177 = -r7524176;
double r7524178 = KbT;
double r7524179 = r7524177 / r7524178;
double r7524180 = exp(r7524179);
double r7524181 = r7524169 + r7524180;
double r7524182 = r7524168 / r7524181;
double r7524183 = NaChar;
double r7524184 = Ev;
double r7524185 = r7524184 + r7524171;
double r7524186 = EAccept;
double r7524187 = r7524185 + r7524186;
double r7524188 = -r7524175;
double r7524189 = r7524187 + r7524188;
double r7524190 = r7524189 / r7524178;
double r7524191 = exp(r7524190);
double r7524192 = r7524169 + r7524191;
double r7524193 = r7524183 / r7524192;
double r7524194 = r7524182 + r7524193;
return r7524194;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7524195 = NaChar;
double r7524196 = Ev;
double r7524197 = Vef;
double r7524198 = r7524196 + r7524197;
double r7524199 = EAccept;
double r7524200 = mu;
double r7524201 = r7524199 - r7524200;
double r7524202 = r7524198 + r7524201;
double r7524203 = KbT;
double r7524204 = r7524202 / r7524203;
double r7524205 = exp(r7524204);
double r7524206 = 1.0;
double r7524207 = r7524205 + r7524206;
double r7524208 = r7524195 / r7524207;
double r7524209 = NdChar;
double r7524210 = EDonor;
double r7524211 = Ec;
double r7524212 = r7524210 - r7524211;
double r7524213 = r7524197 + r7524212;
double r7524214 = r7524213 + r7524200;
double r7524215 = r7524214 / r7524203;
double r7524216 = exp(r7524215);
double r7524217 = r7524216 + r7524206;
double r7524218 = r7524209 / r7524217;
double r7524219 = r7524208 + r7524218;
return r7524219;
}



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