\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(\sqrt[3]{e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} \cdot \sqrt[3]{e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}}\right) \cdot \sqrt[3]{e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}}} + \frac{NaChar}{1 + \sqrt{e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}} \cdot \sqrt{e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}}}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r353622 = NdChar;
double r353623 = 1.0;
double r353624 = Ec;
double r353625 = Vef;
double r353626 = r353624 - r353625;
double r353627 = EDonor;
double r353628 = r353626 - r353627;
double r353629 = mu;
double r353630 = r353628 - r353629;
double r353631 = -r353630;
double r353632 = KbT;
double r353633 = r353631 / r353632;
double r353634 = exp(r353633);
double r353635 = r353623 + r353634;
double r353636 = r353622 / r353635;
double r353637 = NaChar;
double r353638 = Ev;
double r353639 = r353638 + r353625;
double r353640 = EAccept;
double r353641 = r353639 + r353640;
double r353642 = -r353629;
double r353643 = r353641 + r353642;
double r353644 = r353643 / r353632;
double r353645 = exp(r353644);
double r353646 = r353623 + r353645;
double r353647 = r353637 / r353646;
double r353648 = r353636 + r353647;
return r353648;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r353649 = NdChar;
double r353650 = 1.0;
double r353651 = Ec;
double r353652 = Vef;
double r353653 = r353651 - r353652;
double r353654 = EDonor;
double r353655 = r353653 - r353654;
double r353656 = mu;
double r353657 = r353655 - r353656;
double r353658 = -r353657;
double r353659 = KbT;
double r353660 = r353658 / r353659;
double r353661 = exp(r353660);
double r353662 = cbrt(r353661);
double r353663 = r353662 * r353662;
double r353664 = r353663 * r353662;
double r353665 = r353650 + r353664;
double r353666 = r353649 / r353665;
double r353667 = NaChar;
double r353668 = Ev;
double r353669 = r353668 + r353652;
double r353670 = EAccept;
double r353671 = r353669 + r353670;
double r353672 = r353671 - r353656;
double r353673 = r353672 / r353659;
double r353674 = exp(r353673);
double r353675 = sqrt(r353674);
double r353676 = r353675 * r353675;
double r353677 = r353650 + r353676;
double r353678 = r353667 / r353677;
double r353679 = r353666 + r353678;
return r353679;
}



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.0
rmApplied add-sqr-sqrt0.0
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020047 +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))))))