Average Error: 0.0 → 0.0
Time: 22.0s
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}{1 + \sqrt[3]{e^{\mathsf{fma}\left(2, \frac{mu + \left(\left(Vef + EDonor\right) - Ec\right)}{KbT}, \frac{mu + \left(\left(Vef + EDonor\right) - Ec\right)}{KbT}\right)}}} + \frac{NaChar}{e^{\frac{\left(Ev + Vef\right) + \left(EAccept - mu\right)}{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}{1 + \sqrt[3]{e^{\mathsf{fma}\left(2, \frac{mu + \left(\left(Vef + EDonor\right) - Ec\right)}{KbT}, \frac{mu + \left(\left(Vef + EDonor\right) - Ec\right)}{KbT}\right)}}} + \frac{NaChar}{e^{\frac{\left(Ev + Vef\right) + \left(EAccept - mu\right)}{KbT}} + 1}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r8294334 = NdChar;
        double r8294335 = 1.0;
        double r8294336 = Ec;
        double r8294337 = Vef;
        double r8294338 = r8294336 - r8294337;
        double r8294339 = EDonor;
        double r8294340 = r8294338 - r8294339;
        double r8294341 = mu;
        double r8294342 = r8294340 - r8294341;
        double r8294343 = -r8294342;
        double r8294344 = KbT;
        double r8294345 = r8294343 / r8294344;
        double r8294346 = exp(r8294345);
        double r8294347 = r8294335 + r8294346;
        double r8294348 = r8294334 / r8294347;
        double r8294349 = NaChar;
        double r8294350 = Ev;
        double r8294351 = r8294350 + r8294337;
        double r8294352 = EAccept;
        double r8294353 = r8294351 + r8294352;
        double r8294354 = -r8294341;
        double r8294355 = r8294353 + r8294354;
        double r8294356 = r8294355 / r8294344;
        double r8294357 = exp(r8294356);
        double r8294358 = r8294335 + r8294357;
        double r8294359 = r8294349 / r8294358;
        double r8294360 = r8294348 + r8294359;
        return r8294360;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r8294361 = NdChar;
        double r8294362 = 1.0;
        double r8294363 = 2.0;
        double r8294364 = mu;
        double r8294365 = Vef;
        double r8294366 = EDonor;
        double r8294367 = r8294365 + r8294366;
        double r8294368 = Ec;
        double r8294369 = r8294367 - r8294368;
        double r8294370 = r8294364 + r8294369;
        double r8294371 = KbT;
        double r8294372 = r8294370 / r8294371;
        double r8294373 = fma(r8294363, r8294372, r8294372);
        double r8294374 = exp(r8294373);
        double r8294375 = cbrt(r8294374);
        double r8294376 = r8294362 + r8294375;
        double r8294377 = r8294361 / r8294376;
        double r8294378 = NaChar;
        double r8294379 = Ev;
        double r8294380 = r8294379 + r8294365;
        double r8294381 = EAccept;
        double r8294382 = r8294381 - r8294364;
        double r8294383 = r8294380 + r8294382;
        double r8294384 = r8294383 / r8294371;
        double r8294385 = exp(r8294384);
        double r8294386 = r8294385 + r8294362;
        double r8294387 = r8294378 / r8294386;
        double r8294388 = r8294377 + r8294387;
        return r8294388;
}

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{\left(EAccept - mu\right) + \left(Ev + Vef\right)}{KbT}}} + \frac{NdChar}{e^{\frac{\left(\left(EDonor - Ec\right) + Vef\right) + mu}{KbT}} + 1}}\]
  3. Using strategy rm
  4. Applied add-cbrt-cube0.0

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

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

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

Reproduce

herbie shell --seed 2019170 +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))))))