\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 + {\left(\frac{1}{e}\right)}^{\left(\frac{\left(\left(Ec - Vef\right) - EDonor\right) - mu}{KbT}\right)}} + \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 r296643 = NdChar;
double r296644 = 1.0;
double r296645 = Ec;
double r296646 = Vef;
double r296647 = r296645 - r296646;
double r296648 = EDonor;
double r296649 = r296647 - r296648;
double r296650 = mu;
double r296651 = r296649 - r296650;
double r296652 = -r296651;
double r296653 = KbT;
double r296654 = r296652 / r296653;
double r296655 = exp(r296654);
double r296656 = r296644 + r296655;
double r296657 = r296643 / r296656;
double r296658 = NaChar;
double r296659 = Ev;
double r296660 = r296659 + r296646;
double r296661 = EAccept;
double r296662 = r296660 + r296661;
double r296663 = -r296650;
double r296664 = r296662 + r296663;
double r296665 = r296664 / r296653;
double r296666 = exp(r296665);
double r296667 = r296644 + r296666;
double r296668 = r296658 / r296667;
double r296669 = r296657 + r296668;
return r296669;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r296670 = NdChar;
double r296671 = 1.0;
double r296672 = 1.0;
double r296673 = exp(1.0);
double r296674 = r296672 / r296673;
double r296675 = Ec;
double r296676 = Vef;
double r296677 = r296675 - r296676;
double r296678 = EDonor;
double r296679 = r296677 - r296678;
double r296680 = mu;
double r296681 = r296679 - r296680;
double r296682 = KbT;
double r296683 = r296681 / r296682;
double r296684 = pow(r296674, r296683);
double r296685 = r296671 + r296684;
double r296686 = r296670 / r296685;
double r296687 = NaChar;
double r296688 = Ev;
double r296689 = r296688 + r296676;
double r296690 = EAccept;
double r296691 = r296689 + r296690;
double r296692 = -r296680;
double r296693 = r296691 + r296692;
double r296694 = r296693 / r296682;
double r296695 = exp(r296694);
double r296696 = r296671 + r296695;
double r296697 = r296687 / r296696;
double r296698 = r296686 + r296697;
return r296698;
}



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 *-un-lft-identity0.0
Applied neg-mul-10.0
Applied times-frac0.0
Applied exp-prod0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020027 +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))))))