\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 r4366017 = NdChar;
double r4366018 = 1.0;
double r4366019 = Ec;
double r4366020 = Vef;
double r4366021 = r4366019 - r4366020;
double r4366022 = EDonor;
double r4366023 = r4366021 - r4366022;
double r4366024 = mu;
double r4366025 = r4366023 - r4366024;
double r4366026 = -r4366025;
double r4366027 = KbT;
double r4366028 = r4366026 / r4366027;
double r4366029 = exp(r4366028);
double r4366030 = r4366018 + r4366029;
double r4366031 = r4366017 / r4366030;
double r4366032 = NaChar;
double r4366033 = Ev;
double r4366034 = r4366033 + r4366020;
double r4366035 = EAccept;
double r4366036 = r4366034 + r4366035;
double r4366037 = -r4366024;
double r4366038 = r4366036 + r4366037;
double r4366039 = r4366038 / r4366027;
double r4366040 = exp(r4366039);
double r4366041 = r4366018 + r4366040;
double r4366042 = r4366032 / r4366041;
double r4366043 = r4366031 + r4366042;
return r4366043;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r4366044 = NaChar;
double r4366045 = Vef;
double r4366046 = mu;
double r4366047 = r4366045 - r4366046;
double r4366048 = Ev;
double r4366049 = EAccept;
double r4366050 = r4366048 + r4366049;
double r4366051 = r4366047 + r4366050;
double r4366052 = KbT;
double r4366053 = r4366051 / r4366052;
double r4366054 = exp(r4366053);
double r4366055 = 1.0;
double r4366056 = r4366054 + r4366055;
double r4366057 = r4366044 / r4366056;
double r4366058 = NdChar;
double r4366059 = Ec;
double r4366060 = r4366059 - r4366045;
double r4366061 = EDonor;
double r4366062 = r4366060 - r4366061;
double r4366063 = r4366046 - r4366062;
double r4366064 = r4366063 / r4366052;
double r4366065 = exp(r4366064);
double r4366066 = r4366065 + r4366055;
double r4366067 = r4366058 / r4366066;
double r4366068 = r4366057 + r4366067;
return r4366068;
}



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