Average Error: 0.0 → 0.0
Time: 27.0s
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}{\sqrt{\mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{1}{\frac{KbT}{\left(Vef - mu\right) + \left(Ev + EAccept\right)}}}\right)\right)} \cdot \sqrt{e^{\frac{\left(Vef - mu\right) + \left(Ev + EAccept\right)}{KbT}}} + 1} + \frac{NdChar}{1 + e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\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}{\sqrt{\mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{1}{\frac{KbT}{\left(Vef - mu\right) + \left(Ev + EAccept\right)}}}\right)\right)} \cdot \sqrt{e^{\frac{\left(Vef - mu\right) + \left(Ev + EAccept\right)}{KbT}}} + 1} + \frac{NdChar}{1 + e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r4558074 = NdChar;
        double r4558075 = 1.0;
        double r4558076 = Ec;
        double r4558077 = Vef;
        double r4558078 = r4558076 - r4558077;
        double r4558079 = EDonor;
        double r4558080 = r4558078 - r4558079;
        double r4558081 = mu;
        double r4558082 = r4558080 - r4558081;
        double r4558083 = -r4558082;
        double r4558084 = KbT;
        double r4558085 = r4558083 / r4558084;
        double r4558086 = exp(r4558085);
        double r4558087 = r4558075 + r4558086;
        double r4558088 = r4558074 / r4558087;
        double r4558089 = NaChar;
        double r4558090 = Ev;
        double r4558091 = r4558090 + r4558077;
        double r4558092 = EAccept;
        double r4558093 = r4558091 + r4558092;
        double r4558094 = -r4558081;
        double r4558095 = r4558093 + r4558094;
        double r4558096 = r4558095 / r4558084;
        double r4558097 = exp(r4558096);
        double r4558098 = r4558075 + r4558097;
        double r4558099 = r4558089 / r4558098;
        double r4558100 = r4558088 + r4558099;
        return r4558100;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r4558101 = NaChar;
        double r4558102 = 1.0;
        double r4558103 = KbT;
        double r4558104 = Vef;
        double r4558105 = mu;
        double r4558106 = r4558104 - r4558105;
        double r4558107 = Ev;
        double r4558108 = EAccept;
        double r4558109 = r4558107 + r4558108;
        double r4558110 = r4558106 + r4558109;
        double r4558111 = r4558103 / r4558110;
        double r4558112 = r4558102 / r4558111;
        double r4558113 = exp(r4558112);
        double r4558114 = log1p(r4558113);
        double r4558115 = expm1(r4558114);
        double r4558116 = sqrt(r4558115);
        double r4558117 = r4558110 / r4558103;
        double r4558118 = exp(r4558117);
        double r4558119 = sqrt(r4558118);
        double r4558120 = r4558116 * r4558119;
        double r4558121 = r4558120 + r4558102;
        double r4558122 = r4558101 / r4558121;
        double r4558123 = NdChar;
        double r4558124 = Ec;
        double r4558125 = r4558124 - r4558104;
        double r4558126 = EDonor;
        double r4558127 = r4558125 - r4558126;
        double r4558128 = r4558105 - r4558127;
        double r4558129 = r4558128 / r4558103;
        double r4558130 = exp(r4558129);
        double r4558131 = r4558102 + r4558130;
        double r4558132 = r4558123 / r4558131;
        double r4558133 = r4558122 + r4558132;
        return r4558133;
}

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

    \[\leadsto \frac{NaChar}{1 + \color{blue}{\sqrt{e^{\frac{\left(EAccept + Ev\right) + \left(Vef - mu\right)}{KbT}}} \cdot \sqrt{e^{\frac{\left(EAccept + Ev\right) + \left(Vef - mu\right)}{KbT}}}}} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}\]
  5. Using strategy rm
  6. Applied clear-num0.0

    \[\leadsto \frac{NaChar}{1 + \sqrt{e^{\frac{\left(EAccept + Ev\right) + \left(Vef - mu\right)}{KbT}}} \cdot \sqrt{e^{\color{blue}{\frac{1}{\frac{KbT}{\left(EAccept + Ev\right) + \left(Vef - mu\right)}}}}}} + \frac{NdChar}{e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}} + 1}\]
  7. Using strategy rm
  8. Applied expm1-log1p-u0.0

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

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

Reproduce

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