\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}{e^{\frac{\left(EAccept + \left(Vef + Ev\right)\right) - mu}{KbT}} + 1} + \frac{NdChar}{e^{\frac{EDonor - \left(\left(Ec - mu\right) - Vef\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7187708 = NdChar;
double r7187709 = 1.0;
double r7187710 = Ec;
double r7187711 = Vef;
double r7187712 = r7187710 - r7187711;
double r7187713 = EDonor;
double r7187714 = r7187712 - r7187713;
double r7187715 = mu;
double r7187716 = r7187714 - r7187715;
double r7187717 = -r7187716;
double r7187718 = KbT;
double r7187719 = r7187717 / r7187718;
double r7187720 = exp(r7187719);
double r7187721 = r7187709 + r7187720;
double r7187722 = r7187708 / r7187721;
double r7187723 = NaChar;
double r7187724 = Ev;
double r7187725 = r7187724 + r7187711;
double r7187726 = EAccept;
double r7187727 = r7187725 + r7187726;
double r7187728 = -r7187715;
double r7187729 = r7187727 + r7187728;
double r7187730 = r7187729 / r7187718;
double r7187731 = exp(r7187730);
double r7187732 = r7187709 + r7187731;
double r7187733 = r7187723 / r7187732;
double r7187734 = r7187722 + r7187733;
return r7187734;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7187735 = NaChar;
double r7187736 = EAccept;
double r7187737 = Vef;
double r7187738 = Ev;
double r7187739 = r7187737 + r7187738;
double r7187740 = r7187736 + r7187739;
double r7187741 = mu;
double r7187742 = r7187740 - r7187741;
double r7187743 = KbT;
double r7187744 = r7187742 / r7187743;
double r7187745 = exp(r7187744);
double r7187746 = 1.0;
double r7187747 = r7187745 + r7187746;
double r7187748 = r7187735 / r7187747;
double r7187749 = NdChar;
double r7187750 = EDonor;
double r7187751 = Ec;
double r7187752 = r7187751 - r7187741;
double r7187753 = r7187752 - r7187737;
double r7187754 = r7187750 - r7187753;
double r7187755 = r7187754 / r7187743;
double r7187756 = exp(r7187755);
double r7187757 = r7187756 + r7187746;
double r7187758 = r7187749 / r7187757;
double r7187759 = r7187748 + r7187758;
return r7187759;
}



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