Average Error: 0.0 → 0.0
Time: 2.9m
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}{e^{\mathsf{log1p}\left(\left(e^{\frac{EDonor - \left(Ec - \left(mu + Vef\right)\right)}{KbT}}\right)\right)}} + \frac{NaChar}{e^{\frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT}} + 1}\]
\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}{e^{\mathsf{log1p}\left(\left(e^{\frac{EDonor - \left(Ec - \left(mu + Vef\right)\right)}{KbT}}\right)\right)}} + \frac{NaChar}{e^{\frac{\left(\left(Ev + Vef\right) - mu\right) + EAccept}{KbT}} + 1}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r87132805 = NdChar;
        double r87132806 = 1.0;
        double r87132807 = Ec;
        double r87132808 = Vef;
        double r87132809 = r87132807 - r87132808;
        double r87132810 = EDonor;
        double r87132811 = r87132809 - r87132810;
        double r87132812 = mu;
        double r87132813 = r87132811 - r87132812;
        double r87132814 = -r87132813;
        double r87132815 = KbT;
        double r87132816 = r87132814 / r87132815;
        double r87132817 = exp(r87132816);
        double r87132818 = r87132806 + r87132817;
        double r87132819 = r87132805 / r87132818;
        double r87132820 = NaChar;
        double r87132821 = Ev;
        double r87132822 = r87132821 + r87132808;
        double r87132823 = EAccept;
        double r87132824 = r87132822 + r87132823;
        double r87132825 = -r87132812;
        double r87132826 = r87132824 + r87132825;
        double r87132827 = r87132826 / r87132815;
        double r87132828 = exp(r87132827);
        double r87132829 = r87132806 + r87132828;
        double r87132830 = r87132820 / r87132829;
        double r87132831 = r87132819 + r87132830;
        return r87132831;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r87132832 = NdChar;
        double r87132833 = EDonor;
        double r87132834 = Ec;
        double r87132835 = mu;
        double r87132836 = Vef;
        double r87132837 = r87132835 + r87132836;
        double r87132838 = r87132834 - r87132837;
        double r87132839 = r87132833 - r87132838;
        double r87132840 = KbT;
        double r87132841 = r87132839 / r87132840;
        double r87132842 = exp(r87132841);
        double r87132843 = log1p(r87132842);
        double r87132844 = exp(r87132843);
        double r87132845 = r87132832 / r87132844;
        double r87132846 = NaChar;
        double r87132847 = Ev;
        double r87132848 = r87132847 + r87132836;
        double r87132849 = r87132848 - r87132835;
        double r87132850 = EAccept;
        double r87132851 = r87132849 + r87132850;
        double r87132852 = r87132851 / r87132840;
        double r87132853 = exp(r87132852);
        double r87132854 = 1.0;
        double r87132855 = r87132853 + r87132854;
        double r87132856 = r87132846 / r87132855;
        double r87132857 = r87132845 + r87132856;
        return r87132857;
}

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(Ev + Vef\right) - mu\right)}{KbT}}} + \frac{NdChar}{e^{\frac{-\left(Ec - \left(\left(Vef + mu\right) + EDonor\right)\right)}{KbT}} + 1}}\]
  3. Using strategy rm
  4. Applied add-exp-log0.0

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

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

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

Reproduce

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