\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{\frac{NdChar}{\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}}}{\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}} + \frac{NaChar}{e^{\frac{\left(Vef - mu\right) + \left(Ev + EAccept\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7225980 = NdChar;
double r7225981 = 1.0;
double r7225982 = Ec;
double r7225983 = Vef;
double r7225984 = r7225982 - r7225983;
double r7225985 = EDonor;
double r7225986 = r7225984 - r7225985;
double r7225987 = mu;
double r7225988 = r7225986 - r7225987;
double r7225989 = -r7225988;
double r7225990 = KbT;
double r7225991 = r7225989 / r7225990;
double r7225992 = exp(r7225991);
double r7225993 = r7225981 + r7225992;
double r7225994 = r7225980 / r7225993;
double r7225995 = NaChar;
double r7225996 = Ev;
double r7225997 = r7225996 + r7225983;
double r7225998 = EAccept;
double r7225999 = r7225997 + r7225998;
double r7226000 = -r7225987;
double r7226001 = r7225999 + r7226000;
double r7226002 = r7226001 / r7225990;
double r7226003 = exp(r7226002);
double r7226004 = r7225981 + r7226003;
double r7226005 = r7225995 / r7226004;
double r7226006 = r7225994 + r7226005;
return r7226006;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7226007 = NdChar;
double r7226008 = mu;
double r7226009 = Ec;
double r7226010 = Vef;
double r7226011 = r7226009 - r7226010;
double r7226012 = EDonor;
double r7226013 = r7226011 - r7226012;
double r7226014 = r7226008 - r7226013;
double r7226015 = KbT;
double r7226016 = r7226014 / r7226015;
double r7226017 = exp(r7226016);
double r7226018 = 1.0;
double r7226019 = r7226017 + r7226018;
double r7226020 = sqrt(r7226019);
double r7226021 = r7226007 / r7226020;
double r7226022 = r7226021 / r7226020;
double r7226023 = NaChar;
double r7226024 = r7226010 - r7226008;
double r7226025 = Ev;
double r7226026 = EAccept;
double r7226027 = r7226025 + r7226026;
double r7226028 = r7226024 + r7226027;
double r7226029 = r7226028 / r7226015;
double r7226030 = exp(r7226029);
double r7226031 = r7226030 + r7226018;
double r7226032 = r7226023 / r7226031;
double r7226033 = r7226022 + r7226032;
return r7226033;
}



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.1
Applied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019142 +o rules:numerics
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
(+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))