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 r334203 = NdChar;
        double r334204 = 1.0;
        double r334205 = Ec;
        double r334206 = Vef;
        double r334207 = r334205 - r334206;
        double r334208 = EDonor;
        double r334209 = r334207 - r334208;
        double r334210 = mu;
        double r334211 = r334209 - r334210;
        double r334212 = -r334211;
        double r334213 = KbT;
        double r334214 = r334212 / r334213;
        double r334215 = exp(r334214);
        double r334216 = r334204 + r334215;
        double r334217 = r334203 / r334216;
        double r334218 = NaChar;
        double r334219 = Ev;
        double r334220 = r334219 + r334206;
        double r334221 = EAccept;
        double r334222 = r334220 + r334221;
        double r334223 = -r334210;
        double r334224 = r334222 + r334223;
        double r334225 = r334224 / r334213;
        double r334226 = exp(r334225);
        double r334227 = r334204 + r334226;
        double r334228 = r334218 / r334227;
        double r334229 = r334217 + r334228;
        return r334229;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r334230 = NdChar;
        double r334231 = 1.0;
        double r334232 = Ec;
        double r334233 = Vef;
        double r334234 = r334232 - r334233;
        double r334235 = EDonor;
        double r334236 = r334234 - r334235;
        double r334237 = mu;
        double r334238 = r334236 - r334237;
        double r334239 = -r334238;
        double r334240 = KbT;
        double r334241 = r334239 / r334240;
        double r334242 = exp(r334241);
        double r334243 = r334231 + r334242;
        double r334244 = r334230 / r334243;
        double r334245 = NaChar;
        double r334246 = Ev;
        double r334247 = r334246 + r334233;
        double r334248 = EAccept;
        double r334249 = r334247 + r334248;
        double r334250 = -r334237;
        double r334251 = r334249 + r334250;
        double r334252 = r334251 / r334240;
        double r334253 = exp(r334252);
        double r334254 = r334231 + r334253;
        double r334255 = r334245 / r334254;
        double r334256 = r334244 + r334255;
        return r334256;
}

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