\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{1}{\sqrt[3]{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} \cdot e^{\log \left(\sqrt[3]{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}}\right)}} \cdot \frac{NdChar}{\sqrt[3]{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 r346637 = NdChar;
double r346638 = 1.0;
double r346639 = Ec;
double r346640 = Vef;
double r346641 = r346639 - r346640;
double r346642 = EDonor;
double r346643 = r346641 - r346642;
double r346644 = mu;
double r346645 = r346643 - r346644;
double r346646 = -r346645;
double r346647 = KbT;
double r346648 = r346646 / r346647;
double r346649 = exp(r346648);
double r346650 = r346638 + r346649;
double r346651 = r346637 / r346650;
double r346652 = NaChar;
double r346653 = Ev;
double r346654 = r346653 + r346640;
double r346655 = EAccept;
double r346656 = r346654 + r346655;
double r346657 = -r346644;
double r346658 = r346656 + r346657;
double r346659 = r346658 / r346647;
double r346660 = exp(r346659);
double r346661 = r346638 + r346660;
double r346662 = r346652 / r346661;
double r346663 = r346651 + r346662;
return r346663;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r346664 = 1.0;
double r346665 = 1.0;
double r346666 = Ec;
double r346667 = Vef;
double r346668 = r346666 - r346667;
double r346669 = EDonor;
double r346670 = r346668 - r346669;
double r346671 = mu;
double r346672 = r346670 - r346671;
double r346673 = -r346672;
double r346674 = KbT;
double r346675 = r346673 / r346674;
double r346676 = exp(r346675);
double r346677 = r346665 + r346676;
double r346678 = cbrt(r346677);
double r346679 = log(r346678);
double r346680 = exp(r346679);
double r346681 = r346678 * r346680;
double r346682 = r346664 / r346681;
double r346683 = NdChar;
double r346684 = r346683 / r346678;
double r346685 = r346682 * r346684;
double r346686 = NaChar;
double r346687 = Ev;
double r346688 = r346687 + r346667;
double r346689 = EAccept;
double r346690 = r346688 + r346689;
double r346691 = -r346671;
double r346692 = r346690 + r346691;
double r346693 = r346692 / r346674;
double r346694 = exp(r346693);
double r346695 = r346665 + r346694;
double r346696 = r346686 / r346695;
double r346697 = r346685 + r346696;
return r346697;
}



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 add-cube-cbrt0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
rmApplied add-exp-log0.2
Final simplification0.2
herbie shell --seed 2019350 +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))))))