\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^{\mathsf{log1p}\left(e^{\frac{EDonor - \left(\left(Ec - Vef\right) - mu\right)}{KbT}}\right)}} + \frac{NaChar}{e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r2066987 = NdChar;
double r2066988 = 1.0;
double r2066989 = Ec;
double r2066990 = Vef;
double r2066991 = r2066989 - r2066990;
double r2066992 = EDonor;
double r2066993 = r2066991 - r2066992;
double r2066994 = mu;
double r2066995 = r2066993 - r2066994;
double r2066996 = -r2066995;
double r2066997 = KbT;
double r2066998 = r2066996 / r2066997;
double r2066999 = exp(r2066998);
double r2067000 = r2066988 + r2066999;
double r2067001 = r2066987 / r2067000;
double r2067002 = NaChar;
double r2067003 = Ev;
double r2067004 = r2067003 + r2066990;
double r2067005 = EAccept;
double r2067006 = r2067004 + r2067005;
double r2067007 = -r2066994;
double r2067008 = r2067006 + r2067007;
double r2067009 = r2067008 / r2066997;
double r2067010 = exp(r2067009);
double r2067011 = r2066988 + r2067010;
double r2067012 = r2067002 / r2067011;
double r2067013 = r2067001 + r2067012;
return r2067013;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r2067014 = NdChar;
double r2067015 = EDonor;
double r2067016 = Ec;
double r2067017 = Vef;
double r2067018 = r2067016 - r2067017;
double r2067019 = mu;
double r2067020 = r2067018 - r2067019;
double r2067021 = r2067015 - r2067020;
double r2067022 = KbT;
double r2067023 = r2067021 / r2067022;
double r2067024 = exp(r2067023);
double r2067025 = log1p(r2067024);
double r2067026 = exp(r2067025);
double r2067027 = r2067014 / r2067026;
double r2067028 = NaChar;
double r2067029 = r2067017 - r2067019;
double r2067030 = Ev;
double r2067031 = r2067029 + r2067030;
double r2067032 = EAccept;
double r2067033 = r2067031 + r2067032;
double r2067034 = r2067033 / r2067022;
double r2067035 = exp(r2067034);
double r2067036 = 1.0;
double r2067037 = r2067035 + r2067036;
double r2067038 = r2067028 / r2067037;
double r2067039 = r2067027 + r2067038;
return r2067039;
}



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-exp-log0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019153 +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))))))