Average Error: 0.0 → 0.0
Time: 4.5s
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 r200478 = NdChar;
        double r200479 = 1.0;
        double r200480 = Ec;
        double r200481 = Vef;
        double r200482 = r200480 - r200481;
        double r200483 = EDonor;
        double r200484 = r200482 - r200483;
        double r200485 = mu;
        double r200486 = r200484 - r200485;
        double r200487 = -r200486;
        double r200488 = KbT;
        double r200489 = r200487 / r200488;
        double r200490 = exp(r200489);
        double r200491 = r200479 + r200490;
        double r200492 = r200478 / r200491;
        double r200493 = NaChar;
        double r200494 = Ev;
        double r200495 = r200494 + r200481;
        double r200496 = EAccept;
        double r200497 = r200495 + r200496;
        double r200498 = -r200485;
        double r200499 = r200497 + r200498;
        double r200500 = r200499 / r200488;
        double r200501 = exp(r200500);
        double r200502 = r200479 + r200501;
        double r200503 = r200493 / r200502;
        double r200504 = r200492 + r200503;
        return r200504;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r200505 = NdChar;
        double r200506 = 1.0;
        double r200507 = Ec;
        double r200508 = Vef;
        double r200509 = r200507 - r200508;
        double r200510 = EDonor;
        double r200511 = r200509 - r200510;
        double r200512 = mu;
        double r200513 = r200511 - r200512;
        double r200514 = -r200513;
        double r200515 = KbT;
        double r200516 = r200514 / r200515;
        double r200517 = exp(r200516);
        double r200518 = r200506 + r200517;
        double r200519 = r200505 / r200518;
        double r200520 = NaChar;
        double r200521 = Ev;
        double r200522 = r200521 + r200508;
        double r200523 = EAccept;
        double r200524 = r200522 + r200523;
        double r200525 = -r200512;
        double r200526 = r200524 + r200525;
        double r200527 = r200526 / r200515;
        double r200528 = exp(r200527);
        double r200529 = r200506 + r200528;
        double r200530 = r200520 / r200529;
        double r200531 = r200519 + r200530;
        return r200531;
}

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