Average Error: 0.0 → 0.0
Time: 47.1s
Precision: 64
\[\frac{NdChar}{1.0 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1.0 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}\]
\[NaChar \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1}{e^{\frac{\left(EAccept - mu\right) + \left(Vef + Ev\right)}{KbT}} + 1.0}\right)\right) + \frac{NdChar}{1.0 + e^{\frac{mu + \left(Vef + \left(EDonor - Ec\right)\right)}{KbT}}}\]
\frac{NdChar}{1.0 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1.0 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}
NaChar \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1}{e^{\frac{\left(EAccept - mu\right) + \left(Vef + Ev\right)}{KbT}} + 1.0}\right)\right) + \frac{NdChar}{1.0 + e^{\frac{mu + \left(Vef + \left(EDonor - Ec\right)\right)}{KbT}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r5489746 = NdChar;
        double r5489747 = 1.0;
        double r5489748 = Ec;
        double r5489749 = Vef;
        double r5489750 = r5489748 - r5489749;
        double r5489751 = EDonor;
        double r5489752 = r5489750 - r5489751;
        double r5489753 = mu;
        double r5489754 = r5489752 - r5489753;
        double r5489755 = -r5489754;
        double r5489756 = KbT;
        double r5489757 = r5489755 / r5489756;
        double r5489758 = exp(r5489757);
        double r5489759 = r5489747 + r5489758;
        double r5489760 = r5489746 / r5489759;
        double r5489761 = NaChar;
        double r5489762 = Ev;
        double r5489763 = r5489762 + r5489749;
        double r5489764 = EAccept;
        double r5489765 = r5489763 + r5489764;
        double r5489766 = -r5489753;
        double r5489767 = r5489765 + r5489766;
        double r5489768 = r5489767 / r5489756;
        double r5489769 = exp(r5489768);
        double r5489770 = r5489747 + r5489769;
        double r5489771 = r5489761 / r5489770;
        double r5489772 = r5489760 + r5489771;
        return r5489772;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r5489773 = NaChar;
        double r5489774 = 1.0;
        double r5489775 = EAccept;
        double r5489776 = mu;
        double r5489777 = r5489775 - r5489776;
        double r5489778 = Vef;
        double r5489779 = Ev;
        double r5489780 = r5489778 + r5489779;
        double r5489781 = r5489777 + r5489780;
        double r5489782 = KbT;
        double r5489783 = r5489781 / r5489782;
        double r5489784 = exp(r5489783);
        double r5489785 = 1.0;
        double r5489786 = r5489784 + r5489785;
        double r5489787 = r5489774 / r5489786;
        double r5489788 = log1p(r5489787);
        double r5489789 = expm1(r5489788);
        double r5489790 = r5489773 * r5489789;
        double r5489791 = NdChar;
        double r5489792 = EDonor;
        double r5489793 = Ec;
        double r5489794 = r5489792 - r5489793;
        double r5489795 = r5489778 + r5489794;
        double r5489796 = r5489776 + r5489795;
        double r5489797 = r5489796 / r5489782;
        double r5489798 = exp(r5489797);
        double r5489799 = r5489785 + r5489798;
        double r5489800 = r5489791 / r5489799;
        double r5489801 = r5489790 + r5489800;
        return r5489801;
}

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.0 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1.0 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}\]
  2. Simplified0.0

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

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

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

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

Reproduce

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