Average Error: 0.0 → 0.0
Time: 9.7s
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 + 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 + 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 + 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}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r356471 = NdChar;
        double r356472 = 1.0;
        double r356473 = Ec;
        double r356474 = Vef;
        double r356475 = r356473 - r356474;
        double r356476 = EDonor;
        double r356477 = r356475 - r356476;
        double r356478 = mu;
        double r356479 = r356477 - r356478;
        double r356480 = -r356479;
        double r356481 = KbT;
        double r356482 = r356480 / r356481;
        double r356483 = exp(r356482);
        double r356484 = r356472 + r356483;
        double r356485 = r356471 / r356484;
        double r356486 = NaChar;
        double r356487 = Ev;
        double r356488 = r356487 + r356474;
        double r356489 = EAccept;
        double r356490 = r356488 + r356489;
        double r356491 = -r356478;
        double r356492 = r356490 + r356491;
        double r356493 = r356492 / r356481;
        double r356494 = exp(r356493);
        double r356495 = r356472 + r356494;
        double r356496 = r356486 / r356495;
        double r356497 = r356485 + r356496;
        return r356497;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r356498 = NdChar;
        double r356499 = 1.0;
        double r356500 = Ec;
        double r356501 = Vef;
        double r356502 = r356500 - r356501;
        double r356503 = EDonor;
        double r356504 = r356502 - r356503;
        double r356505 = mu;
        double r356506 = r356504 - r356505;
        double r356507 = -r356506;
        double r356508 = KbT;
        double r356509 = r356507 / r356508;
        double r356510 = exp(r356509);
        double r356511 = r356499 + r356510;
        double r356512 = r356498 / r356511;
        double r356513 = NaChar;
        double r356514 = Ev;
        double r356515 = r356514 + r356501;
        double r356516 = EAccept;
        double r356517 = r356515 + r356516;
        double r356518 = -r356505;
        double r356519 = r356517 + r356518;
        double r356520 = r356519 / r356508;
        double r356521 = exp(r356520);
        double r356522 = r356499 + r356521;
        double r356523 = r356513 / r356522;
        double r356524 = r356512 + r356523;
        return r356524;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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. Final simplification0.0

    \[\leadsto \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}}}\]

Reproduce

herbie shell --seed 2020001 +o rules:numerics
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
  :name "Bulmash initializePoisson"
  :precision binary64
  (+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))