Average Error: 0.0 → 0.0
Time: 13.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}}}\]
\[NdChar \cdot \frac{1}{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}}}
NdChar \cdot \frac{1}{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 r156908 = NdChar;
        double r156909 = 1.0;
        double r156910 = Ec;
        double r156911 = Vef;
        double r156912 = r156910 - r156911;
        double r156913 = EDonor;
        double r156914 = r156912 - r156913;
        double r156915 = mu;
        double r156916 = r156914 - r156915;
        double r156917 = -r156916;
        double r156918 = KbT;
        double r156919 = r156917 / r156918;
        double r156920 = exp(r156919);
        double r156921 = r156909 + r156920;
        double r156922 = r156908 / r156921;
        double r156923 = NaChar;
        double r156924 = Ev;
        double r156925 = r156924 + r156911;
        double r156926 = EAccept;
        double r156927 = r156925 + r156926;
        double r156928 = -r156915;
        double r156929 = r156927 + r156928;
        double r156930 = r156929 / r156918;
        double r156931 = exp(r156930);
        double r156932 = r156909 + r156931;
        double r156933 = r156923 / r156932;
        double r156934 = r156922 + r156933;
        return r156934;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r156935 = NdChar;
        double r156936 = 1.0;
        double r156937 = 1.0;
        double r156938 = Ec;
        double r156939 = Vef;
        double r156940 = r156938 - r156939;
        double r156941 = EDonor;
        double r156942 = r156940 - r156941;
        double r156943 = mu;
        double r156944 = r156942 - r156943;
        double r156945 = -r156944;
        double r156946 = KbT;
        double r156947 = r156945 / r156946;
        double r156948 = exp(r156947);
        double r156949 = r156937 + r156948;
        double r156950 = r156936 / r156949;
        double r156951 = r156935 * r156950;
        double r156952 = NaChar;
        double r156953 = Ev;
        double r156954 = r156953 + r156939;
        double r156955 = EAccept;
        double r156956 = r156954 + r156955;
        double r156957 = -r156943;
        double r156958 = r156956 + r156957;
        double r156959 = r156958 / r156946;
        double r156960 = exp(r156959);
        double r156961 = r156937 + r156960;
        double r156962 = r156952 / r156961;
        double r156963 = r156951 + r156962;
        return r156963;
}

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 div-inv0.0

    \[\leadsto \color{blue}{NdChar \cdot \frac{1}{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}}}\]
  4. Final simplification0.0

    \[\leadsto NdChar \cdot \frac{1}{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 2020046 +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))))))