\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{NaChar}{e^{\frac{EAccept + \left(\left(Ev - mu\right) + Vef\right)}{KbT}} + 1} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - EDonor\right) - 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 r6721462 = NdChar;
double r6721463 = 1.0;
double r6721464 = Ec;
double r6721465 = Vef;
double r6721466 = r6721464 - r6721465;
double r6721467 = EDonor;
double r6721468 = r6721466 - r6721467;
double r6721469 = mu;
double r6721470 = r6721468 - r6721469;
double r6721471 = -r6721470;
double r6721472 = KbT;
double r6721473 = r6721471 / r6721472;
double r6721474 = exp(r6721473);
double r6721475 = r6721463 + r6721474;
double r6721476 = r6721462 / r6721475;
double r6721477 = NaChar;
double r6721478 = Ev;
double r6721479 = r6721478 + r6721465;
double r6721480 = EAccept;
double r6721481 = r6721479 + r6721480;
double r6721482 = -r6721469;
double r6721483 = r6721481 + r6721482;
double r6721484 = r6721483 / r6721472;
double r6721485 = exp(r6721484);
double r6721486 = r6721463 + r6721485;
double r6721487 = r6721477 / r6721486;
double r6721488 = r6721476 + r6721487;
return r6721488;
}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
double r6721489 = NaChar;
double r6721490 = EAccept;
double r6721491 = Ev;
double r6721492 = mu;
double r6721493 = r6721491 - r6721492;
double r6721494 = Vef;
double r6721495 = r6721493 + r6721494;
double r6721496 = r6721490 + r6721495;
double r6721497 = KbT;
double r6721498 = r6721496 / r6721497;
double r6721499 = exp(r6721498);
double r6721500 = 1.0;
double r6721501 = r6721499 + r6721500;
double r6721502 = r6721489 / r6721501;
double r6721503 = NdChar;
double r6721504 = Ec;
double r6721505 = EDonor;
double r6721506 = r6721504 - r6721505;
double r6721507 = r6721506 - r6721494;
double r6721508 = r6721492 - r6721507;
double r6721509 = r6721508 / r6721497;
double r6721510 = exp(r6721509);
double r6721511 = r6721510 + r6721500;
double r6721512 = r6721503 / r6721511;
double r6721513 = r6721502 + r6721512;
return r6721513;
}



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 2019172 +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))))))