\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(\left(e^{\frac{EDonor - \left(Ec - \left(mu + Vef\right)\right)}{KbT}}\right)\right)}} + \frac{NaChar}{e^{\frac{\left(\left(Ev + Vef\right) - mu\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 r87132805 = NdChar;
double r87132806 = 1.0;
double r87132807 = Ec;
double r87132808 = Vef;
double r87132809 = r87132807 - r87132808;
double r87132810 = EDonor;
double r87132811 = r87132809 - r87132810;
double r87132812 = mu;
double r87132813 = r87132811 - r87132812;
double r87132814 = -r87132813;
double r87132815 = KbT;
double r87132816 = r87132814 / r87132815;
double r87132817 = exp(r87132816);
double r87132818 = r87132806 + r87132817;
double r87132819 = r87132805 / r87132818;
double r87132820 = NaChar;
double r87132821 = Ev;
double r87132822 = r87132821 + r87132808;
double r87132823 = EAccept;
double r87132824 = r87132822 + r87132823;
double r87132825 = -r87132812;
double r87132826 = r87132824 + r87132825;
double r87132827 = r87132826 / r87132815;
double r87132828 = exp(r87132827);
double r87132829 = r87132806 + r87132828;
double r87132830 = r87132820 / r87132829;
double r87132831 = r87132819 + r87132830;
return r87132831;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r87132832 = NdChar;
double r87132833 = EDonor;
double r87132834 = Ec;
double r87132835 = mu;
double r87132836 = Vef;
double r87132837 = r87132835 + r87132836;
double r87132838 = r87132834 - r87132837;
double r87132839 = r87132833 - r87132838;
double r87132840 = KbT;
double r87132841 = r87132839 / r87132840;
double r87132842 = exp(r87132841);
double r87132843 = log1p(r87132842);
double r87132844 = exp(r87132843);
double r87132845 = r87132832 / r87132844;
double r87132846 = NaChar;
double r87132847 = Ev;
double r87132848 = r87132847 + r87132836;
double r87132849 = r87132848 - r87132835;
double r87132850 = EAccept;
double r87132851 = r87132849 + r87132850;
double r87132852 = r87132851 / r87132840;
double r87132853 = exp(r87132852);
double r87132854 = 1.0;
double r87132855 = r87132853 + r87132854;
double r87132856 = r87132846 / r87132855;
double r87132857 = r87132845 + r87132856;
return r87132857;
}



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 2019125 +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))))))