\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^{\mathsf{log1p}\left(e^{\frac{EDonor - \left(\left(Ec - Vef\right) - mu\right)}{KbT}}\right)}} + \frac{NaChar}{e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r4037101 = NdChar;
double r4037102 = 1.0;
double r4037103 = Ec;
double r4037104 = Vef;
double r4037105 = r4037103 - r4037104;
double r4037106 = EDonor;
double r4037107 = r4037105 - r4037106;
double r4037108 = mu;
double r4037109 = r4037107 - r4037108;
double r4037110 = -r4037109;
double r4037111 = KbT;
double r4037112 = r4037110 / r4037111;
double r4037113 = exp(r4037112);
double r4037114 = r4037102 + r4037113;
double r4037115 = r4037101 / r4037114;
double r4037116 = NaChar;
double r4037117 = Ev;
double r4037118 = r4037117 + r4037104;
double r4037119 = EAccept;
double r4037120 = r4037118 + r4037119;
double r4037121 = -r4037108;
double r4037122 = r4037120 + r4037121;
double r4037123 = r4037122 / r4037111;
double r4037124 = exp(r4037123);
double r4037125 = r4037102 + r4037124;
double r4037126 = r4037116 / r4037125;
double r4037127 = r4037115 + r4037126;
return r4037127;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r4037128 = NdChar;
double r4037129 = EDonor;
double r4037130 = Ec;
double r4037131 = Vef;
double r4037132 = r4037130 - r4037131;
double r4037133 = mu;
double r4037134 = r4037132 - r4037133;
double r4037135 = r4037129 - r4037134;
double r4037136 = KbT;
double r4037137 = r4037135 / r4037136;
double r4037138 = exp(r4037137);
double r4037139 = log1p(r4037138);
double r4037140 = exp(r4037139);
double r4037141 = r4037128 / r4037140;
double r4037142 = NaChar;
double r4037143 = r4037131 - r4037133;
double r4037144 = Ev;
double r4037145 = r4037143 + r4037144;
double r4037146 = EAccept;
double r4037147 = r4037145 + r4037146;
double r4037148 = r4037147 / r4037136;
double r4037149 = exp(r4037148);
double r4037150 = 1.0;
double r4037151 = r4037149 + r4037150;
double r4037152 = r4037142 / r4037151;
double r4037153 = r4037141 + r4037152;
return r4037153;
}



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-exp-log0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019153 +o rules:numerics
(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))))))