Average Error: 0.0 → 0.0
Time: 14.6s
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 + \mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}\right)\right)} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-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{NdChar}{1 + \mathsf{expm1}\left(\mathsf{log1p}\left(e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}\right)\right)} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r168947 = NdChar;
        double r168948 = 1.0;
        double r168949 = Ec;
        double r168950 = Vef;
        double r168951 = r168949 - r168950;
        double r168952 = EDonor;
        double r168953 = r168951 - r168952;
        double r168954 = mu;
        double r168955 = r168953 - r168954;
        double r168956 = -r168955;
        double r168957 = KbT;
        double r168958 = r168956 / r168957;
        double r168959 = exp(r168958);
        double r168960 = r168948 + r168959;
        double r168961 = r168947 / r168960;
        double r168962 = NaChar;
        double r168963 = Ev;
        double r168964 = r168963 + r168950;
        double r168965 = EAccept;
        double r168966 = r168964 + r168965;
        double r168967 = -r168954;
        double r168968 = r168966 + r168967;
        double r168969 = r168968 / r168957;
        double r168970 = exp(r168969);
        double r168971 = r168948 + r168970;
        double r168972 = r168962 / r168971;
        double r168973 = r168961 + r168972;
        return r168973;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r168974 = NdChar;
        double r168975 = 1.0;
        double r168976 = Ec;
        double r168977 = Vef;
        double r168978 = r168976 - r168977;
        double r168979 = EDonor;
        double r168980 = r168978 - r168979;
        double r168981 = mu;
        double r168982 = r168980 - r168981;
        double r168983 = -r168982;
        double r168984 = KbT;
        double r168985 = r168983 / r168984;
        double r168986 = exp(r168985);
        double r168987 = log1p(r168986);
        double r168988 = expm1(r168987);
        double r168989 = r168975 + r168988;
        double r168990 = r168974 / r168989;
        double r168991 = NaChar;
        double r168992 = Ev;
        double r168993 = r168992 + r168977;
        double r168994 = EAccept;
        double r168995 = r168993 + r168994;
        double r168996 = -r168981;
        double r168997 = r168995 + r168996;
        double r168998 = r168997 / r168984;
        double r168999 = exp(r168998);
        double r169000 = r168975 + r168999;
        double r169001 = r168991 / r169000;
        double r169002 = r168990 + r169001;
        return r169002;
}

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. Using strategy rm
  3. Applied expm1-log1p-u0.0

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

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

Reproduce

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