\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{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 r297633 = NdChar;
double r297634 = 1.0;
double r297635 = Ec;
double r297636 = Vef;
double r297637 = r297635 - r297636;
double r297638 = EDonor;
double r297639 = r297637 - r297638;
double r297640 = mu;
double r297641 = r297639 - r297640;
double r297642 = -r297641;
double r297643 = KbT;
double r297644 = r297642 / r297643;
double r297645 = exp(r297644);
double r297646 = r297634 + r297645;
double r297647 = r297633 / r297646;
double r297648 = NaChar;
double r297649 = Ev;
double r297650 = r297649 + r297636;
double r297651 = EAccept;
double r297652 = r297650 + r297651;
double r297653 = -r297640;
double r297654 = r297652 + r297653;
double r297655 = r297654 / r297643;
double r297656 = exp(r297655);
double r297657 = r297634 + r297656;
double r297658 = r297648 / r297657;
double r297659 = r297647 + r297658;
return r297659;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r297660 = NdChar;
double r297661 = 1.0;
double r297662 = Ec;
double r297663 = Vef;
double r297664 = r297662 - r297663;
double r297665 = EDonor;
double r297666 = r297664 - r297665;
double r297667 = mu;
double r297668 = r297666 - r297667;
double r297669 = -r297668;
double r297670 = KbT;
double r297671 = r297669 / r297670;
double r297672 = exp(r297671);
double r297673 = r297661 + r297672;
double r297674 = r297660 / r297673;
double r297675 = NaChar;
double r297676 = Ev;
double r297677 = r297676 + r297663;
double r297678 = EAccept;
double r297679 = r297677 + r297678;
double r297680 = -r297667;
double r297681 = r297679 + r297680;
double r297682 = r297681 / r297670;
double r297683 = exp(r297682);
double r297684 = r297661 + r297683;
double r297685 = r297675 / r297684;
double r297686 = r297674 + r297685;
return r297686;
}



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