Average Error: 0.0 → 0.0
Time: 7.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{NdChar}{1 + \frac{1}{e^{\frac{\left(\left(Ec - Vef\right) - EDonor\right) - mu}{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}}}
\frac{NdChar}{1 + \frac{1}{e^{\frac{\left(\left(Ec - Vef\right) - EDonor\right) - mu}{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 r307850 = NdChar;
        double r307851 = 1.0;
        double r307852 = Ec;
        double r307853 = Vef;
        double r307854 = r307852 - r307853;
        double r307855 = EDonor;
        double r307856 = r307854 - r307855;
        double r307857 = mu;
        double r307858 = r307856 - r307857;
        double r307859 = -r307858;
        double r307860 = KbT;
        double r307861 = r307859 / r307860;
        double r307862 = exp(r307861);
        double r307863 = r307851 + r307862;
        double r307864 = r307850 / r307863;
        double r307865 = NaChar;
        double r307866 = Ev;
        double r307867 = r307866 + r307853;
        double r307868 = EAccept;
        double r307869 = r307867 + r307868;
        double r307870 = -r307857;
        double r307871 = r307869 + r307870;
        double r307872 = r307871 / r307860;
        double r307873 = exp(r307872);
        double r307874 = r307851 + r307873;
        double r307875 = r307865 / r307874;
        double r307876 = r307864 + r307875;
        return r307876;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r307877 = NdChar;
        double r307878 = 1.0;
        double r307879 = 1.0;
        double r307880 = Ec;
        double r307881 = Vef;
        double r307882 = r307880 - r307881;
        double r307883 = EDonor;
        double r307884 = r307882 - r307883;
        double r307885 = mu;
        double r307886 = r307884 - r307885;
        double r307887 = KbT;
        double r307888 = r307886 / r307887;
        double r307889 = exp(r307888);
        double r307890 = r307879 / r307889;
        double r307891 = r307878 + r307890;
        double r307892 = r307877 / r307891;
        double r307893 = NaChar;
        double r307894 = Ev;
        double r307895 = r307894 + r307881;
        double r307896 = EAccept;
        double r307897 = r307895 + r307896;
        double r307898 = -r307885;
        double r307899 = r307897 + r307898;
        double r307900 = r307899 / r307887;
        double r307901 = exp(r307900);
        double r307902 = r307878 + r307901;
        double r307903 = r307893 / r307902;
        double r307904 = r307892 + r307903;
        return r307904;
}

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 distribute-frac-neg0.0

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

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

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

Reproduce

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