\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 + \sqrt{e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} \cdot \sqrt{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}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r290141 = NdChar;
double r290142 = 1.0;
double r290143 = Ec;
double r290144 = Vef;
double r290145 = r290143 - r290144;
double r290146 = EDonor;
double r290147 = r290145 - r290146;
double r290148 = mu;
double r290149 = r290147 - r290148;
double r290150 = -r290149;
double r290151 = KbT;
double r290152 = r290150 / r290151;
double r290153 = exp(r290152);
double r290154 = r290142 + r290153;
double r290155 = r290141 / r290154;
double r290156 = NaChar;
double r290157 = Ev;
double r290158 = r290157 + r290144;
double r290159 = EAccept;
double r290160 = r290158 + r290159;
double r290161 = -r290148;
double r290162 = r290160 + r290161;
double r290163 = r290162 / r290151;
double r290164 = exp(r290163);
double r290165 = r290142 + r290164;
double r290166 = r290156 / r290165;
double r290167 = r290155 + r290166;
return r290167;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r290168 = NdChar;
double r290169 = 1.0;
double r290170 = Ec;
double r290171 = Vef;
double r290172 = r290170 - r290171;
double r290173 = EDonor;
double r290174 = r290172 - r290173;
double r290175 = mu;
double r290176 = r290174 - r290175;
double r290177 = -r290176;
double r290178 = KbT;
double r290179 = r290177 / r290178;
double r290180 = exp(r290179);
double r290181 = sqrt(r290180);
double r290182 = r290181 * r290181;
double r290183 = r290169 + r290182;
double r290184 = r290168 / r290183;
double r290185 = NaChar;
double r290186 = Ev;
double r290187 = r290186 + r290171;
double r290188 = EAccept;
double r290189 = r290187 + r290188;
double r290190 = -r290175;
double r290191 = r290189 + r290190;
double r290192 = r290191 / r290178;
double r290193 = exp(r290192);
double r290194 = r290169 + r290193;
double r290195 = r290185 / r290194;
double r290196 = r290184 + r290195;
return r290196;
}



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 add-sqr-sqrt0.0
Final simplification0.0
herbie shell --seed 2019347 +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))))))