\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}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{1}{\frac{e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}} + 1}{NaChar}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r182132 = NdChar;
double r182133 = 1.0;
double r182134 = Ec;
double r182135 = Vef;
double r182136 = r182134 - r182135;
double r182137 = EDonor;
double r182138 = r182136 - r182137;
double r182139 = mu;
double r182140 = r182138 - r182139;
double r182141 = -r182140;
double r182142 = KbT;
double r182143 = r182141 / r182142;
double r182144 = exp(r182143);
double r182145 = r182133 + r182144;
double r182146 = r182132 / r182145;
double r182147 = NaChar;
double r182148 = Ev;
double r182149 = r182148 + r182135;
double r182150 = EAccept;
double r182151 = r182149 + r182150;
double r182152 = -r182139;
double r182153 = r182151 + r182152;
double r182154 = r182153 / r182142;
double r182155 = exp(r182154);
double r182156 = r182133 + r182155;
double r182157 = r182147 / r182156;
double r182158 = r182146 + r182157;
return r182158;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r182159 = NdChar;
double r182160 = 1.0;
double r182161 = Ec;
double r182162 = Vef;
double r182163 = r182161 - r182162;
double r182164 = EDonor;
double r182165 = r182163 - r182164;
double r182166 = mu;
double r182167 = r182165 - r182166;
double r182168 = -r182167;
double r182169 = KbT;
double r182170 = r182168 / r182169;
double r182171 = exp(r182170);
double r182172 = r182160 + r182171;
double r182173 = r182159 / r182172;
double r182174 = 1.0;
double r182175 = Ev;
double r182176 = r182175 + r182162;
double r182177 = EAccept;
double r182178 = r182176 + r182177;
double r182179 = r182178 - r182166;
double r182180 = r182179 / r182169;
double r182181 = exp(r182180);
double r182182 = r182181 + r182160;
double r182183 = NaChar;
double r182184 = r182182 / r182183;
double r182185 = r182174 / r182184;
double r182186 = r182173 + r182185;
return r182186;
}



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
rmApplied clear-num0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019326 +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))))))