Average Error: 0.0 → 0.0
Time: 16.1s
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{mu + \left(\left(EDonor - Ec\right) + Vef\right)}{KbT}}} + \frac{NaChar}{1 + \sqrt[3]{e^{\mathsf{fma}\left(2, \frac{EAccept - \left(mu - \left(Ev + Vef\right)\right)}{KbT}, \frac{EAccept - \left(mu - \left(Ev + Vef\right)\right)}{KbT}\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{mu + \left(\left(EDonor - Ec\right) + Vef\right)}{KbT}}} + \frac{NaChar}{1 + \sqrt[3]{e^{\mathsf{fma}\left(2, \frac{EAccept - \left(mu - \left(Ev + Vef\right)\right)}{KbT}, \frac{EAccept - \left(mu - \left(Ev + Vef\right)\right)}{KbT}\right)}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r6622069 = NdChar;
        double r6622070 = 1.0;
        double r6622071 = Ec;
        double r6622072 = Vef;
        double r6622073 = r6622071 - r6622072;
        double r6622074 = EDonor;
        double r6622075 = r6622073 - r6622074;
        double r6622076 = mu;
        double r6622077 = r6622075 - r6622076;
        double r6622078 = -r6622077;
        double r6622079 = KbT;
        double r6622080 = r6622078 / r6622079;
        double r6622081 = exp(r6622080);
        double r6622082 = r6622070 + r6622081;
        double r6622083 = r6622069 / r6622082;
        double r6622084 = NaChar;
        double r6622085 = Ev;
        double r6622086 = r6622085 + r6622072;
        double r6622087 = EAccept;
        double r6622088 = r6622086 + r6622087;
        double r6622089 = -r6622076;
        double r6622090 = r6622088 + r6622089;
        double r6622091 = r6622090 / r6622079;
        double r6622092 = exp(r6622091);
        double r6622093 = r6622070 + r6622092;
        double r6622094 = r6622084 / r6622093;
        double r6622095 = r6622083 + r6622094;
        return r6622095;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r6622096 = NdChar;
        double r6622097 = 1.0;
        double r6622098 = mu;
        double r6622099 = EDonor;
        double r6622100 = Ec;
        double r6622101 = r6622099 - r6622100;
        double r6622102 = Vef;
        double r6622103 = r6622101 + r6622102;
        double r6622104 = r6622098 + r6622103;
        double r6622105 = KbT;
        double r6622106 = r6622104 / r6622105;
        double r6622107 = exp(r6622106);
        double r6622108 = r6622097 + r6622107;
        double r6622109 = r6622096 / r6622108;
        double r6622110 = NaChar;
        double r6622111 = 2.0;
        double r6622112 = EAccept;
        double r6622113 = Ev;
        double r6622114 = r6622113 + r6622102;
        double r6622115 = r6622098 - r6622114;
        double r6622116 = r6622112 - r6622115;
        double r6622117 = r6622116 / r6622105;
        double r6622118 = fma(r6622111, r6622117, r6622117);
        double r6622119 = exp(r6622118);
        double r6622120 = cbrt(r6622119);
        double r6622121 = r6622097 + r6622120;
        double r6622122 = r6622110 / r6622121;
        double r6622123 = r6622109 + r6622122;
        return r6622123;
}

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

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

    \[\leadsto \frac{NaChar}{1 + \color{blue}{\sqrt[3]{\left(e^{\frac{\left(EAccept - mu\right) + \left(Ev + Vef\right)}{KbT}} \cdot e^{\frac{\left(EAccept - mu\right) + \left(Ev + Vef\right)}{KbT}}\right) \cdot 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}\]
  5. Simplified0.0

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

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

Reproduce

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