Average Error: 0.0 → 0.0
Time: 31.4s
Precision: 64
\[\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}{\mathsf{fma}\left(\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, 1\right)} + \frac{NaChar}{e^{\frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT}} + 1}\]
\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}{\mathsf{fma}\left(\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, 1\right)} + \frac{NaChar}{e^{\frac{\left(\left(Ev + Vef\right) - mu\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 r5576468 = NdChar;
        double r5576469 = 1.0;
        double r5576470 = Ec;
        double r5576471 = Vef;
        double r5576472 = r5576470 - r5576471;
        double r5576473 = EDonor;
        double r5576474 = r5576472 - r5576473;
        double r5576475 = mu;
        double r5576476 = r5576474 - r5576475;
        double r5576477 = -r5576476;
        double r5576478 = KbT;
        double r5576479 = r5576477 / r5576478;
        double r5576480 = exp(r5576479);
        double r5576481 = r5576469 + r5576480;
        double r5576482 = r5576468 / r5576481;
        double r5576483 = NaChar;
        double r5576484 = Ev;
        double r5576485 = r5576484 + r5576471;
        double r5576486 = EAccept;
        double r5576487 = r5576485 + r5576486;
        double r5576488 = -r5576475;
        double r5576489 = r5576487 + r5576488;
        double r5576490 = r5576489 / r5576478;
        double r5576491 = exp(r5576490);
        double r5576492 = r5576469 + r5576491;
        double r5576493 = r5576483 / r5576492;
        double r5576494 = r5576482 + r5576493;
        return r5576494;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r5576495 = NdChar;
        double r5576496 = mu;
        double r5576497 = Ec;
        double r5576498 = Vef;
        double r5576499 = r5576497 - r5576498;
        double r5576500 = EDonor;
        double r5576501 = r5576499 - r5576500;
        double r5576502 = r5576496 - r5576501;
        double r5576503 = KbT;
        double r5576504 = r5576502 / r5576503;
        double r5576505 = exp(r5576504);
        double r5576506 = sqrt(r5576505);
        double r5576507 = 1.0;
        double r5576508 = fma(r5576506, r5576506, r5576507);
        double r5576509 = r5576495 / r5576508;
        double r5576510 = NaChar;
        double r5576511 = Ev;
        double r5576512 = r5576511 + r5576498;
        double r5576513 = r5576512 - r5576496;
        double r5576514 = EAccept;
        double r5576515 = r5576513 + r5576514;
        double r5576516 = r5576515 / r5576503;
        double r5576517 = exp(r5576516);
        double r5576518 = r5576517 + r5576507;
        double r5576519 = r5576510 / r5576518;
        double r5576520 = r5576509 + r5576519;
        return r5576520;
}

Error

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

Derivation

  1. Initial program 0.0

    \[\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}}}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(\left(Ev + Vef\right) - mu\right)}{KbT}}} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.0

    \[\leadsto \frac{NaChar}{1 + e^{\frac{EAccept + \left(\left(Ev + Vef\right) - mu\right)}{KbT}}} + \frac{NdChar}{\color{blue}{\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}} \cdot \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}} + 1}\]
  5. Applied fma-def0.0

    \[\leadsto \frac{NaChar}{1 + e^{\frac{EAccept + \left(\left(Ev + Vef\right) - mu\right)}{KbT}}} + \frac{NdChar}{\color{blue}{\mathsf{fma}\left(\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, 1\right)}}\]
  6. Final simplification0.0

    \[\leadsto \frac{NdChar}{\mathsf{fma}\left(\sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, \sqrt{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}, 1\right)} + \frac{NaChar}{e^{\frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT}} + 1}\]

Reproduce

herbie shell --seed 2019134 +o rules:numerics
(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))))))