\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{\sqrt[3]{mu - \left(\left(Ec - Vef\right) - EDonor\right)} \cdot \sqrt[3]{mu - \left(\left(Ec - Vef\right) - EDonor\right)}}{\sqrt[3]{KbT} \cdot \sqrt[3]{KbT}} \cdot \frac{\sqrt[3]{mu - \left(\left(Ec - Vef\right) - EDonor\right)}}{\sqrt[3]{KbT}}}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Vef + Ev\right) + EAccept\right) - mu}{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
(exp
(*
(/
(*
(cbrt (- mu (- (- Ec Vef) EDonor)))
(cbrt (- mu (- (- Ec Vef) EDonor))))
(* (cbrt KbT) (cbrt KbT)))
(/ (cbrt (- mu (- (- Ec Vef) EDonor))) (cbrt 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 + exp(((cbrt(mu - ((Ec - Vef) - EDonor)) * cbrt(mu - ((Ec - Vef) - EDonor))) / (cbrt(KbT) * cbrt(KbT))) * (cbrt(mu - ((Ec - Vef) - EDonor)) / cbrt(KbT))))) + (NaChar / (1.0 + exp((((Vef + Ev) + EAccept) - mu) / KbT)));
}



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
Results
Initial program 0.0
Simplified0.0
rmApplied add-cube-cbrt_binary640.0
Applied add-cube-cbrt_binary640.0
Applied times-frac_binary640.0
Final simplification0.0
herbie shell --seed 2021173
(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))))))