Average Error: 0.0 → 0.0
Time: 10.5s
Precision: binary64
Cost: 20928
\[\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}^{\left(\frac{\left(mu - \left(Ec - Vef\right)\right) + EDonor}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (+
  (/ NdChar (+ 1.0 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT))))
  (/ NaChar (+ 1.0 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (+
  (/ NdChar (+ 1.0 (pow E (/ (+ (- mu (- Ec Vef)) EDonor) KbT))))
  (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	return (NdChar / (1.0 + exp((-(((Ec - Vef) - EDonor) - mu) / KbT)))) + (NaChar / (1.0 + exp(((((Ev + Vef) + EAccept) + -mu) / KbT))));
}
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	return (NdChar / (1.0 + pow(((double) M_E), (((mu - (Ec - Vef)) + EDonor) / KbT)))) + (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT))));
}
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	return (NdChar / (1.0 + Math.exp((-(((Ec - Vef) - EDonor) - mu) / KbT)))) + (NaChar / (1.0 + Math.exp(((((Ev + Vef) + EAccept) + -mu) / KbT))));
}
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	return (NdChar / (1.0 + Math.pow(Math.E, (((mu - (Ec - Vef)) + EDonor) / KbT)))) + (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT))));
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	return (NdChar / (1.0 + math.exp((-(((Ec - Vef) - EDonor) - mu) / KbT)))) + (NaChar / (1.0 + math.exp(((((Ev + Vef) + EAccept) + -mu) / KbT))))
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	return (NdChar / (1.0 + math.pow(math.e, (((mu - (Ec - Vef)) + EDonor) / KbT)))) + (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT))))
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	return Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(-Float64(Float64(Float64(Ec - Vef) - EDonor) - mu)) / KbT)))) + Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Float64(Float64(Ev + Vef) + EAccept) + Float64(-mu)) / KbT)))))
end
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	return Float64(Float64(NdChar / Float64(1.0 + (exp(1) ^ Float64(Float64(Float64(mu - Float64(Ec - Vef)) + EDonor) / KbT)))) + Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))))
end
function tmp = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = (NdChar / (1.0 + exp((-(((Ec - Vef) - EDonor) - mu) / KbT)))) + (NaChar / (1.0 + exp(((((Ev + Vef) + EAccept) + -mu) / KbT))));
end
function tmp = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = (NdChar / (1.0 + (2.71828182845904523536 ^ (((mu - (Ec - Vef)) + EDonor) / KbT)))) + (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT))));
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := N[(N[(NdChar / N[(1.0 + N[Exp[N[((-N[(N[(N[(Ec - Vef), $MachinePrecision] - EDonor), $MachinePrecision] - mu), $MachinePrecision]) / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(1.0 + N[Exp[N[(N[(N[(N[(Ev + Vef), $MachinePrecision] + EAccept), $MachinePrecision] + (-mu)), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := N[(N[(NdChar / N[(1.0 + N[Power[E, N[(N[(N[(mu - N[(Ec - Vef), $MachinePrecision]), $MachinePrecision] + EDonor), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\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}^{\left(\frac{\left(mu - \left(Ec - Vef\right)\right) + EDonor}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}

Error

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{NdChar}{1 + e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    Proof
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (-.f64 mu (-.f64 (-.f64 Ec Vef) EDonor)) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (+.f64 Vef (+.f64 Ev (-.f64 EAccept mu))) KbT))))): 0 points increase in error, 0 points decrease in error
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (Rewrite<= unsub-neg_binary64 (+.f64 mu (neg.f64 (-.f64 (-.f64 Ec Vef) EDonor)))) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (+.f64 Vef (+.f64 Ev (-.f64 EAccept mu))) KbT))))): 0 points increase in error, 0 points decrease in error
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (+.f64 mu (Rewrite=> neg-sub0_binary64 (-.f64 0 (-.f64 (-.f64 Ec Vef) EDonor)))) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (+.f64 Vef (+.f64 Ev (-.f64 EAccept mu))) KbT))))): 0 points increase in error, 0 points decrease in error
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (-.f64 0 (-.f64 (-.f64 Ec Vef) EDonor)) mu)) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (+.f64 Vef (+.f64 Ev (-.f64 EAccept mu))) KbT))))): 0 points increase in error, 0 points decrease in error
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (Rewrite<= associate--r-_binary64 (-.f64 0 (-.f64 (-.f64 (-.f64 Ec Vef) EDonor) mu))) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (+.f64 Vef (+.f64 Ev (-.f64 EAccept mu))) KbT))))): 0 points increase in error, 0 points decrease in error
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 (-.f64 (-.f64 (-.f64 Ec Vef) EDonor) mu))) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (+.f64 Vef (+.f64 Ev (-.f64 EAccept mu))) KbT))))): 0 points increase in error, 0 points decrease in error
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (neg.f64 (-.f64 (-.f64 (-.f64 Ec Vef) EDonor) mu)) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (+.f64 Vef (+.f64 Ev (Rewrite<= unsub-neg_binary64 (+.f64 EAccept (neg.f64 mu))))) KbT))))): 0 points increase in error, 0 points decrease in error
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (neg.f64 (-.f64 (-.f64 (-.f64 Ec Vef) EDonor) mu)) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 Vef Ev) (+.f64 EAccept (neg.f64 mu)))) KbT))))): 0 points increase in error, 0 points decrease in error
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (neg.f64 (-.f64 (-.f64 (-.f64 Ec Vef) EDonor) mu)) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (+.f64 (Rewrite<= +-commutative_binary64 (+.f64 Ev Vef)) (+.f64 EAccept (neg.f64 mu))) KbT))))): 0 points increase in error, 0 points decrease in error
    (+.f64 (/.f64 NdChar (+.f64 1 (exp.f64 (/.f64 (neg.f64 (-.f64 (-.f64 (-.f64 Ec Vef) EDonor) mu)) KbT)))) (/.f64 NaChar (+.f64 1 (exp.f64 (/.f64 (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 (+.f64 Ev Vef) EAccept) (neg.f64 mu))) KbT))))): 0 points increase in error, 0 points decrease in error
  3. Applied egg-rr0.0

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

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

Alternatives

Alternative 1
Error0.0
Cost14784
\[\frac{NdChar}{1 + e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}} + \frac{NaChar}{1 + 0.3333333333333333 \cdot \left(3 \cdot e^{\frac{\left(EAccept - mu\right) + \left(Vef + Ev\right)}{KbT}}\right)} \]
Alternative 2
Error0.0
Cost14528
\[\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + e^{\frac{mu - \left(\left(Ec - Vef\right) - EDonor\right)}{KbT}}} \]

Error

Reproduce

herbie shell --seed 2022334 
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
  :name "Bulmash initializePoisson"
  :precision binary64
  (+ (/ NdChar (+ 1.0 (exp (/ (- (- (- (- Ec Vef) EDonor) mu)) KbT)))) (/ NaChar (+ 1.0 (exp (/ (+ (+ (+ Ev Vef) EAccept) (- mu)) KbT))))))