\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{Vef + \left(\left(Ev - mu\right) + EAccept\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{EDonor - \left(Ec - \left(Vef + mu\right)\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6043034 = NdChar;
double r6043035 = 1.0;
double r6043036 = Ec;
double r6043037 = Vef;
double r6043038 = r6043036 - r6043037;
double r6043039 = EDonor;
double r6043040 = r6043038 - r6043039;
double r6043041 = mu;
double r6043042 = r6043040 - r6043041;
double r6043043 = -r6043042;
double r6043044 = KbT;
double r6043045 = r6043043 / r6043044;
double r6043046 = exp(r6043045);
double r6043047 = r6043035 + r6043046;
double r6043048 = r6043034 / r6043047;
double r6043049 = NaChar;
double r6043050 = Ev;
double r6043051 = r6043050 + r6043037;
double r6043052 = EAccept;
double r6043053 = r6043051 + r6043052;
double r6043054 = -r6043041;
double r6043055 = r6043053 + r6043054;
double r6043056 = r6043055 / r6043044;
double r6043057 = exp(r6043056);
double r6043058 = r6043035 + r6043057;
double r6043059 = r6043049 / r6043058;
double r6043060 = r6043048 + r6043059;
return r6043060;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6043061 = NaChar;
double r6043062 = Vef;
double r6043063 = Ev;
double r6043064 = mu;
double r6043065 = r6043063 - r6043064;
double r6043066 = EAccept;
double r6043067 = r6043065 + r6043066;
double r6043068 = r6043062 + r6043067;
double r6043069 = KbT;
double r6043070 = r6043068 / r6043069;
double r6043071 = exp(r6043070);
double r6043072 = 1.0;
double r6043073 = r6043071 + r6043072;
double r6043074 = r6043061 / r6043073;
double r6043075 = NdChar;
double r6043076 = EDonor;
double r6043077 = Ec;
double r6043078 = r6043062 + r6043064;
double r6043079 = r6043077 - r6043078;
double r6043080 = r6043076 - r6043079;
double r6043081 = r6043080 / r6043069;
double r6043082 = exp(r6043081);
double r6043083 = r6043082 + r6043072;
double r6043084 = r6043075 / r6043083;
double r6043085 = r6043074 + r6043084;
return r6043085;
}



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