Average Error: 0.0 → 0.0
Time: 4.4s
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 + \mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}\right)\right)}\]
\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 + \mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}\right)\right)}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r193801 = NdChar;
        double r193802 = 1.0;
        double r193803 = Ec;
        double r193804 = Vef;
        double r193805 = r193803 - r193804;
        double r193806 = EDonor;
        double r193807 = r193805 - r193806;
        double r193808 = mu;
        double r193809 = r193807 - r193808;
        double r193810 = -r193809;
        double r193811 = KbT;
        double r193812 = r193810 / r193811;
        double r193813 = exp(r193812);
        double r193814 = r193802 + r193813;
        double r193815 = r193801 / r193814;
        double r193816 = NaChar;
        double r193817 = Ev;
        double r193818 = r193817 + r193804;
        double r193819 = EAccept;
        double r193820 = r193818 + r193819;
        double r193821 = -r193808;
        double r193822 = r193820 + r193821;
        double r193823 = r193822 / r193811;
        double r193824 = exp(r193823);
        double r193825 = r193802 + r193824;
        double r193826 = r193816 / r193825;
        double r193827 = r193815 + r193826;
        return r193827;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r193828 = NdChar;
        double r193829 = 1.0;
        double r193830 = Ec;
        double r193831 = Vef;
        double r193832 = r193830 - r193831;
        double r193833 = EDonor;
        double r193834 = r193832 - r193833;
        double r193835 = mu;
        double r193836 = r193834 - r193835;
        double r193837 = -r193836;
        double r193838 = KbT;
        double r193839 = r193837 / r193838;
        double r193840 = exp(r193839);
        double r193841 = r193829 + r193840;
        double r193842 = r193828 / r193841;
        double r193843 = NaChar;
        double r193844 = Ev;
        double r193845 = r193844 + r193831;
        double r193846 = EAccept;
        double r193847 = r193845 + r193846;
        double r193848 = -r193835;
        double r193849 = r193847 + r193848;
        double r193850 = r193849 / r193838;
        double r193851 = exp(r193850);
        double r193852 = log1p(r193851);
        double r193853 = expm1(r193852);
        double r193854 = r193829 + r193853;
        double r193855 = r193843 / r193854;
        double r193856 = r193842 + r193855;
        return r193856;
}

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 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1 + \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}\right)\right)}}\]
  4. Final simplification0.0

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

Reproduce

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