\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}{\sqrt{e^{\frac{Vef + \left(\left(Ev - mu\right) + EAccept\right)}{KbT}}} \cdot \sqrt{e^{\frac{Vef + \left(\left(Ev - mu\right) + EAccept\right)}{KbT}}} + 1} + \frac{NdChar}{1 + e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r3083167 = NdChar;
double r3083168 = 1.0;
double r3083169 = Ec;
double r3083170 = Vef;
double r3083171 = r3083169 - r3083170;
double r3083172 = EDonor;
double r3083173 = r3083171 - r3083172;
double r3083174 = mu;
double r3083175 = r3083173 - r3083174;
double r3083176 = -r3083175;
double r3083177 = KbT;
double r3083178 = r3083176 / r3083177;
double r3083179 = exp(r3083178);
double r3083180 = r3083168 + r3083179;
double r3083181 = r3083167 / r3083180;
double r3083182 = NaChar;
double r3083183 = Ev;
double r3083184 = r3083183 + r3083170;
double r3083185 = EAccept;
double r3083186 = r3083184 + r3083185;
double r3083187 = -r3083174;
double r3083188 = r3083186 + r3083187;
double r3083189 = r3083188 / r3083177;
double r3083190 = exp(r3083189);
double r3083191 = r3083168 + r3083190;
double r3083192 = r3083182 / r3083191;
double r3083193 = r3083181 + r3083192;
return r3083193;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r3083194 = NaChar;
double r3083195 = Vef;
double r3083196 = Ev;
double r3083197 = mu;
double r3083198 = r3083196 - r3083197;
double r3083199 = EAccept;
double r3083200 = r3083198 + r3083199;
double r3083201 = r3083195 + r3083200;
double r3083202 = KbT;
double r3083203 = r3083201 / r3083202;
double r3083204 = exp(r3083203);
double r3083205 = sqrt(r3083204);
double r3083206 = r3083205 * r3083205;
double r3083207 = 1.0;
double r3083208 = r3083206 + r3083207;
double r3083209 = r3083194 / r3083208;
double r3083210 = NdChar;
double r3083211 = Ec;
double r3083212 = r3083211 - r3083195;
double r3083213 = EDonor;
double r3083214 = r3083212 - r3083213;
double r3083215 = r3083197 - r3083214;
double r3083216 = r3083215 / r3083202;
double r3083217 = exp(r3083216);
double r3083218 = r3083207 + r3083217;
double r3083219 = r3083210 / r3083218;
double r3083220 = r3083209 + r3083219;
return r3083220;
}



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
rmApplied add-sqr-sqrt0.0
Final simplification0.0
herbie shell --seed 2019152
(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))))))