\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(Vef - mu\right) + \left(Ev + EAccept\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7387982 = NdChar;
double r7387983 = 1.0;
double r7387984 = Ec;
double r7387985 = Vef;
double r7387986 = r7387984 - r7387985;
double r7387987 = EDonor;
double r7387988 = r7387986 - r7387987;
double r7387989 = mu;
double r7387990 = r7387988 - r7387989;
double r7387991 = -r7387990;
double r7387992 = KbT;
double r7387993 = r7387991 / r7387992;
double r7387994 = exp(r7387993);
double r7387995 = r7387983 + r7387994;
double r7387996 = r7387982 / r7387995;
double r7387997 = NaChar;
double r7387998 = Ev;
double r7387999 = r7387998 + r7387985;
double r7388000 = EAccept;
double r7388001 = r7387999 + r7388000;
double r7388002 = -r7387989;
double r7388003 = r7388001 + r7388002;
double r7388004 = r7388003 / r7387992;
double r7388005 = exp(r7388004);
double r7388006 = r7387983 + r7388005;
double r7388007 = r7387997 / r7388006;
double r7388008 = r7387996 + r7388007;
return r7388008;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7388009 = NaChar;
double r7388010 = Vef;
double r7388011 = mu;
double r7388012 = r7388010 - r7388011;
double r7388013 = Ev;
double r7388014 = EAccept;
double r7388015 = r7388013 + r7388014;
double r7388016 = r7388012 + r7388015;
double r7388017 = KbT;
double r7388018 = r7388016 / r7388017;
double r7388019 = exp(r7388018);
double r7388020 = 1.0;
double r7388021 = r7388019 + r7388020;
double r7388022 = r7388009 / r7388021;
double r7388023 = NdChar;
double r7388024 = Ec;
double r7388025 = r7388024 - r7388010;
double r7388026 = EDonor;
double r7388027 = r7388025 - r7388026;
double r7388028 = r7388011 - r7388027;
double r7388029 = r7388028 / r7388017;
double r7388030 = exp(r7388029);
double r7388031 = r7388030 + r7388020;
double r7388032 = r7388023 / r7388031;
double r7388033 = r7388022 + r7388032;
return r7388033;
}



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 2019143 +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))))))