\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^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}} + 1} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r153071 = NdChar;
double r153072 = 1.0;
double r153073 = Ec;
double r153074 = Vef;
double r153075 = r153073 - r153074;
double r153076 = EDonor;
double r153077 = r153075 - r153076;
double r153078 = mu;
double r153079 = r153077 - r153078;
double r153080 = -r153079;
double r153081 = KbT;
double r153082 = r153080 / r153081;
double r153083 = exp(r153082);
double r153084 = r153072 + r153083;
double r153085 = r153071 / r153084;
double r153086 = NaChar;
double r153087 = Ev;
double r153088 = r153087 + r153074;
double r153089 = EAccept;
double r153090 = r153088 + r153089;
double r153091 = -r153078;
double r153092 = r153090 + r153091;
double r153093 = r153092 / r153081;
double r153094 = exp(r153093);
double r153095 = r153072 + r153094;
double r153096 = r153086 / r153095;
double r153097 = r153085 + r153096;
return r153097;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r153098 = NdChar;
double r153099 = mu;
double r153100 = EDonor;
double r153101 = Ec;
double r153102 = Vef;
double r153103 = r153101 - r153102;
double r153104 = r153100 - r153103;
double r153105 = r153099 + r153104;
double r153106 = KbT;
double r153107 = r153105 / r153106;
double r153108 = exp(r153107);
double r153109 = 1.0;
double r153110 = r153108 + r153109;
double r153111 = r153098 / r153110;
double r153112 = NaChar;
double r153113 = Ev;
double r153114 = r153113 + r153102;
double r153115 = EAccept;
double r153116 = r153114 + r153115;
double r153117 = r153116 - r153099;
double r153118 = r153117 / r153106;
double r153119 = exp(r153118);
double r153120 = r153109 + r153119;
double r153121 = r153112 / r153120;
double r153122 = r153111 + r153121;
return r153122;
}



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 2019325 +o rules:numerics
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
:precision binary64
(+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))