Average Error: 0.0 → 0.0
Time: 36.2s
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 + \mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}\right)\right)} + \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 + \mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}\right)\right)} + \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 r131810 = NdChar;
        double r131811 = 1.0;
        double r131812 = Ec;
        double r131813 = Vef;
        double r131814 = r131812 - r131813;
        double r131815 = EDonor;
        double r131816 = r131814 - r131815;
        double r131817 = mu;
        double r131818 = r131816 - r131817;
        double r131819 = -r131818;
        double r131820 = KbT;
        double r131821 = r131819 / r131820;
        double r131822 = exp(r131821);
        double r131823 = r131811 + r131822;
        double r131824 = r131810 / r131823;
        double r131825 = NaChar;
        double r131826 = Ev;
        double r131827 = r131826 + r131813;
        double r131828 = EAccept;
        double r131829 = r131827 + r131828;
        double r131830 = -r131817;
        double r131831 = r131829 + r131830;
        double r131832 = r131831 / r131820;
        double r131833 = exp(r131832);
        double r131834 = r131811 + r131833;
        double r131835 = r131825 / r131834;
        double r131836 = r131824 + r131835;
        return r131836;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r131837 = NdChar;
        double r131838 = 1.0;
        double r131839 = Ec;
        double r131840 = Vef;
        double r131841 = r131839 - r131840;
        double r131842 = EDonor;
        double r131843 = r131841 - r131842;
        double r131844 = mu;
        double r131845 = r131843 - r131844;
        double r131846 = -r131845;
        double r131847 = KbT;
        double r131848 = r131846 / r131847;
        double r131849 = exp(r131848);
        double r131850 = log1p(r131849);
        double r131851 = expm1(r131850);
        double r131852 = r131838 + r131851;
        double r131853 = r131837 / r131852;
        double r131854 = NaChar;
        double r131855 = Ev;
        double r131856 = r131855 + r131840;
        double r131857 = EAccept;
        double r131858 = r131856 + r131857;
        double r131859 = -r131844;
        double r131860 = r131858 + r131859;
        double r131861 = r131860 / r131847;
        double r131862 = exp(r131861);
        double r131863 = r131838 + r131862;
        double r131864 = r131854 / r131863;
        double r131865 = r131853 + r131864;
        return r131865;
}

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 expm1-log1p-u0.0

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

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

Reproduce

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