Average Error: 0.0 → 0.0
Time: 12.3s
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(Ec - EDonor\right) - Vef\right)}{KbT}}} + \frac{NaChar}{1 + \sqrt[3]{e^{\mathsf{fma}\left(2, \frac{\left(Ev - \left(mu - Vef\right)\right) + EAccept}{KbT}, \frac{\left(Ev - \left(mu - Vef\right)\right) + EAccept}{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(Ec - EDonor\right) - Vef\right)}{KbT}}} + \frac{NaChar}{1 + \sqrt[3]{e^{\mathsf{fma}\left(2, \frac{\left(Ev - \left(mu - Vef\right)\right) + EAccept}{KbT}, \frac{\left(Ev - \left(mu - Vef\right)\right) + EAccept}{KbT}\right)}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r9022927 = NdChar;
        double r9022928 = 1.0;
        double r9022929 = Ec;
        double r9022930 = Vef;
        double r9022931 = r9022929 - r9022930;
        double r9022932 = EDonor;
        double r9022933 = r9022931 - r9022932;
        double r9022934 = mu;
        double r9022935 = r9022933 - r9022934;
        double r9022936 = -r9022935;
        double r9022937 = KbT;
        double r9022938 = r9022936 / r9022937;
        double r9022939 = exp(r9022938);
        double r9022940 = r9022928 + r9022939;
        double r9022941 = r9022927 / r9022940;
        double r9022942 = NaChar;
        double r9022943 = Ev;
        double r9022944 = r9022943 + r9022930;
        double r9022945 = EAccept;
        double r9022946 = r9022944 + r9022945;
        double r9022947 = -r9022934;
        double r9022948 = r9022946 + r9022947;
        double r9022949 = r9022948 / r9022937;
        double r9022950 = exp(r9022949);
        double r9022951 = r9022928 + r9022950;
        double r9022952 = r9022942 / r9022951;
        double r9022953 = r9022941 + r9022952;
        return r9022953;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r9022954 = NdChar;
        double r9022955 = 1.0;
        double r9022956 = mu;
        double r9022957 = Ec;
        double r9022958 = EDonor;
        double r9022959 = r9022957 - r9022958;
        double r9022960 = Vef;
        double r9022961 = r9022959 - r9022960;
        double r9022962 = r9022956 - r9022961;
        double r9022963 = KbT;
        double r9022964 = r9022962 / r9022963;
        double r9022965 = exp(r9022964);
        double r9022966 = r9022955 + r9022965;
        double r9022967 = r9022954 / r9022966;
        double r9022968 = NaChar;
        double r9022969 = 2.0;
        double r9022970 = Ev;
        double r9022971 = r9022956 - r9022960;
        double r9022972 = r9022970 - r9022971;
        double r9022973 = EAccept;
        double r9022974 = r9022972 + r9022973;
        double r9022975 = r9022974 / r9022963;
        double r9022976 = fma(r9022969, r9022975, r9022975);
        double r9022977 = exp(r9022976);
        double r9022978 = cbrt(r9022977);
        double r9022979 = r9022955 + r9022978;
        double r9022980 = r9022968 / r9022979;
        double r9022981 = r9022967 + r9022980;
        return r9022981;
}

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

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

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

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