Average Error: 0.0 → 0.0
Time: 10.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{NaChar}{\mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}}\right)\right) + 1} + \frac{NdChar}{1 + e^{\frac{EDonor - \left(\left(Ec - Vef\right) - 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{NaChar}{\mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{\left(\left(Vef - mu\right) + Ev\right) + EAccept}{KbT}}\right)\right) + 1} + \frac{NdChar}{1 + e^{\frac{EDonor - \left(\left(Ec - Vef\right) - mu\right)}{KbT}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r2132796 = NdChar;
        double r2132797 = 1.0;
        double r2132798 = Ec;
        double r2132799 = Vef;
        double r2132800 = r2132798 - r2132799;
        double r2132801 = EDonor;
        double r2132802 = r2132800 - r2132801;
        double r2132803 = mu;
        double r2132804 = r2132802 - r2132803;
        double r2132805 = -r2132804;
        double r2132806 = KbT;
        double r2132807 = r2132805 / r2132806;
        double r2132808 = exp(r2132807);
        double r2132809 = r2132797 + r2132808;
        double r2132810 = r2132796 / r2132809;
        double r2132811 = NaChar;
        double r2132812 = Ev;
        double r2132813 = r2132812 + r2132799;
        double r2132814 = EAccept;
        double r2132815 = r2132813 + r2132814;
        double r2132816 = -r2132803;
        double r2132817 = r2132815 + r2132816;
        double r2132818 = r2132817 / r2132806;
        double r2132819 = exp(r2132818);
        double r2132820 = r2132797 + r2132819;
        double r2132821 = r2132811 / r2132820;
        double r2132822 = r2132810 + r2132821;
        return r2132822;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r2132823 = NaChar;
        double r2132824 = Vef;
        double r2132825 = mu;
        double r2132826 = r2132824 - r2132825;
        double r2132827 = Ev;
        double r2132828 = r2132826 + r2132827;
        double r2132829 = EAccept;
        double r2132830 = r2132828 + r2132829;
        double r2132831 = KbT;
        double r2132832 = r2132830 / r2132831;
        double r2132833 = exp(r2132832);
        double r2132834 = log1p(r2132833);
        double r2132835 = expm1(r2132834);
        double r2132836 = 1.0;
        double r2132837 = r2132835 + r2132836;
        double r2132838 = r2132823 / r2132837;
        double r2132839 = NdChar;
        double r2132840 = EDonor;
        double r2132841 = Ec;
        double r2132842 = r2132841 - r2132824;
        double r2132843 = r2132842 - r2132825;
        double r2132844 = r2132840 - r2132843;
        double r2132845 = r2132844 / r2132831;
        double r2132846 = exp(r2132845);
        double r2132847 = r2132836 + r2132846;
        double r2132848 = r2132839 / r2132847;
        double r2132849 = r2132838 + r2132848;
        return r2132849;
}

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. Simplified0.0

    \[\leadsto \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(\left(Vef - mu\right) + Ev\right)}{KbT}}} + \frac{NdChar}{e^{\frac{EDonor - \left(\left(Ec - Vef\right) - mu\right)}{KbT}} + 1}}\]
  3. Using strategy rm
  4. Applied expm1-log1p-u0.0

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

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

Reproduce

herbie shell --seed 2019156 +o rules:numerics
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
  :name "Bulmash initializePoisson"
  (+ (/ NdChar (+ 1 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))