Average Error: 0.0 → 0.0
Time: 46.2s
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 r572 = NdChar;
        double r573 = 1.0;
        double r574 = Ec;
        double r575 = Vef;
        double r576 = r574 - r575;
        double r577 = EDonor;
        double r578 = r576 - r577;
        double r579 = mu;
        double r580 = r578 - r579;
        double r581 = -r580;
        double r582 = KbT;
        double r583 = r581 / r582;
        double r584 = exp(r583);
        double r585 = r573 + r584;
        double r586 = r572 / r585;
        double r587 = NaChar;
        double r588 = Ev;
        double r589 = r588 + r575;
        double r590 = EAccept;
        double r591 = r589 + r590;
        double r592 = -r579;
        double r593 = r591 + r592;
        double r594 = r593 / r582;
        double r595 = exp(r594);
        double r596 = r573 + r595;
        double r597 = r587 / r596;
        double r598 = r586 + r597;
        return r598;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r599 = NdChar;
        double r600 = 1.0;
        double r601 = Ec;
        double r602 = Vef;
        double r603 = r601 - r602;
        double r604 = EDonor;
        double r605 = r603 - r604;
        double r606 = mu;
        double r607 = r605 - r606;
        double r608 = -r607;
        double r609 = KbT;
        double r610 = r608 / r609;
        double r611 = exp(r610);
        double r612 = r600 + r611;
        double r613 = r599 / r612;
        double r614 = NaChar;
        double r615 = Ev;
        double r616 = r615 + r602;
        double r617 = EAccept;
        double r618 = r616 + r617;
        double r619 = -r606;
        double r620 = r618 + r619;
        double r621 = r620 / r609;
        double r622 = exp(r621);
        double r623 = r600 + r622;
        double r624 = r614 / r623;
        double r625 = r613 + r624;
        return r625;
}

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