Average Error: 0.0 → 0.0
Time: 9.8s
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 + \mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}\right)\right)}\]
\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 + \mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}\right)\right)}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r268021 = NdChar;
        double r268022 = 1.0;
        double r268023 = Ec;
        double r268024 = Vef;
        double r268025 = r268023 - r268024;
        double r268026 = EDonor;
        double r268027 = r268025 - r268026;
        double r268028 = mu;
        double r268029 = r268027 - r268028;
        double r268030 = -r268029;
        double r268031 = KbT;
        double r268032 = r268030 / r268031;
        double r268033 = exp(r268032);
        double r268034 = r268022 + r268033;
        double r268035 = r268021 / r268034;
        double r268036 = NaChar;
        double r268037 = Ev;
        double r268038 = r268037 + r268024;
        double r268039 = EAccept;
        double r268040 = r268038 + r268039;
        double r268041 = -r268028;
        double r268042 = r268040 + r268041;
        double r268043 = r268042 / r268031;
        double r268044 = exp(r268043);
        double r268045 = r268022 + r268044;
        double r268046 = r268036 / r268045;
        double r268047 = r268035 + r268046;
        return r268047;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r268048 = NdChar;
        double r268049 = 1.0;
        double r268050 = Ec;
        double r268051 = Vef;
        double r268052 = r268050 - r268051;
        double r268053 = EDonor;
        double r268054 = r268052 - r268053;
        double r268055 = mu;
        double r268056 = r268054 - r268055;
        double r268057 = -r268056;
        double r268058 = KbT;
        double r268059 = r268057 / r268058;
        double r268060 = exp(r268059);
        double r268061 = r268049 + r268060;
        double r268062 = r268048 / r268061;
        double r268063 = NaChar;
        double r268064 = Ev;
        double r268065 = r268064 + r268051;
        double r268066 = EAccept;
        double r268067 = r268065 + r268066;
        double r268068 = -r268055;
        double r268069 = r268067 + r268068;
        double r268070 = r268069 / r268058;
        double r268071 = exp(r268070);
        double r268072 = log1p(r268071);
        double r268073 = expm1(r268072);
        double r268074 = r268049 + r268073;
        double r268075 = r268063 / r268074;
        double r268076 = r268062 + r268075;
        return r268076;
}

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. Using strategy rm
  3. Applied expm1-log1p-u0.0

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

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

Reproduce

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