Average Error: 0.0 → 0.0
Time: 9.9s
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 r292839 = NdChar;
        double r292840 = 1.0;
        double r292841 = Ec;
        double r292842 = Vef;
        double r292843 = r292841 - r292842;
        double r292844 = EDonor;
        double r292845 = r292843 - r292844;
        double r292846 = mu;
        double r292847 = r292845 - r292846;
        double r292848 = -r292847;
        double r292849 = KbT;
        double r292850 = r292848 / r292849;
        double r292851 = exp(r292850);
        double r292852 = r292840 + r292851;
        double r292853 = r292839 / r292852;
        double r292854 = NaChar;
        double r292855 = Ev;
        double r292856 = r292855 + r292842;
        double r292857 = EAccept;
        double r292858 = r292856 + r292857;
        double r292859 = -r292846;
        double r292860 = r292858 + r292859;
        double r292861 = r292860 / r292849;
        double r292862 = exp(r292861);
        double r292863 = r292840 + r292862;
        double r292864 = r292854 / r292863;
        double r292865 = r292853 + r292864;
        return r292865;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r292866 = NdChar;
        double r292867 = 1.0;
        double r292868 = Ec;
        double r292869 = Vef;
        double r292870 = r292868 - r292869;
        double r292871 = EDonor;
        double r292872 = r292870 - r292871;
        double r292873 = mu;
        double r292874 = r292872 - r292873;
        double r292875 = -r292874;
        double r292876 = KbT;
        double r292877 = r292875 / r292876;
        double r292878 = exp(r292877);
        double r292879 = r292867 + r292878;
        double r292880 = r292866 / r292879;
        double r292881 = NaChar;
        double r292882 = Ev;
        double r292883 = r292882 + r292869;
        double r292884 = EAccept;
        double r292885 = r292883 + r292884;
        double r292886 = -r292873;
        double r292887 = r292885 + r292886;
        double r292888 = r292887 / r292876;
        double r292889 = exp(r292888);
        double r292890 = r292867 + r292889;
        double r292891 = r292881 / r292890;
        double r292892 = r292880 + r292891;
        return r292892;
}

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 2020001 +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))))))