Average Error: 0.0 → 0.0
Time: 2.2m
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{NaChar}{1 + (e^{\log_* (1 + e^{\sqrt[3]{\frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT} \cdot \left(\frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT} \cdot \frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT}\right)}})} - 1)^*} + \frac{NdChar}{1 + e^{-\frac{Ec - \left(EDonor + \left(mu + Vef\right)\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{NaChar}{1 + (e^{\log_* (1 + e^{\sqrt[3]{\frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT} \cdot \left(\frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT} \cdot \frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT}\right)}})} - 1)^*} + \frac{NdChar}{1 + e^{-\frac{Ec - \left(EDonor + \left(mu + Vef\right)\right)}{KbT}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r77447168 = NdChar;
        double r77447169 = 1.0;
        double r77447170 = Ec;
        double r77447171 = Vef;
        double r77447172 = r77447170 - r77447171;
        double r77447173 = EDonor;
        double r77447174 = r77447172 - r77447173;
        double r77447175 = mu;
        double r77447176 = r77447174 - r77447175;
        double r77447177 = -r77447176;
        double r77447178 = KbT;
        double r77447179 = r77447177 / r77447178;
        double r77447180 = exp(r77447179);
        double r77447181 = r77447169 + r77447180;
        double r77447182 = r77447168 / r77447181;
        double r77447183 = NaChar;
        double r77447184 = Ev;
        double r77447185 = r77447184 + r77447171;
        double r77447186 = EAccept;
        double r77447187 = r77447185 + r77447186;
        double r77447188 = -r77447175;
        double r77447189 = r77447187 + r77447188;
        double r77447190 = r77447189 / r77447178;
        double r77447191 = exp(r77447190);
        double r77447192 = r77447169 + r77447191;
        double r77447193 = r77447183 / r77447192;
        double r77447194 = r77447182 + r77447193;
        return r77447194;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r77447195 = NaChar;
        double r77447196 = 1.0;
        double r77447197 = Ev;
        double r77447198 = Vef;
        double r77447199 = r77447197 + r77447198;
        double r77447200 = mu;
        double r77447201 = r77447199 - r77447200;
        double r77447202 = EAccept;
        double r77447203 = r77447201 + r77447202;
        double r77447204 = KbT;
        double r77447205 = r77447203 / r77447204;
        double r77447206 = r77447205 * r77447205;
        double r77447207 = r77447205 * r77447206;
        double r77447208 = cbrt(r77447207);
        double r77447209 = exp(r77447208);
        double r77447210 = log1p(r77447209);
        double r77447211 = expm1(r77447210);
        double r77447212 = r77447196 + r77447211;
        double r77447213 = r77447195 / r77447212;
        double r77447214 = NdChar;
        double r77447215 = Ec;
        double r77447216 = EDonor;
        double r77447217 = r77447200 + r77447198;
        double r77447218 = r77447216 + r77447217;
        double r77447219 = r77447215 - r77447218;
        double r77447220 = r77447219 / r77447204;
        double r77447221 = -r77447220;
        double r77447222 = exp(r77447221);
        double r77447223 = r77447196 + r77447222;
        double r77447224 = r77447214 / r77447223;
        double r77447225 = r77447213 + r77447224;
        return r77447225;
}

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{NaChar}{1 + e^{\frac{EAccept + \left(\left(Ev + Vef\right) - mu\right)}{KbT}}} + \frac{NdChar}{e^{\frac{-\left(Ec - \left(\left(Vef + mu\right) + EDonor\right)\right)}{KbT}} + 1}}\]
  3. Using strategy rm
  4. Applied expm1-log1p-u0.0

    \[\leadsto \frac{NaChar}{1 + \color{blue}{(e^{\log_* (1 + e^{\frac{EAccept + \left(\left(Ev + Vef\right) - mu\right)}{KbT}})} - 1)^*}} + \frac{NdChar}{e^{\frac{-\left(Ec - \left(\left(Vef + mu\right) + EDonor\right)\right)}{KbT}} + 1}\]
  5. Using strategy rm
  6. Applied add-cbrt-cube0.0

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

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

Reproduce

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