\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{\frac{1}{\sqrt{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}} + 1}}}{\sqrt{\sqrt{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}} + 1}}} \cdot \frac{NdChar}{\sqrt{\sqrt{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}} + 1}}} + \frac{NaChar}{e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}} + 1}double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7548636 = NdChar;
double r7548637 = 1.0;
double r7548638 = Ec;
double r7548639 = Vef;
double r7548640 = r7548638 - r7548639;
double r7548641 = EDonor;
double r7548642 = r7548640 - r7548641;
double r7548643 = mu;
double r7548644 = r7548642 - r7548643;
double r7548645 = -r7548644;
double r7548646 = KbT;
double r7548647 = r7548645 / r7548646;
double r7548648 = exp(r7548647);
double r7548649 = r7548637 + r7548648;
double r7548650 = r7548636 / r7548649;
double r7548651 = NaChar;
double r7548652 = Ev;
double r7548653 = r7548652 + r7548639;
double r7548654 = EAccept;
double r7548655 = r7548653 + r7548654;
double r7548656 = -r7548643;
double r7548657 = r7548655 + r7548656;
double r7548658 = r7548657 / r7548646;
double r7548659 = exp(r7548658);
double r7548660 = r7548637 + r7548659;
double r7548661 = r7548651 / r7548660;
double r7548662 = r7548650 + r7548661;
return r7548662;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r7548663 = 1.0;
double r7548664 = mu;
double r7548665 = EDonor;
double r7548666 = Ec;
double r7548667 = Vef;
double r7548668 = r7548666 - r7548667;
double r7548669 = r7548665 - r7548668;
double r7548670 = r7548664 + r7548669;
double r7548671 = KbT;
double r7548672 = r7548670 / r7548671;
double r7548673 = exp(r7548672);
double r7548674 = r7548673 + r7548663;
double r7548675 = sqrt(r7548674);
double r7548676 = r7548663 / r7548675;
double r7548677 = sqrt(r7548675);
double r7548678 = r7548676 / r7548677;
double r7548679 = NdChar;
double r7548680 = r7548679 / r7548677;
double r7548681 = r7548678 * r7548680;
double r7548682 = NaChar;
double r7548683 = r7548667 - r7548664;
double r7548684 = Ev;
double r7548685 = r7548683 + r7548684;
double r7548686 = EAccept;
double r7548687 = r7548685 + r7548686;
double r7548688 = r7548687 / r7548671;
double r7548689 = exp(r7548688);
double r7548690 = r7548689 + r7548663;
double r7548691 = r7548682 / r7548690;
double r7548692 = r7548681 + r7548691;
return r7548692;
}



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
rmApplied add-sqr-sqrt0.2
Applied associate-/r*0.1
rmApplied add-sqr-sqrt0.0
Applied div-inv0.0
Applied times-frac0.0
Final simplification0.0
herbie shell --seed 2019139
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
:name "Bulmash initializePoisson"
(+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))