Average Error: 0.0 → 0.0
Time: 21.3s
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 + 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 + 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 r175894 = NdChar;
        double r175895 = 1.0;
        double r175896 = Ec;
        double r175897 = Vef;
        double r175898 = r175896 - r175897;
        double r175899 = EDonor;
        double r175900 = r175898 - r175899;
        double r175901 = mu;
        double r175902 = r175900 - r175901;
        double r175903 = -r175902;
        double r175904 = KbT;
        double r175905 = r175903 / r175904;
        double r175906 = exp(r175905);
        double r175907 = r175895 + r175906;
        double r175908 = r175894 / r175907;
        double r175909 = NaChar;
        double r175910 = Ev;
        double r175911 = r175910 + r175897;
        double r175912 = EAccept;
        double r175913 = r175911 + r175912;
        double r175914 = -r175901;
        double r175915 = r175913 + r175914;
        double r175916 = r175915 / r175904;
        double r175917 = exp(r175916);
        double r175918 = r175895 + r175917;
        double r175919 = r175909 / r175918;
        double r175920 = r175908 + r175919;
        return r175920;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r175921 = NdChar;
        double r175922 = 1.0;
        double r175923 = Ec;
        double r175924 = Vef;
        double r175925 = r175923 - r175924;
        double r175926 = EDonor;
        double r175927 = r175925 - r175926;
        double r175928 = mu;
        double r175929 = r175927 - r175928;
        double r175930 = -r175929;
        double r175931 = KbT;
        double r175932 = r175930 / r175931;
        double r175933 = exp(r175932);
        double r175934 = r175922 + r175933;
        double r175935 = r175921 / r175934;
        double r175936 = NaChar;
        double r175937 = Ev;
        double r175938 = r175937 + r175924;
        double r175939 = EAccept;
        double r175940 = r175938 + r175939;
        double r175941 = -r175928;
        double r175942 = r175940 + r175941;
        double r175943 = r175942 / r175931;
        double r175944 = exp(r175943);
        double r175945 = r175922 + r175944;
        double r175946 = r175936 / r175945;
        double r175947 = r175935 + r175946;
        return r175947;
}

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. Final simplification0.0

    \[\leadsto \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}}}\]

Reproduce

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