\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(\left(Vef + Ev\right) - mu\right) + EAccept}{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 r260020 = NdChar;
double r260021 = 1.0;
double r260022 = Ec;
double r260023 = Vef;
double r260024 = r260022 - r260023;
double r260025 = EDonor;
double r260026 = r260024 - r260025;
double r260027 = mu;
double r260028 = r260026 - r260027;
double r260029 = -r260028;
double r260030 = KbT;
double r260031 = r260029 / r260030;
double r260032 = exp(r260031);
double r260033 = r260021 + r260032;
double r260034 = r260020 / r260033;
double r260035 = NaChar;
double r260036 = Ev;
double r260037 = r260036 + r260023;
double r260038 = EAccept;
double r260039 = r260037 + r260038;
double r260040 = -r260027;
double r260041 = r260039 + r260040;
double r260042 = r260041 / r260030;
double r260043 = exp(r260042);
double r260044 = r260021 + r260043;
double r260045 = r260035 / r260044;
double r260046 = r260034 + r260045;
return r260046;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r260047 = NaChar;
double r260048 = Vef;
double r260049 = Ev;
double r260050 = r260048 + r260049;
double r260051 = mu;
double r260052 = r260050 - r260051;
double r260053 = EAccept;
double r260054 = r260052 + r260053;
double r260055 = KbT;
double r260056 = r260054 / r260055;
double r260057 = exp(r260056);
double r260058 = 1.0;
double r260059 = r260057 + r260058;
double r260060 = r260047 / r260059;
double r260061 = NdChar;
double r260062 = Ec;
double r260063 = r260062 - r260048;
double r260064 = EDonor;
double r260065 = r260063 - r260064;
double r260066 = r260051 - r260065;
double r260067 = r260066 / r260055;
double r260068 = exp(r260067);
double r260069 = r260068 + r260058;
double r260070 = r260061 / r260069;
double r260071 = r260060 + r260070;
return r260071;
}



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 2019194
(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))))))