\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{1}{\frac{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}}{NaChar}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r220624 = NdChar;
double r220625 = 1.0;
double r220626 = Ec;
double r220627 = Vef;
double r220628 = r220626 - r220627;
double r220629 = EDonor;
double r220630 = r220628 - r220629;
double r220631 = mu;
double r220632 = r220630 - r220631;
double r220633 = -r220632;
double r220634 = KbT;
double r220635 = r220633 / r220634;
double r220636 = exp(r220635);
double r220637 = r220625 + r220636;
double r220638 = r220624 / r220637;
double r220639 = NaChar;
double r220640 = Ev;
double r220641 = r220640 + r220627;
double r220642 = EAccept;
double r220643 = r220641 + r220642;
double r220644 = -r220631;
double r220645 = r220643 + r220644;
double r220646 = r220645 / r220634;
double r220647 = exp(r220646);
double r220648 = r220625 + r220647;
double r220649 = r220639 / r220648;
double r220650 = r220638 + r220649;
return r220650;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r220651 = NdChar;
double r220652 = 1.0;
double r220653 = Ec;
double r220654 = Vef;
double r220655 = r220653 - r220654;
double r220656 = EDonor;
double r220657 = r220655 - r220656;
double r220658 = mu;
double r220659 = r220657 - r220658;
double r220660 = -r220659;
double r220661 = KbT;
double r220662 = r220660 / r220661;
double r220663 = exp(r220662);
double r220664 = r220652 + r220663;
double r220665 = r220651 / r220664;
double r220666 = 1.0;
double r220667 = Ev;
double r220668 = r220667 + r220654;
double r220669 = EAccept;
double r220670 = r220668 + r220669;
double r220671 = r220670 - r220658;
double r220672 = r220671 / r220661;
double r220673 = exp(r220672);
double r220674 = r220652 + r220673;
double r220675 = NaChar;
double r220676 = r220674 / r220675;
double r220677 = r220666 / r220676;
double r220678 = r220665 + r220677;
return r220678;
}



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 clear-num0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019326
(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))))))