\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{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 r341129 = NdChar;
double r341130 = 1.0;
double r341131 = Ec;
double r341132 = Vef;
double r341133 = r341131 - r341132;
double r341134 = EDonor;
double r341135 = r341133 - r341134;
double r341136 = mu;
double r341137 = r341135 - r341136;
double r341138 = -r341137;
double r341139 = KbT;
double r341140 = r341138 / r341139;
double r341141 = exp(r341140);
double r341142 = r341130 + r341141;
double r341143 = r341129 / r341142;
double r341144 = NaChar;
double r341145 = Ev;
double r341146 = r341145 + r341132;
double r341147 = EAccept;
double r341148 = r341146 + r341147;
double r341149 = -r341136;
double r341150 = r341148 + r341149;
double r341151 = r341150 / r341139;
double r341152 = exp(r341151);
double r341153 = r341130 + r341152;
double r341154 = r341144 / r341153;
double r341155 = r341143 + r341154;
return r341155;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r341156 = NdChar;
double r341157 = 1.0;
double r341158 = Ec;
double r341159 = Vef;
double r341160 = r341158 - r341159;
double r341161 = EDonor;
double r341162 = r341160 - r341161;
double r341163 = mu;
double r341164 = r341162 - r341163;
double r341165 = -r341164;
double r341166 = KbT;
double r341167 = r341165 / r341166;
double r341168 = exp(r341167);
double r341169 = r341157 + r341168;
double r341170 = r341156 / r341169;
double r341171 = NaChar;
double r341172 = Ev;
double r341173 = r341172 + r341159;
double r341174 = EAccept;
double r341175 = r341173 + r341174;
double r341176 = -r341163;
double r341177 = r341175 + r341176;
double r341178 = r341177 / r341166;
double r341179 = exp(r341178);
double r341180 = r341157 + r341179;
double r341181 = r341171 / r341180;
double r341182 = r341170 + r341181;
return r341182;
}



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
Final simplification0.0
herbie shell --seed 2020065 +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))))))