\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}{e^{\frac{\left(EDonor - Ec\right) + \left(mu + Vef\right)}{KbT}} + 1} + \frac{NaChar}{e^{\frac{\left(EAccept - mu\right) + \left(Ev + Vef\right)}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7580571 = NdChar;
double r7580572 = 1.0;
double r7580573 = Ec;
double r7580574 = Vef;
double r7580575 = r7580573 - r7580574;
double r7580576 = EDonor;
double r7580577 = r7580575 - r7580576;
double r7580578 = mu;
double r7580579 = r7580577 - r7580578;
double r7580580 = -r7580579;
double r7580581 = KbT;
double r7580582 = r7580580 / r7580581;
double r7580583 = exp(r7580582);
double r7580584 = r7580572 + r7580583;
double r7580585 = r7580571 / r7580584;
double r7580586 = NaChar;
double r7580587 = Ev;
double r7580588 = r7580587 + r7580574;
double r7580589 = EAccept;
double r7580590 = r7580588 + r7580589;
double r7580591 = -r7580578;
double r7580592 = r7580590 + r7580591;
double r7580593 = r7580592 / r7580581;
double r7580594 = exp(r7580593);
double r7580595 = r7580572 + r7580594;
double r7580596 = r7580586 / r7580595;
double r7580597 = r7580585 + r7580596;
return r7580597;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7580598 = NdChar;
double r7580599 = EDonor;
double r7580600 = Ec;
double r7580601 = r7580599 - r7580600;
double r7580602 = mu;
double r7580603 = Vef;
double r7580604 = r7580602 + r7580603;
double r7580605 = r7580601 + r7580604;
double r7580606 = KbT;
double r7580607 = r7580605 / r7580606;
double r7580608 = exp(r7580607);
double r7580609 = 1.0;
double r7580610 = r7580608 + r7580609;
double r7580611 = r7580598 / r7580610;
double r7580612 = NaChar;
double r7580613 = EAccept;
double r7580614 = r7580613 - r7580602;
double r7580615 = Ev;
double r7580616 = r7580615 + r7580603;
double r7580617 = r7580614 + r7580616;
double r7580618 = r7580617 / r7580606;
double r7580619 = exp(r7580618);
double r7580620 = r7580619 + r7580609;
double r7580621 = r7580612 / r7580620;
double r7580622 = r7580611 + r7580621;
return r7580622;
}



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
Simplified0.0
Final simplification0.0
herbie shell --seed 2019200 +o rules:numerics
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
(+ (/ NdChar (+ 1.0 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1.0 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))