Average Error: 0.0 → 0.0
Time: 3.6s
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 r224835 = NdChar;
        double r224836 = 1.0;
        double r224837 = Ec;
        double r224838 = Vef;
        double r224839 = r224837 - r224838;
        double r224840 = EDonor;
        double r224841 = r224839 - r224840;
        double r224842 = mu;
        double r224843 = r224841 - r224842;
        double r224844 = -r224843;
        double r224845 = KbT;
        double r224846 = r224844 / r224845;
        double r224847 = exp(r224846);
        double r224848 = r224836 + r224847;
        double r224849 = r224835 / r224848;
        double r224850 = NaChar;
        double r224851 = Ev;
        double r224852 = r224851 + r224838;
        double r224853 = EAccept;
        double r224854 = r224852 + r224853;
        double r224855 = -r224842;
        double r224856 = r224854 + r224855;
        double r224857 = r224856 / r224845;
        double r224858 = exp(r224857);
        double r224859 = r224836 + r224858;
        double r224860 = r224850 / r224859;
        double r224861 = r224849 + r224860;
        return r224861;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r224862 = NdChar;
        double r224863 = 1.0;
        double r224864 = Ec;
        double r224865 = Vef;
        double r224866 = r224864 - r224865;
        double r224867 = EDonor;
        double r224868 = r224866 - r224867;
        double r224869 = mu;
        double r224870 = r224868 - r224869;
        double r224871 = -r224870;
        double r224872 = KbT;
        double r224873 = r224871 / r224872;
        double r224874 = exp(r224873);
        double r224875 = r224863 + r224874;
        double r224876 = r224862 / r224875;
        double r224877 = NaChar;
        double r224878 = Ev;
        double r224879 = r224878 + r224865;
        double r224880 = EAccept;
        double r224881 = r224879 + r224880;
        double r224882 = -r224869;
        double r224883 = r224881 + r224882;
        double r224884 = r224883 / r224872;
        double r224885 = exp(r224884);
        double r224886 = r224863 + r224885;
        double r224887 = r224877 / r224886;
        double r224888 = r224876 + r224887;
        return r224888;
}

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