Average Error: 0.0 → 0.0
Time: 20.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}{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}} + 1} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{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}{e^{\frac{mu + \left(EDonor - \left(Ec - Vef\right)\right)}{KbT}} + 1} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) - mu}{KbT}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r254072 = NdChar;
        double r254073 = 1.0;
        double r254074 = Ec;
        double r254075 = Vef;
        double r254076 = r254074 - r254075;
        double r254077 = EDonor;
        double r254078 = r254076 - r254077;
        double r254079 = mu;
        double r254080 = r254078 - r254079;
        double r254081 = -r254080;
        double r254082 = KbT;
        double r254083 = r254081 / r254082;
        double r254084 = exp(r254083);
        double r254085 = r254073 + r254084;
        double r254086 = r254072 / r254085;
        double r254087 = NaChar;
        double r254088 = Ev;
        double r254089 = r254088 + r254075;
        double r254090 = EAccept;
        double r254091 = r254089 + r254090;
        double r254092 = -r254079;
        double r254093 = r254091 + r254092;
        double r254094 = r254093 / r254082;
        double r254095 = exp(r254094);
        double r254096 = r254073 + r254095;
        double r254097 = r254087 / r254096;
        double r254098 = r254086 + r254097;
        return r254098;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r254099 = NdChar;
        double r254100 = mu;
        double r254101 = EDonor;
        double r254102 = Ec;
        double r254103 = Vef;
        double r254104 = r254102 - r254103;
        double r254105 = r254101 - r254104;
        double r254106 = r254100 + r254105;
        double r254107 = KbT;
        double r254108 = r254106 / r254107;
        double r254109 = exp(r254108);
        double r254110 = 1.0;
        double r254111 = r254109 + r254110;
        double r254112 = r254099 / r254111;
        double r254113 = NaChar;
        double r254114 = Ev;
        double r254115 = r254114 + r254103;
        double r254116 = EAccept;
        double r254117 = r254115 + r254116;
        double r254118 = r254117 - r254100;
        double r254119 = r254118 / r254107;
        double r254120 = exp(r254119);
        double r254121 = r254110 + r254120;
        double r254122 = r254113 / r254121;
        double r254123 = r254112 + r254122;
        return r254123;
}

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. Simplified0.0

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

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

Reproduce

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