Bulmash initializePoisson

Percentage Accurate: 100.0% → 100.0%
Time: 37.9s
Alternatives: 36
Speedup: 1.0×

Specification

?
\[\begin{array}{l} \\ \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}}} \end{array} \]
(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))))))
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))));
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    code = (ndchar / (1.0d0 + exp((-(((ec - vef) - edonor) - mu) / kbt)))) + (nachar / (1.0d0 + exp(((((ev + vef) + eaccept) + -mu) / kbt))))
end function
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))));
}
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))))
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 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
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]
\begin{array}{l}

\\
\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}}}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 36 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 100.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \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}}} \end{array} \]
(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))))))
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))));
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    code = (ndchar / (1.0d0 + exp((-(((ec - vef) - edonor) - mu) / kbt)))) + (nachar / (1.0d0 + exp(((((ev + vef) + eaccept) + -mu) / kbt))))
end function
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))));
}
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))))
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 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
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]
\begin{array}{l}

\\
\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}}}
\end{array}

Alternative 1: 100.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (+
  (/ NdChar (+ 1.0 (exp (/ 1.0 (/ KbT (- (+ (+ Vef EDonor) mu) Ec))))))
  (/ 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((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT))));
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    code = (ndchar / (1.0d0 + exp((1.0d0 / (kbt / (((vef + edonor) + mu) - ec)))))) + (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt))))
end function
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((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (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((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (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(1.0 / Float64(KbT / Float64(Float64(Float64(Vef + EDonor) + mu) - Ec)))))) + 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((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (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[(1.0 / N[(KbT / N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision]), $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]
\begin{array}{l}

\\
\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}
\end{array}
Derivation
  1. Initial program 100.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. Simplified100.0%

    \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
  3. Add Preprocessing
  4. Step-by-step derivation
    1. clear-num100.0%

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

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

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

      \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. associate-+l-100.0%

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

      \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
  5. Applied egg-rr100.0%

    \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
  6. Step-by-step derivation
    1. unpow-1100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    2. associate--r-100.0%

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

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

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. associate-+r+100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. mul-1-neg100.0%

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

      \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. associate--l+100.0%

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

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

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

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

Alternative 2: 75.6% accurate, 0.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}}\\ t_1 := \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\ \mathbf{if}\;mu \leq -2 \cdot 10^{+110}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;mu \leq -1.36 \cdot 10^{-152}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;mu \leq 3.8 \cdot 10^{-164}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ \mathbf{elif}\;mu \leq 1.05 \cdot 10^{+192}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
          (/ NdChar (+ 1.0 (exp (/ EDonor KbT))))))
        (t_1
         (+
          (/ NdChar (+ 1.0 (exp (/ mu KbT))))
          (/ NaChar (+ 1.0 (exp (/ (- (+ Vef Ev) mu) KbT)))))))
   (if (<= mu -2e+110)
     t_1
     (if (<= mu -1.36e-152)
       t_0
       (if (<= mu 3.8e-164)
         (+
          (/ NdChar (+ 1.0 (exp (/ Ec (- KbT)))))
          (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT)))))
         (if (<= mu 1.05e+192) t_0 t_1))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + exp((EDonor / KbT))));
	double t_1 = (NdChar / (1.0 + exp((mu / KbT)))) + (NaChar / (1.0 + exp((((Vef + Ev) - mu) / KbT))));
	double tmp;
	if (mu <= -2e+110) {
		tmp = t_1;
	} else if (mu <= -1.36e-152) {
		tmp = t_0;
	} else if (mu <= 3.8e-164) {
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT))));
	} else if (mu <= 1.05e+192) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (ndchar / (1.0d0 + exp((edonor / kbt))))
    t_1 = (ndchar / (1.0d0 + exp((mu / kbt)))) + (nachar / (1.0d0 + exp((((vef + ev) - mu) / kbt))))
    if (mu <= (-2d+110)) then
        tmp = t_1
    else if (mu <= (-1.36d-152)) then
        tmp = t_0
    else if (mu <= 3.8d-164) then
        tmp = (ndchar / (1.0d0 + exp((ec / -kbt)))) + (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt))))
    else if (mu <= 1.05d+192) then
        tmp = t_0
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + Math.exp((EDonor / KbT))));
	double t_1 = (NdChar / (1.0 + Math.exp((mu / KbT)))) + (NaChar / (1.0 + Math.exp((((Vef + Ev) - mu) / KbT))));
	double tmp;
	if (mu <= -2e+110) {
		tmp = t_1;
	} else if (mu <= -1.36e-152) {
		tmp = t_0;
	} else if (mu <= 3.8e-164) {
		tmp = (NdChar / (1.0 + Math.exp((Ec / -KbT)))) + (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT))));
	} else if (mu <= 1.05e+192) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + math.exp((EDonor / KbT))))
	t_1 = (NdChar / (1.0 + math.exp((mu / KbT)))) + (NaChar / (1.0 + math.exp((((Vef + Ev) - mu) / KbT))))
	tmp = 0
	if mu <= -2e+110:
		tmp = t_1
	elif mu <= -1.36e-152:
		tmp = t_0
	elif mu <= 3.8e-164:
		tmp = (NdChar / (1.0 + math.exp((Ec / -KbT)))) + (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT))))
	elif mu <= 1.05e+192:
		tmp = t_0
	else:
		tmp = t_1
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))))
	t_1 = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(mu / KbT)))) + Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Float64(Vef + Ev) - mu) / KbT)))))
	tmp = 0.0
	if (mu <= -2e+110)
		tmp = t_1;
	elseif (mu <= -1.36e-152)
		tmp = t_0;
	elseif (mu <= 3.8e-164)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Ec / Float64(-KbT))))) + Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))));
	elseif (mu <= 1.05e+192)
		tmp = t_0;
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + exp((EDonor / KbT))));
	t_1 = (NdChar / (1.0 + exp((mu / KbT)))) + (NaChar / (1.0 + exp((((Vef + Ev) - mu) / KbT))));
	tmp = 0.0;
	if (mu <= -2e+110)
		tmp = t_1;
	elseif (mu <= -1.36e-152)
		tmp = t_0;
	elseif (mu <= 3.8e-164)
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT))));
	elseif (mu <= 1.05e+192)
		tmp = t_0;
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(NdChar / N[(1.0 + N[Exp[N[(mu / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(1.0 + N[Exp[N[(N[(N[(Vef + Ev), $MachinePrecision] - mu), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[mu, -2e+110], t$95$1, If[LessEqual[mu, -1.36e-152], t$95$0, If[LessEqual[mu, 3.8e-164], N[(N[(NdChar / N[(1.0 + N[Exp[N[(Ec / (-KbT)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[mu, 1.05e+192], t$95$0, t$95$1]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}}\\
t_1 := \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\
\mathbf{if}\;mu \leq -2 \cdot 10^{+110}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;mu \leq -1.36 \cdot 10^{-152}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;mu \leq 3.8 \cdot 10^{-164}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\

\mathbf{elif}\;mu \leq 1.05 \cdot 10^{+192}:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if mu < -2e110 or 1.04999999999999997e192 < mu

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in mu around inf 88.6%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{mu}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in EAccept around 0 85.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\color{blue}{\frac{\left(Ev + Vef\right) - mu}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative85.3%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Vef + Ev\right)} - mu}{KbT}}} \]
    7. Simplified85.3%

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

    if -2e110 < mu < -1.3599999999999999e-152 or 3.79999999999999989e-164 < mu < 1.04999999999999997e192

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 85.0%

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

    if -1.3599999999999999e-152 < mu < 3.79999999999999989e-164

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 85.6%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/44.3%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg44.3%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified85.6%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in mu around 0 85.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{-Ec}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    8. Step-by-step derivation
      1. +-commutative39.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+39.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative39.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    9. Simplified85.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{-Ec}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification85.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;mu \leq -2 \cdot 10^{+110}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\ \mathbf{elif}\;mu \leq -1.36 \cdot 10^{-152}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}}\\ \mathbf{elif}\;mu \leq 3.8 \cdot 10^{-164}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ \mathbf{elif}\;mu \leq 1.05 \cdot 10^{+192}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 65.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}\\ t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ \mathbf{if}\;mu \leq -4.8 \cdot 10^{+250}:\\ \;\;\;\;t\_1 + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{elif}\;mu \leq -9.5 \cdot 10^{+181}:\\ \;\;\;\;t\_0 + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\ \mathbf{elif}\;mu \leq -3.6 \cdot 10^{+158}:\\ \;\;\;\;t\_1 + \frac{NdChar}{1 + \left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{mu}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}\\ \mathbf{elif}\;mu \leq 2.2 \cdot 10^{+198}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_0 - KbT \cdot \frac{NaChar}{mu}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0 (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT)))))
        (t_1 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))))
   (if (<= mu -4.8e+250)
     (+ t_1 (/ NdChar (- 1.0 (/ Ec KbT))))
     (if (<= mu -9.5e+181)
       (+
        t_0
        (/ NaChar (+ 2.0 (+ (/ EAccept KbT) (+ (/ Vef KbT) (/ Ev KbT))))))
       (if (<= mu -3.6e+158)
         (+
          t_1
          (/
           NdChar
           (+
            1.0
            (-
             (+ 1.0 (+ (/ EDonor KbT) (+ (/ mu KbT) (/ Vef KbT))))
             (/ Ec KbT)))))
         (if (<= mu 2.2e+198)
           (+
            (/ NdChar (+ 1.0 (exp (/ EDonor KbT))))
            (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT)))))
           (- t_0 (* KbT (/ NaChar mu)))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)));
	double t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double tmp;
	if (mu <= -4.8e+250) {
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)));
	} else if (mu <= -9.5e+181) {
		tmp = t_0 + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))));
	} else if (mu <= -3.6e+158) {
		tmp = t_1 + (NdChar / (1.0 + ((1.0 + ((EDonor / KbT) + ((mu / KbT) + (Vef / KbT)))) - (Ec / KbT))));
	} else if (mu <= 2.2e+198) {
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT))));
	} else {
		tmp = t_0 - (KbT * (NaChar / mu));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))
    t_1 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    if (mu <= (-4.8d+250)) then
        tmp = t_1 + (ndchar / (1.0d0 - (ec / kbt)))
    else if (mu <= (-9.5d+181)) then
        tmp = t_0 + (nachar / (2.0d0 + ((eaccept / kbt) + ((vef / kbt) + (ev / kbt)))))
    else if (mu <= (-3.6d+158)) then
        tmp = t_1 + (ndchar / (1.0d0 + ((1.0d0 + ((edonor / kbt) + ((mu / kbt) + (vef / kbt)))) - (ec / kbt))))
    else if (mu <= 2.2d+198) then
        tmp = (ndchar / (1.0d0 + exp((edonor / kbt)))) + (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt))))
    else
        tmp = t_0 - (kbt * (nachar / mu))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)));
	double t_1 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double tmp;
	if (mu <= -4.8e+250) {
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)));
	} else if (mu <= -9.5e+181) {
		tmp = t_0 + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))));
	} else if (mu <= -3.6e+158) {
		tmp = t_1 + (NdChar / (1.0 + ((1.0 + ((EDonor / KbT) + ((mu / KbT) + (Vef / KbT)))) - (Ec / KbT))));
	} else if (mu <= 2.2e+198) {
		tmp = (NdChar / (1.0 + Math.exp((EDonor / KbT)))) + (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT))));
	} else {
		tmp = t_0 - (KbT * (NaChar / mu));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))
	t_1 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	tmp = 0
	if mu <= -4.8e+250:
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)))
	elif mu <= -9.5e+181:
		tmp = t_0 + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))))
	elif mu <= -3.6e+158:
		tmp = t_1 + (NdChar / (1.0 + ((1.0 + ((EDonor / KbT) + ((mu / KbT) + (Vef / KbT)))) - (Ec / KbT))))
	elif mu <= 2.2e+198:
		tmp = (NdChar / (1.0 + math.exp((EDonor / KbT)))) + (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT))))
	else:
		tmp = t_0 - (KbT * (NaChar / mu))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT))))
	t_1 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	tmp = 0.0
	if (mu <= -4.8e+250)
		tmp = Float64(t_1 + Float64(NdChar / Float64(1.0 - Float64(Ec / KbT))));
	elseif (mu <= -9.5e+181)
		tmp = Float64(t_0 + Float64(NaChar / Float64(2.0 + Float64(Float64(EAccept / KbT) + Float64(Float64(Vef / KbT) + Float64(Ev / KbT))))));
	elseif (mu <= -3.6e+158)
		tmp = Float64(t_1 + Float64(NdChar / Float64(1.0 + Float64(Float64(1.0 + Float64(Float64(EDonor / KbT) + Float64(Float64(mu / KbT) + Float64(Vef / KbT)))) - Float64(Ec / KbT)))));
	elseif (mu <= 2.2e+198)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))));
	else
		tmp = Float64(t_0 - Float64(KbT * Float64(NaChar / mu)));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)));
	t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	tmp = 0.0;
	if (mu <= -4.8e+250)
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)));
	elseif (mu <= -9.5e+181)
		tmp = t_0 + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))));
	elseif (mu <= -3.6e+158)
		tmp = t_1 + (NdChar / (1.0 + ((1.0 + ((EDonor / KbT) + ((mu / KbT) + (Vef / KbT)))) - (Ec / KbT))));
	elseif (mu <= 2.2e+198)
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT))));
	else
		tmp = t_0 - (KbT * (NaChar / mu));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[mu, -4.8e+250], N[(t$95$1 + N[(NdChar / N[(1.0 - N[(Ec / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[mu, -9.5e+181], N[(t$95$0 + N[(NaChar / N[(2.0 + N[(N[(EAccept / KbT), $MachinePrecision] + N[(N[(Vef / KbT), $MachinePrecision] + N[(Ev / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[mu, -3.6e+158], N[(t$95$1 + N[(NdChar / N[(1.0 + N[(N[(1.0 + N[(N[(EDonor / KbT), $MachinePrecision] + N[(N[(mu / KbT), $MachinePrecision] + N[(Vef / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(Ec / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[mu, 2.2e+198], N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$0 - N[(KbT * N[(NaChar / mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}\\
t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
\mathbf{if}\;mu \leq -4.8 \cdot 10^{+250}:\\
\;\;\;\;t\_1 + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\

\mathbf{elif}\;mu \leq -9.5 \cdot 10^{+181}:\\
\;\;\;\;t\_0 + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\

\mathbf{elif}\;mu \leq -3.6 \cdot 10^{+158}:\\
\;\;\;\;t\_1 + \frac{NdChar}{1 + \left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{mu}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}\\

\mathbf{elif}\;mu \leq 2.2 \cdot 10^{+198}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_0 - KbT \cdot \frac{NaChar}{mu}\\


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if mu < -4.80000000000000026e250

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 53.3%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+53.3%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative53.3%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified53.3%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Ec around inf 73.9%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{-1 \cdot \frac{Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-*r/73.9%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\frac{-1 \cdot Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. mul-1-neg73.9%

        \[\leadsto \frac{NdChar}{1 + \frac{\color{blue}{-Ec}}{KbT}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified73.9%

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

    if -4.80000000000000026e250 < mu < -9.50000000000000032e181

    1. Initial program 99.4%

      \[\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. Simplified99.4%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 63.9%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative63.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified63.9%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in mu around 0 79.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{\frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)}} \]
    8. Step-by-step derivation
      1. +-commutative79.7%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)} \]
    9. Simplified79.7%

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

    if -9.50000000000000032e181 < mu < -3.59999999999999988e158

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 67.5%

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

    if -3.59999999999999988e158 < mu < 2.2e198

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 81.2%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 80.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative38.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+38.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative38.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified80.6%

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

    if 2.2e198 < mu

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 57.9%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative57.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified57.9%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in mu around inf 76.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{-1 \cdot \frac{KbT \cdot NaChar}{mu}} \]
    8. Step-by-step derivation
      1. mul-1-neg76.5%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{\left(-\frac{KbT \cdot NaChar}{mu}\right)} \]
      2. associate-/l*79.7%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \left(-\color{blue}{KbT \cdot \frac{NaChar}{mu}}\right) \]
      3. distribute-rgt-neg-in79.7%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{KbT \cdot \left(-\frac{NaChar}{mu}\right)} \]
    9. Simplified79.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{KbT \cdot \left(-\frac{NaChar}{mu}\right)} \]
  3. Recombined 5 regimes into one program.
  4. Final simplification79.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;mu \leq -4.8 \cdot 10^{+250}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{elif}\;mu \leq -9.5 \cdot 10^{+181}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\ \mathbf{elif}\;mu \leq -3.6 \cdot 10^{+158}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{mu}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}\\ \mathbf{elif}\;mu \leq 2.2 \cdot 10^{+198}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} - KbT \cdot \frac{NaChar}{mu}\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 74.8% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ t_1 := \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + t\_0\\ t_2 := \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\ \mathbf{if}\;mu \leq -2.4 \cdot 10^{+108}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;mu \leq -2.45 \cdot 10^{-151}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;mu \leq 5.8 \cdot 10^{-161}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + t\_0\\ \mathbf{elif}\;mu \leq 3.5 \cdot 10^{+163}:\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;t\_2\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0 (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT)))))
        (t_1 (+ (/ NdChar (+ 1.0 (exp (/ EDonor KbT)))) t_0))
        (t_2
         (+
          (/ NdChar (+ 1.0 (exp (/ mu KbT))))
          (/ NaChar (+ 1.0 (exp (/ (- (+ Vef Ev) mu) KbT)))))))
   (if (<= mu -2.4e+108)
     t_2
     (if (<= mu -2.45e-151)
       t_1
       (if (<= mu 5.8e-161)
         (+ (/ NdChar (+ 1.0 (exp (/ Ec (- KbT))))) t_0)
         (if (<= mu 3.5e+163) t_1 t_2))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)));
	double t_1 = (NdChar / (1.0 + exp((EDonor / KbT)))) + t_0;
	double t_2 = (NdChar / (1.0 + exp((mu / KbT)))) + (NaChar / (1.0 + exp((((Vef + Ev) - mu) / KbT))));
	double tmp;
	if (mu <= -2.4e+108) {
		tmp = t_2;
	} else if (mu <= -2.45e-151) {
		tmp = t_1;
	} else if (mu <= 5.8e-161) {
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + t_0;
	} else if (mu <= 3.5e+163) {
		tmp = t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt)))
    t_1 = (ndchar / (1.0d0 + exp((edonor / kbt)))) + t_0
    t_2 = (ndchar / (1.0d0 + exp((mu / kbt)))) + (nachar / (1.0d0 + exp((((vef + ev) - mu) / kbt))))
    if (mu <= (-2.4d+108)) then
        tmp = t_2
    else if (mu <= (-2.45d-151)) then
        tmp = t_1
    else if (mu <= 5.8d-161) then
        tmp = (ndchar / (1.0d0 + exp((ec / -kbt)))) + t_0
    else if (mu <= 3.5d+163) then
        tmp = t_1
    else
        tmp = t_2
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT)));
	double t_1 = (NdChar / (1.0 + Math.exp((EDonor / KbT)))) + t_0;
	double t_2 = (NdChar / (1.0 + Math.exp((mu / KbT)))) + (NaChar / (1.0 + Math.exp((((Vef + Ev) - mu) / KbT))));
	double tmp;
	if (mu <= -2.4e+108) {
		tmp = t_2;
	} else if (mu <= -2.45e-151) {
		tmp = t_1;
	} else if (mu <= 5.8e-161) {
		tmp = (NdChar / (1.0 + Math.exp((Ec / -KbT)))) + t_0;
	} else if (mu <= 3.5e+163) {
		tmp = t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT)))
	t_1 = (NdChar / (1.0 + math.exp((EDonor / KbT)))) + t_0
	t_2 = (NdChar / (1.0 + math.exp((mu / KbT)))) + (NaChar / (1.0 + math.exp((((Vef + Ev) - mu) / KbT))))
	tmp = 0
	if mu <= -2.4e+108:
		tmp = t_2
	elif mu <= -2.45e-151:
		tmp = t_1
	elif mu <= 5.8e-161:
		tmp = (NdChar / (1.0 + math.exp((Ec / -KbT)))) + t_0
	elif mu <= 3.5e+163:
		tmp = t_1
	else:
		tmp = t_2
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT))))
	t_1 = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + t_0)
	t_2 = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(mu / KbT)))) + Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Float64(Vef + Ev) - mu) / KbT)))))
	tmp = 0.0
	if (mu <= -2.4e+108)
		tmp = t_2;
	elseif (mu <= -2.45e-151)
		tmp = t_1;
	elseif (mu <= 5.8e-161)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Ec / Float64(-KbT))))) + t_0);
	elseif (mu <= 3.5e+163)
		tmp = t_1;
	else
		tmp = t_2;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)));
	t_1 = (NdChar / (1.0 + exp((EDonor / KbT)))) + t_0;
	t_2 = (NdChar / (1.0 + exp((mu / KbT)))) + (NaChar / (1.0 + exp((((Vef + Ev) - mu) / KbT))));
	tmp = 0.0;
	if (mu <= -2.4e+108)
		tmp = t_2;
	elseif (mu <= -2.45e-151)
		tmp = t_1;
	elseif (mu <= 5.8e-161)
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + t_0;
	elseif (mu <= 3.5e+163)
		tmp = t_1;
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(NdChar / N[(1.0 + N[Exp[N[(mu / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(1.0 + N[Exp[N[(N[(N[(Vef + Ev), $MachinePrecision] - mu), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[mu, -2.4e+108], t$95$2, If[LessEqual[mu, -2.45e-151], t$95$1, If[LessEqual[mu, 5.8e-161], N[(N[(NdChar / N[(1.0 + N[Exp[N[(Ec / (-KbT)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$0), $MachinePrecision], If[LessEqual[mu, 3.5e+163], t$95$1, t$95$2]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\
t_1 := \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + t\_0\\
t_2 := \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\
\mathbf{if}\;mu \leq -2.4 \cdot 10^{+108}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;mu \leq -2.45 \cdot 10^{-151}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;mu \leq 5.8 \cdot 10^{-161}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + t\_0\\

\mathbf{elif}\;mu \leq 3.5 \cdot 10^{+163}:\\
\;\;\;\;t\_1\\

\mathbf{else}:\\
\;\;\;\;t\_2\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if mu < -2.40000000000000019e108 or 3.5000000000000003e163 < mu

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in mu around inf 86.8%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{mu}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in EAccept around 0 83.8%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\color{blue}{\frac{\left(Ev + Vef\right) - mu}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative83.8%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Vef + Ev\right)} - mu}{KbT}}} \]
    7. Simplified83.8%

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

    if -2.40000000000000019e108 < mu < -2.44999999999999983e-151 or 5.8e-161 < mu < 3.5000000000000003e163

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 85.6%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 85.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative37.9%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+37.9%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative37.9%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified85.5%

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

    if -2.44999999999999983e-151 < mu < 5.8e-161

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 85.6%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/44.3%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg44.3%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified85.6%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in mu around 0 85.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{-Ec}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    8. Step-by-step derivation
      1. +-commutative39.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+39.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative39.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    9. Simplified85.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{-Ec}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification85.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;mu \leq -2.4 \cdot 10^{+108}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\ \mathbf{elif}\;mu \leq -2.45 \cdot 10^{-151}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ \mathbf{elif}\;mu \leq 5.8 \cdot 10^{-161}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ \mathbf{elif}\;mu \leq 3.5 \cdot 10^{+163}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 76.4% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ \mathbf{if}\;EDonor \leq -1.05 \cdot 10^{+108} \lor \neg \left(EDonor \leq 1.55 \cdot 10^{-37}\right):\\ \;\;\;\;t\_0 + \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_0 + \frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))))
   (if (or (<= EDonor -1.05e+108) (not (<= EDonor 1.55e-37)))
     (+ t_0 (/ NdChar (+ 1.0 (exp (/ EDonor KbT)))))
     (+ t_0 (/ NdChar (+ 1.0 (exp (/ Ec (- KbT)))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double tmp;
	if ((EDonor <= -1.05e+108) || !(EDonor <= 1.55e-37)) {
		tmp = t_0 + (NdChar / (1.0 + exp((EDonor / KbT))));
	} else {
		tmp = t_0 + (NdChar / (1.0 + exp((Ec / -KbT))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: tmp
    t_0 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    if ((edonor <= (-1.05d+108)) .or. (.not. (edonor <= 1.55d-37))) then
        tmp = t_0 + (ndchar / (1.0d0 + exp((edonor / kbt))))
    else
        tmp = t_0 + (ndchar / (1.0d0 + exp((ec / -kbt))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double tmp;
	if ((EDonor <= -1.05e+108) || !(EDonor <= 1.55e-37)) {
		tmp = t_0 + (NdChar / (1.0 + Math.exp((EDonor / KbT))));
	} else {
		tmp = t_0 + (NdChar / (1.0 + Math.exp((Ec / -KbT))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	tmp = 0
	if (EDonor <= -1.05e+108) or not (EDonor <= 1.55e-37):
		tmp = t_0 + (NdChar / (1.0 + math.exp((EDonor / KbT))))
	else:
		tmp = t_0 + (NdChar / (1.0 + math.exp((Ec / -KbT))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	tmp = 0.0
	if ((EDonor <= -1.05e+108) || !(EDonor <= 1.55e-37))
		tmp = Float64(t_0 + Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))));
	else
		tmp = Float64(t_0 + Float64(NdChar / Float64(1.0 + exp(Float64(Ec / Float64(-KbT))))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	tmp = 0.0;
	if ((EDonor <= -1.05e+108) || ~((EDonor <= 1.55e-37)))
		tmp = t_0 + (NdChar / (1.0 + exp((EDonor / KbT))));
	else
		tmp = t_0 + (NdChar / (1.0 + exp((Ec / -KbT))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[EDonor, -1.05e+108], N[Not[LessEqual[EDonor, 1.55e-37]], $MachinePrecision]], N[(t$95$0 + N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$0 + N[(NdChar / N[(1.0 + N[Exp[N[(Ec / (-KbT)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
\mathbf{if}\;EDonor \leq -1.05 \cdot 10^{+108} \lor \neg \left(EDonor \leq 1.55 \cdot 10^{-37}\right):\\
\;\;\;\;t\_0 + \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_0 + \frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if EDonor < -1.05000000000000005e108 or 1.54999999999999997e-37 < EDonor

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 83.8%

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

    if -1.05000000000000005e108 < EDonor < 1.54999999999999997e-37

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 83.5%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/42.5%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg42.5%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified83.5%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification83.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;EDonor \leq -1.05 \cdot 10^{+108} \lor \neg \left(EDonor \leq 1.55 \cdot 10^{-37}\right):\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 6: 75.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;mu \leq -4.4 \cdot 10^{+102} \lor \neg \left(mu \leq 1.9 \cdot 10^{+164}\right):\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (or (<= mu -4.4e+102) (not (<= mu 1.9e+164)))
   (+
    (/ NdChar (+ 1.0 (exp (/ mu KbT))))
    (/ NaChar (+ 1.0 (exp (/ (- (+ Vef Ev) mu) KbT)))))
   (+
    (/ NdChar (+ 1.0 (exp (/ EDonor KbT))))
    (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT)))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((mu <= -4.4e+102) || !(mu <= 1.9e+164)) {
		tmp = (NdChar / (1.0 + exp((mu / KbT)))) + (NaChar / (1.0 + exp((((Vef + Ev) - mu) / KbT))));
	} else {
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if ((mu <= (-4.4d+102)) .or. (.not. (mu <= 1.9d+164))) then
        tmp = (ndchar / (1.0d0 + exp((mu / kbt)))) + (nachar / (1.0d0 + exp((((vef + ev) - mu) / kbt))))
    else
        tmp = (ndchar / (1.0d0 + exp((edonor / kbt)))) + (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((mu <= -4.4e+102) || !(mu <= 1.9e+164)) {
		tmp = (NdChar / (1.0 + Math.exp((mu / KbT)))) + (NaChar / (1.0 + Math.exp((((Vef + Ev) - mu) / KbT))));
	} else {
		tmp = (NdChar / (1.0 + Math.exp((EDonor / KbT)))) + (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if (mu <= -4.4e+102) or not (mu <= 1.9e+164):
		tmp = (NdChar / (1.0 + math.exp((mu / KbT)))) + (NaChar / (1.0 + math.exp((((Vef + Ev) - mu) / KbT))))
	else:
		tmp = (NdChar / (1.0 + math.exp((EDonor / KbT)))) + (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if ((mu <= -4.4e+102) || !(mu <= 1.9e+164))
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(mu / KbT)))) + Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Float64(Vef + Ev) - mu) / KbT)))));
	else
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if ((mu <= -4.4e+102) || ~((mu <= 1.9e+164)))
		tmp = (NdChar / (1.0 + exp((mu / KbT)))) + (NaChar / (1.0 + exp((((Vef + Ev) - mu) / KbT))));
	else
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[Or[LessEqual[mu, -4.4e+102], N[Not[LessEqual[mu, 1.9e+164]], $MachinePrecision]], N[(N[(NdChar / N[(1.0 + N[Exp[N[(mu / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(1.0 + N[Exp[N[(N[(N[(Vef + Ev), $MachinePrecision] - mu), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;mu \leq -4.4 \cdot 10^{+102} \lor \neg \left(mu \leq 1.9 \cdot 10^{+164}\right):\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if mu < -4.40000000000000015e102 or 1.90000000000000011e164 < mu

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in mu around inf 86.8%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{mu}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in EAccept around 0 83.8%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\color{blue}{\frac{\left(Ev + Vef\right) - mu}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative83.8%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Vef + Ev\right)} - mu}{KbT}}} \]
    7. Simplified83.8%

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

    if -4.40000000000000015e102 < mu < 1.90000000000000011e164

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 81.9%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 81.8%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative38.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+38.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative38.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified81.8%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification82.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;mu \leq -4.4 \cdot 10^{+102} \lor \neg \left(mu \leq 1.9 \cdot 10^{+164}\right):\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(Vef + Ev\right) - mu}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 100.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (+
  (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
  (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	return (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT))));
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    code = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt))))
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	return (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT))));
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	return (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT))))
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	return Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))))
end
function tmp = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT))));
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}
\end{array}
Derivation
  1. Initial program 100.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. Simplified100.0%

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

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

Alternative 8: 63.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\ t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ \mathbf{if}\;NaChar \leq -1.9 \cdot 10^{-11}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + EAccept}{KbT}}}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-129}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NaChar \leq 4 \cdot 10^{-26}:\\ \;\;\;\;t\_1 + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{elif}\;NaChar \leq 460000:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_1 + \frac{NdChar}{1 + \left(1 + \frac{EDonor}{KbT}\right)}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
          (/ NaChar (+ 2.0 (+ (/ EAccept KbT) (+ (/ Vef KbT) (/ Ev KbT)))))))
        (t_1 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))))
   (if (<= NaChar -1.9e-11)
     (+
      (/ NdChar (+ 1.0 (exp (/ EDonor KbT))))
      (/ NaChar (+ 1.0 (exp (/ (+ Ev EAccept) KbT)))))
     (if (<= NaChar 2.7e-129)
       t_0
       (if (<= NaChar 4e-26)
         (+ t_1 (/ NdChar (- 1.0 (/ Ec KbT))))
         (if (<= NaChar 460000.0)
           t_0
           (+ t_1 (/ NdChar (+ 1.0 (+ 1.0 (/ EDonor KbT)))))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))));
	double t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double tmp;
	if (NaChar <= -1.9e-11) {
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (1.0 + exp(((Ev + EAccept) / KbT))));
	} else if (NaChar <= 2.7e-129) {
		tmp = t_0;
	} else if (NaChar <= 4e-26) {
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)));
	} else if (NaChar <= 460000.0) {
		tmp = t_0;
	} else {
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + (nachar / (2.0d0 + ((eaccept / kbt) + ((vef / kbt) + (ev / kbt)))))
    t_1 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    if (nachar <= (-1.9d-11)) then
        tmp = (ndchar / (1.0d0 + exp((edonor / kbt)))) + (nachar / (1.0d0 + exp(((ev + eaccept) / kbt))))
    else if (nachar <= 2.7d-129) then
        tmp = t_0
    else if (nachar <= 4d-26) then
        tmp = t_1 + (ndchar / (1.0d0 - (ec / kbt)))
    else if (nachar <= 460000.0d0) then
        tmp = t_0
    else
        tmp = t_1 + (ndchar / (1.0d0 + (1.0d0 + (edonor / kbt))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))));
	double t_1 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double tmp;
	if (NaChar <= -1.9e-11) {
		tmp = (NdChar / (1.0 + Math.exp((EDonor / KbT)))) + (NaChar / (1.0 + Math.exp(((Ev + EAccept) / KbT))));
	} else if (NaChar <= 2.7e-129) {
		tmp = t_0;
	} else if (NaChar <= 4e-26) {
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)));
	} else if (NaChar <= 460000.0) {
		tmp = t_0;
	} else {
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))))
	t_1 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	tmp = 0
	if NaChar <= -1.9e-11:
		tmp = (NdChar / (1.0 + math.exp((EDonor / KbT)))) + (NaChar / (1.0 + math.exp(((Ev + EAccept) / KbT))))
	elif NaChar <= 2.7e-129:
		tmp = t_0
	elif NaChar <= 4e-26:
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)))
	elif NaChar <= 460000.0:
		tmp = t_0
	else:
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(NaChar / Float64(2.0 + Float64(Float64(EAccept / KbT) + Float64(Float64(Vef / KbT) + Float64(Ev / KbT))))))
	t_1 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	tmp = 0.0
	if (NaChar <= -1.9e-11)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + EAccept) / KbT)))));
	elseif (NaChar <= 2.7e-129)
		tmp = t_0;
	elseif (NaChar <= 4e-26)
		tmp = Float64(t_1 + Float64(NdChar / Float64(1.0 - Float64(Ec / KbT))));
	elseif (NaChar <= 460000.0)
		tmp = t_0;
	else
		tmp = Float64(t_1 + Float64(NdChar / Float64(1.0 + Float64(1.0 + Float64(EDonor / KbT)))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))));
	t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	tmp = 0.0;
	if (NaChar <= -1.9e-11)
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (1.0 + exp(((Ev + EAccept) / KbT))));
	elseif (NaChar <= 2.7e-129)
		tmp = t_0;
	elseif (NaChar <= 4e-26)
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)));
	elseif (NaChar <= 460000.0)
		tmp = t_0;
	else
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(2.0 + N[(N[(EAccept / KbT), $MachinePrecision] + N[(N[(Vef / KbT), $MachinePrecision] + N[(Ev / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -1.9e-11], N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + EAccept), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 2.7e-129], t$95$0, If[LessEqual[NaChar, 4e-26], N[(t$95$1 + N[(NdChar / N[(1.0 - N[(Ec / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 460000.0], t$95$0, N[(t$95$1 + N[(NdChar / N[(1.0 + N[(1.0 + N[(EDonor / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\
t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
\mathbf{if}\;NaChar \leq -1.9 \cdot 10^{-11}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + EAccept}{KbT}}}\\

\mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-129}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NaChar \leq 4 \cdot 10^{-26}:\\
\;\;\;\;t\_1 + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\

\mathbf{elif}\;NaChar \leq 460000:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;t\_1 + \frac{NdChar}{1 + \left(1 + \frac{EDonor}{KbT}\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NaChar < -1.8999999999999999e-11

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 88.2%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 85.2%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative43.1%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+43.1%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative43.1%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified85.2%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
    8. Taylor expanded in Vef around 0 78.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + Ev}{KbT}}}} \]

    if -1.8999999999999999e-11 < NaChar < 2.69999999999999999e-129 or 4.0000000000000002e-26 < NaChar < 4.6e5

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 69.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative69.0%

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

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in mu around 0 72.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{\frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)}} \]
    8. Step-by-step derivation
      1. +-commutative72.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)} \]
    9. Simplified72.1%

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

    if 2.69999999999999999e-129 < NaChar < 4.0000000000000002e-26

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 56.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+56.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative56.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified56.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Ec around inf 76.6%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{-1 \cdot \frac{Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-*r/76.6%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\frac{-1 \cdot Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. mul-1-neg76.6%

        \[\leadsto \frac{NdChar}{1 + \frac{\color{blue}{-Ec}}{KbT}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified76.6%

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

    if 4.6e5 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 84.7%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in EDonor around 0 76.2%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(1 + \frac{EDonor}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. +-commutative76.2%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\frac{EDonor}{KbT} + 1\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Simplified76.2%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\frac{EDonor}{KbT} + 1\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification75.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -1.9 \cdot 10^{-11}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + EAccept}{KbT}}}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\ \mathbf{elif}\;NaChar \leq 4 \cdot 10^{-26}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{elif}\;NaChar \leq 460000:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \left(1 + \frac{EDonor}{KbT}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 9: 58.8% accurate, 1.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ t_1 := t\_0 + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{if}\;NdChar \leq -3.45 \cdot 10^{+112}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq -5.3 \cdot 10^{-272}:\\ \;\;\;\;t\_0 + \frac{NdChar}{1 + \left(1 + \frac{EDonor}{KbT}\right)}\\ \mathbf{elif}\;NdChar \leq 8.2 \cdot 10^{-170}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;NdChar \leq 4.6 \cdot 10^{-94}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{elif}\;NdChar \leq 1.05 \cdot 10^{+42}:\\ \;\;\;\;t\_0 + \frac{NdChar}{1 + \frac{mu}{KbT}}\\ \mathbf{elif}\;NdChar \leq 1.75 \cdot 10^{+106}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right) + \left(2 + \frac{EAccept}{KbT}\right)}\\ \mathbf{elif}\;NdChar \leq 3.1 \cdot 10^{+150}:\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT)))))
        (t_1 (+ t_0 (/ NdChar (- 1.0 (/ Ec KbT))))))
   (if (<= NdChar -3.45e+112)
     (+
      (/ NdChar (+ 1.0 (exp (/ 1.0 (/ KbT (- (+ (+ Vef EDonor) mu) Ec))))))
      (/ NaChar 2.0))
     (if (<= NdChar -5.3e-272)
       (+ t_0 (/ NdChar (+ 1.0 (+ 1.0 (/ EDonor KbT)))))
       (if (<= NdChar 8.2e-170)
         t_1
         (if (<= NdChar 4.6e-94)
           (+
            (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT))))
            (/ NdChar (+ (/ EDonor KbT) 2.0)))
           (if (<= NdChar 1.05e+42)
             (+ t_0 (/ NdChar (+ 1.0 (/ mu KbT))))
             (if (<= NdChar 1.75e+106)
               (+
                (/ NdChar (+ 1.0 (exp (/ EDonor KbT))))
                (/
                 NaChar
                 (+ (+ (/ Vef KbT) (/ Ev KbT)) (+ 2.0 (/ EAccept KbT)))))
               (if (<= NdChar 3.1e+150)
                 t_1
                 (+
                  (/ NaChar 2.0)
                  (*
                   NdChar
                   (/
                    1.0
                    (+
                     1.0
                     (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT)))))))))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_1 = t_0 + (NdChar / (1.0 - (Ec / KbT)));
	double tmp;
	if (NdChar <= -3.45e+112) {
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= -5.3e-272) {
		tmp = t_0 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))));
	} else if (NdChar <= 8.2e-170) {
		tmp = t_1;
	} else if (NdChar <= 4.6e-94) {
		tmp = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	} else if (NdChar <= 1.05e+42) {
		tmp = t_0 + (NdChar / (1.0 + (mu / KbT)));
	} else if (NdChar <= 1.75e+106) {
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (((Vef / KbT) + (Ev / KbT)) + (2.0 + (EAccept / KbT))));
	} else if (NdChar <= 3.1e+150) {
		tmp = t_1;
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    t_1 = t_0 + (ndchar / (1.0d0 - (ec / kbt)))
    if (ndchar <= (-3.45d+112)) then
        tmp = (ndchar / (1.0d0 + exp((1.0d0 / (kbt / (((vef + edonor) + mu) - ec)))))) + (nachar / 2.0d0)
    else if (ndchar <= (-5.3d-272)) then
        tmp = t_0 + (ndchar / (1.0d0 + (1.0d0 + (edonor / kbt))))
    else if (ndchar <= 8.2d-170) then
        tmp = t_1
    else if (ndchar <= 4.6d-94) then
        tmp = (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt)))) + (ndchar / ((edonor / kbt) + 2.0d0))
    else if (ndchar <= 1.05d+42) then
        tmp = t_0 + (ndchar / (1.0d0 + (mu / kbt)))
    else if (ndchar <= 1.75d+106) then
        tmp = (ndchar / (1.0d0 + exp((edonor / kbt)))) + (nachar / (((vef / kbt) + (ev / kbt)) + (2.0d0 + (eaccept / kbt))))
    else if (ndchar <= 3.1d+150) then
        tmp = t_1
    else
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_1 = t_0 + (NdChar / (1.0 - (Ec / KbT)));
	double tmp;
	if (NdChar <= -3.45e+112) {
		tmp = (NdChar / (1.0 + Math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= -5.3e-272) {
		tmp = t_0 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))));
	} else if (NdChar <= 8.2e-170) {
		tmp = t_1;
	} else if (NdChar <= 4.6e-94) {
		tmp = (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	} else if (NdChar <= 1.05e+42) {
		tmp = t_0 + (NdChar / (1.0 + (mu / KbT)));
	} else if (NdChar <= 1.75e+106) {
		tmp = (NdChar / (1.0 + Math.exp((EDonor / KbT)))) + (NaChar / (((Vef / KbT) + (Ev / KbT)) + (2.0 + (EAccept / KbT))));
	} else if (NdChar <= 3.1e+150) {
		tmp = t_1;
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	t_1 = t_0 + (NdChar / (1.0 - (Ec / KbT)))
	tmp = 0
	if NdChar <= -3.45e+112:
		tmp = (NdChar / (1.0 + math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0)
	elif NdChar <= -5.3e-272:
		tmp = t_0 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))))
	elif NdChar <= 8.2e-170:
		tmp = t_1
	elif NdChar <= 4.6e-94:
		tmp = (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0))
	elif NdChar <= 1.05e+42:
		tmp = t_0 + (NdChar / (1.0 + (mu / KbT)))
	elif NdChar <= 1.75e+106:
		tmp = (NdChar / (1.0 + math.exp((EDonor / KbT)))) + (NaChar / (((Vef / KbT) + (Ev / KbT)) + (2.0 + (EAccept / KbT))))
	elif NdChar <= 3.1e+150:
		tmp = t_1
	else:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	t_1 = Float64(t_0 + Float64(NdChar / Float64(1.0 - Float64(Ec / KbT))))
	tmp = 0.0
	if (NdChar <= -3.45e+112)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(1.0 / Float64(KbT / Float64(Float64(Float64(Vef + EDonor) + mu) - Ec)))))) + Float64(NaChar / 2.0));
	elseif (NdChar <= -5.3e-272)
		tmp = Float64(t_0 + Float64(NdChar / Float64(1.0 + Float64(1.0 + Float64(EDonor / KbT)))));
	elseif (NdChar <= 8.2e-170)
		tmp = t_1;
	elseif (NdChar <= 4.6e-94)
		tmp = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))) + Float64(NdChar / Float64(Float64(EDonor / KbT) + 2.0)));
	elseif (NdChar <= 1.05e+42)
		tmp = Float64(t_0 + Float64(NdChar / Float64(1.0 + Float64(mu / KbT))));
	elseif (NdChar <= 1.75e+106)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + Float64(NaChar / Float64(Float64(Float64(Vef / KbT) + Float64(Ev / KbT)) + Float64(2.0 + Float64(EAccept / KbT)))));
	elseif (NdChar <= 3.1e+150)
		tmp = t_1;
	else
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	t_1 = t_0 + (NdChar / (1.0 - (Ec / KbT)));
	tmp = 0.0;
	if (NdChar <= -3.45e+112)
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	elseif (NdChar <= -5.3e-272)
		tmp = t_0 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))));
	elseif (NdChar <= 8.2e-170)
		tmp = t_1;
	elseif (NdChar <= 4.6e-94)
		tmp = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	elseif (NdChar <= 1.05e+42)
		tmp = t_0 + (NdChar / (1.0 + (mu / KbT)));
	elseif (NdChar <= 1.75e+106)
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (((Vef / KbT) + (Ev / KbT)) + (2.0 + (EAccept / KbT))));
	elseif (NdChar <= 3.1e+150)
		tmp = t_1;
	else
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 + N[(NdChar / N[(1.0 - N[(Ec / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NdChar, -3.45e+112], N[(N[(NdChar / N[(1.0 + N[Exp[N[(1.0 / N[(KbT / N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, -5.3e-272], N[(t$95$0 + N[(NdChar / N[(1.0 + N[(1.0 + N[(EDonor / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 8.2e-170], t$95$1, If[LessEqual[NdChar, 4.6e-94], N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(N[(EDonor / KbT), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 1.05e+42], N[(t$95$0 + N[(NdChar / N[(1.0 + N[(mu / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 1.75e+106], N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(N[(N[(Vef / KbT), $MachinePrecision] + N[(Ev / KbT), $MachinePrecision]), $MachinePrecision] + N[(2.0 + N[(EAccept / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 3.1e+150], t$95$1, N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
t_1 := t\_0 + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\
\mathbf{if}\;NdChar \leq -3.45 \cdot 10^{+112}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\

\mathbf{elif}\;NdChar \leq -5.3 \cdot 10^{-272}:\\
\;\;\;\;t\_0 + \frac{NdChar}{1 + \left(1 + \frac{EDonor}{KbT}\right)}\\

\mathbf{elif}\;NdChar \leq 8.2 \cdot 10^{-170}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;NdChar \leq 4.6 \cdot 10^{-94}:\\
\;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\

\mathbf{elif}\;NdChar \leq 1.05 \cdot 10^{+42}:\\
\;\;\;\;t\_0 + \frac{NdChar}{1 + \frac{mu}{KbT}}\\

\mathbf{elif}\;NdChar \leq 1.75 \cdot 10^{+106}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right) + \left(2 + \frac{EAccept}{KbT}\right)}\\

\mathbf{elif}\;NdChar \leq 3.1 \cdot 10^{+150}:\\
\;\;\;\;t\_1\\

\mathbf{else}:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 7 regimes
  2. if NdChar < -3.45e112

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 69.9%

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

    if -3.45e112 < NdChar < -5.3e-272

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 81.3%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in EDonor around 0 76.1%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(1 + \frac{EDonor}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. +-commutative76.1%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\frac{EDonor}{KbT} + 1\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Simplified76.1%

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

    if -5.3e-272 < NdChar < 8.19999999999999931e-170 or 1.7499999999999999e106 < NdChar < 3.10000000000000014e150

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.8%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.8%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.8%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.8%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Ec around inf 81.9%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{-1 \cdot \frac{Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-*r/81.9%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\frac{-1 \cdot Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. mul-1-neg81.9%

        \[\leadsto \frac{NdChar}{1 + \frac{\color{blue}{-Ec}}{KbT}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified81.9%

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

    if 8.19999999999999931e-170 < NdChar < 4.5999999999999999e-94

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 88.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 88.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative39.6%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+39.6%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative39.6%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified88.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
    8. Taylor expanded in EDonor around 0 76.7%

      \[\leadsto \frac{NdChar}{\color{blue}{2 + \frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}} \]

    if 4.5999999999999999e-94 < NdChar < 1.04999999999999998e42

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 52.8%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+52.8%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative52.8%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified52.8%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in mu around inf 72.2%

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

    if 1.04999999999999998e42 < NdChar < 1.7499999999999999e106

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 75.2%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 75.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative8.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+8.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative8.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified75.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
    8. Taylor expanded in KbT around inf 69.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)}} \]
    9. Step-by-step derivation
      1. +-commutative69.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{\left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right) + 2}} \]
      2. +-commutative69.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{\left(\left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right) + \frac{EAccept}{KbT}\right)} + 2} \]
      3. associate-+l+69.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{\left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right) + \left(\frac{EAccept}{KbT} + 2\right)}} \]
    10. Simplified69.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{\left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right) + \left(\frac{EAccept}{KbT} + 2\right)}} \]

    if 3.10000000000000014e150 < NdChar

    1. Initial program 99.7%

      \[\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. Simplified99.7%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 67.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv67.1%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-67.1%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr67.1%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 7 regimes into one program.
  4. Final simplification74.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NdChar \leq -3.45 \cdot 10^{+112}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq -5.3 \cdot 10^{-272}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \left(1 + \frac{EDonor}{KbT}\right)}\\ \mathbf{elif}\;NdChar \leq 8.2 \cdot 10^{-170}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{elif}\;NdChar \leq 4.6 \cdot 10^{-94}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{elif}\;NdChar \leq 1.05 \cdot 10^{+42}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \frac{mu}{KbT}}\\ \mathbf{elif}\;NdChar \leq 1.75 \cdot 10^{+106}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right) + \left(2 + \frac{EAccept}{KbT}\right)}\\ \mathbf{elif}\;NdChar \leq 3.1 \cdot 10^{+150}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 10: 52.5% accurate, 1.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}\\ t_1 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{if}\;NaChar \leq -6.8 \cdot 10^{-26}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;NaChar \leq -2.7 \cdot 10^{-101}:\\ \;\;\;\;t\_0 + \frac{NaChar}{\frac{Ev}{KbT}}\\ \mathbf{elif}\;NaChar \leq -1.6 \cdot 10^{-169}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\ \mathbf{elif}\;NaChar \leq 9 \cdot 10^{-174}:\\ \;\;\;\;t\_0 - KbT \cdot \frac{NaChar}{mu}\\ \mathbf{elif}\;NaChar \leq 1.66 \cdot 10^{-127}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;NaChar \leq 1.26 \cdot 10^{-96}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} - KbT \cdot \frac{NdChar}{Ec}\\ \mathbf{elif}\;NaChar \leq 17000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0 (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT)))))
        (t_1
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT))))
          (/ NdChar (+ (/ EDonor KbT) 2.0)))))
   (if (<= NaChar -6.8e-26)
     t_1
     (if (<= NaChar -2.7e-101)
       (+ t_0 (/ NaChar (/ Ev KbT)))
       (if (<= NaChar -1.6e-169)
         (+
          (/ NaChar 2.0)
          (/ NdChar (+ 1.0 (exp (/ (+ (+ Vef EDonor) mu) KbT)))))
         (if (<= NaChar 9e-174)
           (- t_0 (* KbT (/ NaChar mu)))
           (if (<= NaChar 1.66e-127)
             t_1
             (if (<= NaChar 1.26e-96)
               (-
                (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
                (* KbT (/ NdChar Ec)))
               (if (<= NaChar 17000.0)
                 (+
                  (/ NaChar 2.0)
                  (*
                   NdChar
                   (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))
                 t_1)))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)));
	double t_1 = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	double tmp;
	if (NaChar <= -6.8e-26) {
		tmp = t_1;
	} else if (NaChar <= -2.7e-101) {
		tmp = t_0 + (NaChar / (Ev / KbT));
	} else if (NaChar <= -1.6e-169) {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((((Vef + EDonor) + mu) / KbT))));
	} else if (NaChar <= 9e-174) {
		tmp = t_0 - (KbT * (NaChar / mu));
	} else if (NaChar <= 1.66e-127) {
		tmp = t_1;
	} else if (NaChar <= 1.26e-96) {
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) - (KbT * (NdChar / Ec));
	} else if (NaChar <= 17000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))
    t_1 = (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt)))) + (ndchar / ((edonor / kbt) + 2.0d0))
    if (nachar <= (-6.8d-26)) then
        tmp = t_1
    else if (nachar <= (-2.7d-101)) then
        tmp = t_0 + (nachar / (ev / kbt))
    else if (nachar <= (-1.6d-169)) then
        tmp = (nachar / 2.0d0) + (ndchar / (1.0d0 + exp((((vef + edonor) + mu) / kbt))))
    else if (nachar <= 9d-174) then
        tmp = t_0 - (kbt * (nachar / mu))
    else if (nachar <= 1.66d-127) then
        tmp = t_1
    else if (nachar <= 1.26d-96) then
        tmp = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) - (kbt * (ndchar / ec))
    else if (nachar <= 17000.0d0) then
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)));
	double t_1 = (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	double tmp;
	if (NaChar <= -6.8e-26) {
		tmp = t_1;
	} else if (NaChar <= -2.7e-101) {
		tmp = t_0 + (NaChar / (Ev / KbT));
	} else if (NaChar <= -1.6e-169) {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + Math.exp((((Vef + EDonor) + mu) / KbT))));
	} else if (NaChar <= 9e-174) {
		tmp = t_0 - (KbT * (NaChar / mu));
	} else if (NaChar <= 1.66e-127) {
		tmp = t_1;
	} else if (NaChar <= 1.26e-96) {
		tmp = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) - (KbT * (NdChar / Ec));
	} else if (NaChar <= 17000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))
	t_1 = (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0))
	tmp = 0
	if NaChar <= -6.8e-26:
		tmp = t_1
	elif NaChar <= -2.7e-101:
		tmp = t_0 + (NaChar / (Ev / KbT))
	elif NaChar <= -1.6e-169:
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + math.exp((((Vef + EDonor) + mu) / KbT))))
	elif NaChar <= 9e-174:
		tmp = t_0 - (KbT * (NaChar / mu))
	elif NaChar <= 1.66e-127:
		tmp = t_1
	elif NaChar <= 1.26e-96:
		tmp = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) - (KbT * (NdChar / Ec))
	elif NaChar <= 17000.0:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	else:
		tmp = t_1
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT))))
	t_1 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))) + Float64(NdChar / Float64(Float64(EDonor / KbT) + 2.0)))
	tmp = 0.0
	if (NaChar <= -6.8e-26)
		tmp = t_1;
	elseif (NaChar <= -2.7e-101)
		tmp = Float64(t_0 + Float64(NaChar / Float64(Ev / KbT)));
	elseif (NaChar <= -1.6e-169)
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar / Float64(1.0 + exp(Float64(Float64(Float64(Vef + EDonor) + mu) / KbT)))));
	elseif (NaChar <= 9e-174)
		tmp = Float64(t_0 - Float64(KbT * Float64(NaChar / mu)));
	elseif (NaChar <= 1.66e-127)
		tmp = t_1;
	elseif (NaChar <= 1.26e-96)
		tmp = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) - Float64(KbT * Float64(NdChar / Ec)));
	elseif (NaChar <= 17000.0)
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)));
	t_1 = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	tmp = 0.0;
	if (NaChar <= -6.8e-26)
		tmp = t_1;
	elseif (NaChar <= -2.7e-101)
		tmp = t_0 + (NaChar / (Ev / KbT));
	elseif (NaChar <= -1.6e-169)
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((((Vef + EDonor) + mu) / KbT))));
	elseif (NaChar <= 9e-174)
		tmp = t_0 - (KbT * (NaChar / mu));
	elseif (NaChar <= 1.66e-127)
		tmp = t_1;
	elseif (NaChar <= 1.26e-96)
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) - (KbT * (NdChar / Ec));
	elseif (NaChar <= 17000.0)
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(N[(EDonor / KbT), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -6.8e-26], t$95$1, If[LessEqual[NaChar, -2.7e-101], N[(t$95$0 + N[(NaChar / N[(Ev / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, -1.6e-169], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar / N[(1.0 + N[Exp[N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 9e-174], N[(t$95$0 - N[(KbT * N[(NaChar / mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 1.66e-127], t$95$1, If[LessEqual[NaChar, 1.26e-96], N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(KbT * N[(NdChar / Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 17000.0], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}\\
t_1 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\
\mathbf{if}\;NaChar \leq -6.8 \cdot 10^{-26}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;NaChar \leq -2.7 \cdot 10^{-101}:\\
\;\;\;\;t\_0 + \frac{NaChar}{\frac{Ev}{KbT}}\\

\mathbf{elif}\;NaChar \leq -1.6 \cdot 10^{-169}:\\
\;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\

\mathbf{elif}\;NaChar \leq 9 \cdot 10^{-174}:\\
\;\;\;\;t\_0 - KbT \cdot \frac{NaChar}{mu}\\

\mathbf{elif}\;NaChar \leq 1.66 \cdot 10^{-127}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;NaChar \leq 1.26 \cdot 10^{-96}:\\
\;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} - KbT \cdot \frac{NdChar}{Ec}\\

\mathbf{elif}\;NaChar \leq 17000:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 6 regimes
  2. if NaChar < -6.80000000000000026e-26 or 8.99999999999999929e-174 < NaChar < 1.66000000000000003e-127 or 17000 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 86.5%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 82.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative44.3%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+44.3%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative44.3%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified82.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
    8. Taylor expanded in EDonor around 0 69.3%

      \[\leadsto \frac{NdChar}{\color{blue}{2 + \frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}} \]

    if -6.80000000000000026e-26 < NaChar < -2.7000000000000002e-101

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 78.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative78.3%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified78.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 56.9%

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

    if -2.7000000000000002e-101 < NaChar < -1.59999999999999997e-169

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 54.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in Ec around 0 54.0%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{e^{\frac{EDonor + \left(Vef + mu\right)}{KbT}}}} + \frac{NaChar}{2} \]
    6. Step-by-step derivation
      1. associate-+r+54.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{\left(EDonor + Vef\right) + mu}}{KbT}}} + \frac{NaChar}{2} \]
      2. +-commutative54.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{\left(Vef + EDonor\right)} + mu}{KbT}}} + \frac{NaChar}{2} \]
    7. Simplified54.0%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}} + \frac{NaChar}{2} \]

    if -1.59999999999999997e-169 < NaChar < 8.99999999999999929e-174

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 67.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative67.0%

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

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in mu around inf 69.9%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{-1 \cdot \frac{KbT \cdot NaChar}{mu}} \]
    8. Step-by-step derivation
      1. mul-1-neg69.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{\left(-\frac{KbT \cdot NaChar}{mu}\right)} \]
      2. associate-/l*70.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \left(-\color{blue}{KbT \cdot \frac{NaChar}{mu}}\right) \]
      3. distribute-rgt-neg-in70.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{KbT \cdot \left(-\frac{NaChar}{mu}\right)} \]
    9. Simplified70.0%

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

    if 1.66000000000000003e-127 < NaChar < 1.25999999999999997e-96

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 60.0%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+60.0%

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

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

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Ec around inf 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{KbT \cdot NdChar}{Ec}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \color{blue}{\left(-\frac{KbT \cdot NdChar}{Ec}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate-/l*100.0%

        \[\leadsto \left(-\color{blue}{KbT \cdot \frac{NdChar}{Ec}}\right) + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      3. distribute-rgt-neg-in100.0%

        \[\leadsto \color{blue}{KbT \cdot \left(-\frac{NdChar}{Ec}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified100.0%

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

    if 1.25999999999999997e-96 < NaChar < 17000

    1. Initial program 99.5%

      \[\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. Simplified99.5%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 72.4%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv72.4%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-72.4%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr72.4%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 6 regimes into one program.
  4. Final simplification69.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -6.8 \cdot 10^{-26}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{elif}\;NaChar \leq -2.7 \cdot 10^{-101}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\frac{Ev}{KbT}}\\ \mathbf{elif}\;NaChar \leq -1.6 \cdot 10^{-169}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\ \mathbf{elif}\;NaChar \leq 9 \cdot 10^{-174}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} - KbT \cdot \frac{NaChar}{mu}\\ \mathbf{elif}\;NaChar \leq 1.66 \cdot 10^{-127}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{elif}\;NaChar \leq 1.26 \cdot 10^{-96}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} - KbT \cdot \frac{NdChar}{Ec}\\ \mathbf{elif}\;NaChar \leq 17000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \end{array} \]
  5. Add Preprocessing

Alternative 11: 55.4% accurate, 1.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\frac{Ev}{KbT}}\\ t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ t_2 := t\_1 + NdChar \cdot 0.5\\ \mathbf{if}\;NaChar \leq -4.1 \cdot 10^{-50}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;NaChar \leq -2.25 \cdot 10^{-102}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NaChar \leq 1.55 \cdot 10^{-146}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;t\_1 + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 160000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_2\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
          (/ NaChar (/ Ev KbT))))
        (t_1 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT)))))
        (t_2 (+ t_1 (* NdChar 0.5))))
   (if (<= NaChar -4.1e-50)
     t_2
     (if (<= NaChar -2.25e-102)
       t_0
       (if (<= NaChar 1.55e-146)
         (+
          (/ NdChar (+ 1.0 (exp (/ 1.0 (/ KbT (- (+ (+ Vef EDonor) mu) Ec))))))
          (/ NaChar 2.0))
         (if (<= NaChar 5.7e-129)
           t_0
           (if (<= NaChar 2.7e-97)
             (+ t_1 (* KbT (/ NdChar Vef)))
             (if (<= NaChar 160000.0)
               (+
                (/ NaChar 2.0)
                (*
                 NdChar
                 (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))
               t_2))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (Ev / KbT));
	double t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_2 = t_1 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -4.1e-50) {
		tmp = t_2;
	} else if (NaChar <= -2.25e-102) {
		tmp = t_0;
	} else if (NaChar <= 1.55e-146) {
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NaChar <= 5.7e-129) {
		tmp = t_0;
	} else if (NaChar <= 2.7e-97) {
		tmp = t_1 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 160000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + (nachar / (ev / kbt))
    t_1 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    t_2 = t_1 + (ndchar * 0.5d0)
    if (nachar <= (-4.1d-50)) then
        tmp = t_2
    else if (nachar <= (-2.25d-102)) then
        tmp = t_0
    else if (nachar <= 1.55d-146) then
        tmp = (ndchar / (1.0d0 + exp((1.0d0 / (kbt / (((vef + edonor) + mu) - ec)))))) + (nachar / 2.0d0)
    else if (nachar <= 5.7d-129) then
        tmp = t_0
    else if (nachar <= 2.7d-97) then
        tmp = t_1 + (kbt * (ndchar / vef))
    else if (nachar <= 160000.0d0) then
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    else
        tmp = t_2
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (Ev / KbT));
	double t_1 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_2 = t_1 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -4.1e-50) {
		tmp = t_2;
	} else if (NaChar <= -2.25e-102) {
		tmp = t_0;
	} else if (NaChar <= 1.55e-146) {
		tmp = (NdChar / (1.0 + Math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NaChar <= 5.7e-129) {
		tmp = t_0;
	} else if (NaChar <= 2.7e-97) {
		tmp = t_1 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 160000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (Ev / KbT))
	t_1 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	t_2 = t_1 + (NdChar * 0.5)
	tmp = 0
	if NaChar <= -4.1e-50:
		tmp = t_2
	elif NaChar <= -2.25e-102:
		tmp = t_0
	elif NaChar <= 1.55e-146:
		tmp = (NdChar / (1.0 + math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0)
	elif NaChar <= 5.7e-129:
		tmp = t_0
	elif NaChar <= 2.7e-97:
		tmp = t_1 + (KbT * (NdChar / Vef))
	elif NaChar <= 160000.0:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	else:
		tmp = t_2
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(NaChar / Float64(Ev / KbT)))
	t_1 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	t_2 = Float64(t_1 + Float64(NdChar * 0.5))
	tmp = 0.0
	if (NaChar <= -4.1e-50)
		tmp = t_2;
	elseif (NaChar <= -2.25e-102)
		tmp = t_0;
	elseif (NaChar <= 1.55e-146)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(1.0 / Float64(KbT / Float64(Float64(Float64(Vef + EDonor) + mu) - Ec)))))) + Float64(NaChar / 2.0));
	elseif (NaChar <= 5.7e-129)
		tmp = t_0;
	elseif (NaChar <= 2.7e-97)
		tmp = Float64(t_1 + Float64(KbT * Float64(NdChar / Vef)));
	elseif (NaChar <= 160000.0)
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	else
		tmp = t_2;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (Ev / KbT));
	t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	t_2 = t_1 + (NdChar * 0.5);
	tmp = 0.0;
	if (NaChar <= -4.1e-50)
		tmp = t_2;
	elseif (NaChar <= -2.25e-102)
		tmp = t_0;
	elseif (NaChar <= 1.55e-146)
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	elseif (NaChar <= 5.7e-129)
		tmp = t_0;
	elseif (NaChar <= 2.7e-97)
		tmp = t_1 + (KbT * (NdChar / Vef));
	elseif (NaChar <= 160000.0)
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(Ev / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 + N[(NdChar * 0.5), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -4.1e-50], t$95$2, If[LessEqual[NaChar, -2.25e-102], t$95$0, If[LessEqual[NaChar, 1.55e-146], N[(N[(NdChar / N[(1.0 + N[Exp[N[(1.0 / N[(KbT / N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 5.7e-129], t$95$0, If[LessEqual[NaChar, 2.7e-97], N[(t$95$1 + N[(KbT * N[(NdChar / Vef), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 160000.0], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$2]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\frac{Ev}{KbT}}\\
t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
t_2 := t\_1 + NdChar \cdot 0.5\\
\mathbf{if}\;NaChar \leq -4.1 \cdot 10^{-50}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;NaChar \leq -2.25 \cdot 10^{-102}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NaChar \leq 1.55 \cdot 10^{-146}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\

\mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\
\;\;\;\;t\_1 + KbT \cdot \frac{NdChar}{Vef}\\

\mathbf{elif}\;NaChar \leq 160000:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_2\\


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if NaChar < -4.09999999999999985e-50 or 1.6e5 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 82.7%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/35.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg35.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified82.7%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in Ec around 0 66.6%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]

    if -4.09999999999999985e-50 < NaChar < -2.25e-102 or 1.5499999999999999e-146 < NaChar < 5.7000000000000001e-129

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 85.8%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative85.8%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified85.8%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 62.8%

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

    if -2.25e-102 < NaChar < 1.5499999999999999e-146

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 64.1%

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

    if 5.7000000000000001e-129 < NaChar < 2.69999999999999985e-97

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Vef around inf 83.7%

      \[\leadsto \color{blue}{\frac{KbT \cdot NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-/l*83.6%

        \[\leadsto \color{blue}{KbT \cdot \frac{NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified83.6%

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

    if 2.69999999999999985e-97 < NaChar < 1.6e5

    1. Initial program 99.5%

      \[\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. Simplified99.5%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 72.4%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv72.4%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-72.4%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr72.4%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 5 regimes into one program.
  4. Final simplification66.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -4.1 \cdot 10^{-50}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{elif}\;NaChar \leq -2.25 \cdot 10^{-102}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\frac{Ev}{KbT}}\\ \mathbf{elif}\;NaChar \leq 1.55 \cdot 10^{-146}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\frac{Ev}{KbT}}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 160000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \end{array} \]
  5. Add Preprocessing

Alternative 12: 62.7% accurate, 1.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\ t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ \mathbf{if}\;NaChar \leq -4.5 \cdot 10^{-12}:\\ \;\;\;\;t\_1 + \frac{NdChar}{1 + \left(1 + \frac{mu}{KbT}\right)}\\ \mathbf{elif}\;NaChar \leq 5.6 \cdot 10^{-129}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NaChar \leq 1.2 \cdot 10^{-27}:\\ \;\;\;\;t\_1 + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{elif}\;NaChar \leq 850000:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_1 + \frac{NdChar}{1 + \left(1 + \frac{EDonor}{KbT}\right)}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
          (/ NaChar (+ 2.0 (+ (/ EAccept KbT) (+ (/ Vef KbT) (/ Ev KbT)))))))
        (t_1 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))))
   (if (<= NaChar -4.5e-12)
     (+ t_1 (/ NdChar (+ 1.0 (+ 1.0 (/ mu KbT)))))
     (if (<= NaChar 5.6e-129)
       t_0
       (if (<= NaChar 1.2e-27)
         (+ t_1 (/ NdChar (- 1.0 (/ Ec KbT))))
         (if (<= NaChar 850000.0)
           t_0
           (+ t_1 (/ NdChar (+ 1.0 (+ 1.0 (/ EDonor KbT)))))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))));
	double t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double tmp;
	if (NaChar <= -4.5e-12) {
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (mu / KbT))));
	} else if (NaChar <= 5.6e-129) {
		tmp = t_0;
	} else if (NaChar <= 1.2e-27) {
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)));
	} else if (NaChar <= 850000.0) {
		tmp = t_0;
	} else {
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + (nachar / (2.0d0 + ((eaccept / kbt) + ((vef / kbt) + (ev / kbt)))))
    t_1 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    if (nachar <= (-4.5d-12)) then
        tmp = t_1 + (ndchar / (1.0d0 + (1.0d0 + (mu / kbt))))
    else if (nachar <= 5.6d-129) then
        tmp = t_0
    else if (nachar <= 1.2d-27) then
        tmp = t_1 + (ndchar / (1.0d0 - (ec / kbt)))
    else if (nachar <= 850000.0d0) then
        tmp = t_0
    else
        tmp = t_1 + (ndchar / (1.0d0 + (1.0d0 + (edonor / kbt))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))));
	double t_1 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double tmp;
	if (NaChar <= -4.5e-12) {
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (mu / KbT))));
	} else if (NaChar <= 5.6e-129) {
		tmp = t_0;
	} else if (NaChar <= 1.2e-27) {
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)));
	} else if (NaChar <= 850000.0) {
		tmp = t_0;
	} else {
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))))
	t_1 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	tmp = 0
	if NaChar <= -4.5e-12:
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (mu / KbT))))
	elif NaChar <= 5.6e-129:
		tmp = t_0
	elif NaChar <= 1.2e-27:
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)))
	elif NaChar <= 850000.0:
		tmp = t_0
	else:
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(NaChar / Float64(2.0 + Float64(Float64(EAccept / KbT) + Float64(Float64(Vef / KbT) + Float64(Ev / KbT))))))
	t_1 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	tmp = 0.0
	if (NaChar <= -4.5e-12)
		tmp = Float64(t_1 + Float64(NdChar / Float64(1.0 + Float64(1.0 + Float64(mu / KbT)))));
	elseif (NaChar <= 5.6e-129)
		tmp = t_0;
	elseif (NaChar <= 1.2e-27)
		tmp = Float64(t_1 + Float64(NdChar / Float64(1.0 - Float64(Ec / KbT))));
	elseif (NaChar <= 850000.0)
		tmp = t_0;
	else
		tmp = Float64(t_1 + Float64(NdChar / Float64(1.0 + Float64(1.0 + Float64(EDonor / KbT)))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (2.0 + ((EAccept / KbT) + ((Vef / KbT) + (Ev / KbT)))));
	t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	tmp = 0.0;
	if (NaChar <= -4.5e-12)
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (mu / KbT))));
	elseif (NaChar <= 5.6e-129)
		tmp = t_0;
	elseif (NaChar <= 1.2e-27)
		tmp = t_1 + (NdChar / (1.0 - (Ec / KbT)));
	elseif (NaChar <= 850000.0)
		tmp = t_0;
	else
		tmp = t_1 + (NdChar / (1.0 + (1.0 + (EDonor / KbT))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(2.0 + N[(N[(EAccept / KbT), $MachinePrecision] + N[(N[(Vef / KbT), $MachinePrecision] + N[(Ev / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -4.5e-12], N[(t$95$1 + N[(NdChar / N[(1.0 + N[(1.0 + N[(mu / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 5.6e-129], t$95$0, If[LessEqual[NaChar, 1.2e-27], N[(t$95$1 + N[(NdChar / N[(1.0 - N[(Ec / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 850000.0], t$95$0, N[(t$95$1 + N[(NdChar / N[(1.0 + N[(1.0 + N[(EDonor / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\
t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
\mathbf{if}\;NaChar \leq -4.5 \cdot 10^{-12}:\\
\;\;\;\;t\_1 + \frac{NdChar}{1 + \left(1 + \frac{mu}{KbT}\right)}\\

\mathbf{elif}\;NaChar \leq 5.6 \cdot 10^{-129}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NaChar \leq 1.2 \cdot 10^{-27}:\\
\;\;\;\;t\_1 + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\

\mathbf{elif}\;NaChar \leq 850000:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;t\_1 + \frac{NdChar}{1 + \left(1 + \frac{EDonor}{KbT}\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NaChar < -4.49999999999999981e-12

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in mu around inf 76.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{mu}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 72.5%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(1 + \frac{mu}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. +-commutative72.5%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\frac{mu}{KbT} + 1\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Simplified72.5%

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

    if -4.49999999999999981e-12 < NaChar < 5.5999999999999998e-129 or 1.20000000000000001e-27 < NaChar < 8.5e5

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 69.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative69.0%

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

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in mu around 0 72.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{\frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)}} \]
    8. Step-by-step derivation
      1. +-commutative72.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)} \]
    9. Simplified72.1%

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

    if 5.5999999999999998e-129 < NaChar < 1.20000000000000001e-27

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 56.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+56.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative56.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified56.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Ec around inf 76.6%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{-1 \cdot \frac{Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-*r/76.6%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\frac{-1 \cdot Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. mul-1-neg76.6%

        \[\leadsto \frac{NdChar}{1 + \frac{\color{blue}{-Ec}}{KbT}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified76.6%

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

    if 8.5e5 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 84.7%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in EDonor around 0 76.2%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(1 + \frac{EDonor}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. +-commutative76.2%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\frac{EDonor}{KbT} + 1\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Simplified76.2%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\frac{EDonor}{KbT} + 1\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification73.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -4.5 \cdot 10^{-12}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \left(1 + \frac{mu}{KbT}\right)}\\ \mathbf{elif}\;NaChar \leq 5.6 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\ \mathbf{elif}\;NaChar \leq 1.2 \cdot 10^{-27}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{elif}\;NaChar \leq 850000:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \left(1 + \frac{EDonor}{KbT}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 13: 56.5% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \frac{mu}{KbT}}\\ \mathbf{if}\;NdChar \leq -1.65 \cdot 10^{+112}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq -1.6 \cdot 10^{-270}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{elif}\;NdChar \leq 1.9 \cdot 10^{+42}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NdChar \leq 3.2 \cdot 10^{+78}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} - KbT \cdot \frac{NaChar}{mu}\\ \mathbf{elif}\;NdChar \leq 2 \cdot 10^{+176}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
          (/ NdChar (+ 1.0 (/ mu KbT))))))
   (if (<= NdChar -1.65e+112)
     (+
      (/ NdChar (+ 1.0 (exp (/ 1.0 (/ KbT (- (+ (+ Vef EDonor) mu) Ec))))))
      (/ NaChar 2.0))
     (if (<= NdChar -1.6e-270)
       (+
        (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT))))
        (/ NdChar (+ (/ EDonor KbT) 2.0)))
       (if (<= NdChar 1.9e+42)
         t_0
         (if (<= NdChar 3.2e+78)
           (-
            (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
            (* KbT (/ NaChar mu)))
           (if (<= NdChar 2e+176)
             t_0
             (+
              (/ NaChar 2.0)
              (*
               NdChar
               (/
                1.0
                (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT)))))))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + (mu / KbT)));
	double tmp;
	if (NdChar <= -1.65e+112) {
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= -1.6e-270) {
		tmp = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	} else if (NdChar <= 1.9e+42) {
		tmp = t_0;
	} else if (NdChar <= 3.2e+78) {
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) - (KbT * (NaChar / mu));
	} else if (NdChar <= 2e+176) {
		tmp = t_0;
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: tmp
    t_0 = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (ndchar / (1.0d0 + (mu / kbt)))
    if (ndchar <= (-1.65d+112)) then
        tmp = (ndchar / (1.0d0 + exp((1.0d0 / (kbt / (((vef + edonor) + mu) - ec)))))) + (nachar / 2.0d0)
    else if (ndchar <= (-1.6d-270)) then
        tmp = (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt)))) + (ndchar / ((edonor / kbt) + 2.0d0))
    else if (ndchar <= 1.9d+42) then
        tmp = t_0
    else if (ndchar <= 3.2d+78) then
        tmp = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) - (kbt * (nachar / mu))
    else if (ndchar <= 2d+176) then
        tmp = t_0
    else
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + (mu / KbT)));
	double tmp;
	if (NdChar <= -1.65e+112) {
		tmp = (NdChar / (1.0 + Math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= -1.6e-270) {
		tmp = (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	} else if (NdChar <= 1.9e+42) {
		tmp = t_0;
	} else if (NdChar <= 3.2e+78) {
		tmp = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) - (KbT * (NaChar / mu));
	} else if (NdChar <= 2e+176) {
		tmp = t_0;
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + (mu / KbT)))
	tmp = 0
	if NdChar <= -1.65e+112:
		tmp = (NdChar / (1.0 + math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0)
	elif NdChar <= -1.6e-270:
		tmp = (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0))
	elif NdChar <= 1.9e+42:
		tmp = t_0
	elif NdChar <= 3.2e+78:
		tmp = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) - (KbT * (NaChar / mu))
	elif NdChar <= 2e+176:
		tmp = t_0
	else:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(NdChar / Float64(1.0 + Float64(mu / KbT))))
	tmp = 0.0
	if (NdChar <= -1.65e+112)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(1.0 / Float64(KbT / Float64(Float64(Float64(Vef + EDonor) + mu) - Ec)))))) + Float64(NaChar / 2.0));
	elseif (NdChar <= -1.6e-270)
		tmp = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))) + Float64(NdChar / Float64(Float64(EDonor / KbT) + 2.0)));
	elseif (NdChar <= 1.9e+42)
		tmp = t_0;
	elseif (NdChar <= 3.2e+78)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) - Float64(KbT * Float64(NaChar / mu)));
	elseif (NdChar <= 2e+176)
		tmp = t_0;
	else
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + (mu / KbT)));
	tmp = 0.0;
	if (NdChar <= -1.65e+112)
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	elseif (NdChar <= -1.6e-270)
		tmp = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	elseif (NdChar <= 1.9e+42)
		tmp = t_0;
	elseif (NdChar <= 3.2e+78)
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) - (KbT * (NaChar / mu));
	elseif (NdChar <= 2e+176)
		tmp = t_0;
	else
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(1.0 + N[(mu / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NdChar, -1.65e+112], N[(N[(NdChar / N[(1.0 + N[Exp[N[(1.0 / N[(KbT / N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, -1.6e-270], N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(N[(EDonor / KbT), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 1.9e+42], t$95$0, If[LessEqual[NdChar, 3.2e+78], N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(KbT * N[(NaChar / mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 2e+176], t$95$0, N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \frac{mu}{KbT}}\\
\mathbf{if}\;NdChar \leq -1.65 \cdot 10^{+112}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\

\mathbf{elif}\;NdChar \leq -1.6 \cdot 10^{-270}:\\
\;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\

\mathbf{elif}\;NdChar \leq 1.9 \cdot 10^{+42}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NdChar \leq 3.2 \cdot 10^{+78}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} - KbT \cdot \frac{NaChar}{mu}\\

\mathbf{elif}\;NdChar \leq 2 \cdot 10^{+176}:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if NdChar < -1.64999999999999995e112

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 69.9%

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

    if -1.64999999999999995e112 < NdChar < -1.59999999999999994e-270

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 81.3%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 77.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative49.8%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+49.8%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative49.8%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified77.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
    8. Taylor expanded in EDonor around 0 70.6%

      \[\leadsto \frac{NdChar}{\color{blue}{2 + \frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}} \]

    if -1.59999999999999994e-270 < NdChar < 1.8999999999999999e42 or 3.19999999999999994e78 < NdChar < 2e176

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 60.3%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+60.3%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative60.3%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified60.3%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in mu around inf 68.7%

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

    if 1.8999999999999999e42 < NdChar < 3.19999999999999994e78

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 84.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative84.7%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified84.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in mu around inf 68.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{-1 \cdot \frac{KbT \cdot NaChar}{mu}} \]
    8. Step-by-step derivation
      1. mul-1-neg68.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{\left(-\frac{KbT \cdot NaChar}{mu}\right)} \]
      2. associate-/l*68.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \left(-\color{blue}{KbT \cdot \frac{NaChar}{mu}}\right) \]
      3. distribute-rgt-neg-in68.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{KbT \cdot \left(-\frac{NaChar}{mu}\right)} \]
    9. Simplified68.6%

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

    if 2e176 < NdChar

    1. Initial program 99.7%

      \[\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. Simplified99.7%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 71.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv71.7%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-71.7%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr71.7%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 5 regimes into one program.
  4. Final simplification69.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NdChar \leq -1.65 \cdot 10^{+112}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq -1.6 \cdot 10^{-270}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{elif}\;NdChar \leq 1.9 \cdot 10^{+42}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \frac{mu}{KbT}}\\ \mathbf{elif}\;NdChar \leq 3.2 \cdot 10^{+78}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} - KbT \cdot \frac{NaChar}{mu}\\ \mathbf{elif}\;NdChar \leq 2 \cdot 10^{+176}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \frac{mu}{KbT}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 14: 58.5% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \frac{EDonor}{KbT}}\\ t_1 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}\\ \mathbf{if}\;NdChar \leq -2.8 \cdot 10^{+70}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq 1.9 \cdot 10^{+42}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NdChar \leq 3.5 \cdot 10^{+78}:\\ \;\;\;\;t\_1 - KbT \cdot \frac{NaChar}{mu}\\ \mathbf{elif}\;NdChar \leq 9.2 \cdot 10^{+166}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NdChar \leq 6.8 \cdot 10^{+213}:\\ \;\;\;\;t\_1 + \frac{NaChar}{\frac{Ev}{KbT}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
          (/ NdChar (+ 1.0 (/ EDonor KbT)))))
        (t_1 (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))))
   (if (<= NdChar -2.8e+70)
     (+
      (/ NdChar (+ 1.0 (exp (/ 1.0 (/ KbT (- (+ (+ Vef EDonor) mu) Ec))))))
      (/ NaChar 2.0))
     (if (<= NdChar 1.9e+42)
       t_0
       (if (<= NdChar 3.5e+78)
         (- t_1 (* KbT (/ NaChar mu)))
         (if (<= NdChar 9.2e+166)
           t_0
           (if (<= NdChar 6.8e+213)
             (+ t_1 (/ NaChar (/ Ev KbT)))
             (+
              (/ NaChar 2.0)
              (*
               NdChar
               (/
                1.0
                (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT)))))))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + (EDonor / KbT)));
	double t_1 = NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)));
	double tmp;
	if (NdChar <= -2.8e+70) {
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= 1.9e+42) {
		tmp = t_0;
	} else if (NdChar <= 3.5e+78) {
		tmp = t_1 - (KbT * (NaChar / mu));
	} else if (NdChar <= 9.2e+166) {
		tmp = t_0;
	} else if (NdChar <= 6.8e+213) {
		tmp = t_1 + (NaChar / (Ev / KbT));
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (ndchar / (1.0d0 + (edonor / kbt)))
    t_1 = ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))
    if (ndchar <= (-2.8d+70)) then
        tmp = (ndchar / (1.0d0 + exp((1.0d0 / (kbt / (((vef + edonor) + mu) - ec)))))) + (nachar / 2.0d0)
    else if (ndchar <= 1.9d+42) then
        tmp = t_0
    else if (ndchar <= 3.5d+78) then
        tmp = t_1 - (kbt * (nachar / mu))
    else if (ndchar <= 9.2d+166) then
        tmp = t_0
    else if (ndchar <= 6.8d+213) then
        tmp = t_1 + (nachar / (ev / kbt))
    else
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + (EDonor / KbT)));
	double t_1 = NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)));
	double tmp;
	if (NdChar <= -2.8e+70) {
		tmp = (NdChar / (1.0 + Math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= 1.9e+42) {
		tmp = t_0;
	} else if (NdChar <= 3.5e+78) {
		tmp = t_1 - (KbT * (NaChar / mu));
	} else if (NdChar <= 9.2e+166) {
		tmp = t_0;
	} else if (NdChar <= 6.8e+213) {
		tmp = t_1 + (NaChar / (Ev / KbT));
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + (EDonor / KbT)))
	t_1 = NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))
	tmp = 0
	if NdChar <= -2.8e+70:
		tmp = (NdChar / (1.0 + math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0)
	elif NdChar <= 1.9e+42:
		tmp = t_0
	elif NdChar <= 3.5e+78:
		tmp = t_1 - (KbT * (NaChar / mu))
	elif NdChar <= 9.2e+166:
		tmp = t_0
	elif NdChar <= 6.8e+213:
		tmp = t_1 + (NaChar / (Ev / KbT))
	else:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(NdChar / Float64(1.0 + Float64(EDonor / KbT))))
	t_1 = Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT))))
	tmp = 0.0
	if (NdChar <= -2.8e+70)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(1.0 / Float64(KbT / Float64(Float64(Float64(Vef + EDonor) + mu) - Ec)))))) + Float64(NaChar / 2.0));
	elseif (NdChar <= 1.9e+42)
		tmp = t_0;
	elseif (NdChar <= 3.5e+78)
		tmp = Float64(t_1 - Float64(KbT * Float64(NaChar / mu)));
	elseif (NdChar <= 9.2e+166)
		tmp = t_0;
	elseif (NdChar <= 6.8e+213)
		tmp = Float64(t_1 + Float64(NaChar / Float64(Ev / KbT)));
	else
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 + (EDonor / KbT)));
	t_1 = NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)));
	tmp = 0.0;
	if (NdChar <= -2.8e+70)
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	elseif (NdChar <= 1.9e+42)
		tmp = t_0;
	elseif (NdChar <= 3.5e+78)
		tmp = t_1 - (KbT * (NaChar / mu));
	elseif (NdChar <= 9.2e+166)
		tmp = t_0;
	elseif (NdChar <= 6.8e+213)
		tmp = t_1 + (NaChar / (Ev / KbT));
	else
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(1.0 + N[(EDonor / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NdChar, -2.8e+70], N[(N[(NdChar / N[(1.0 + N[Exp[N[(1.0 / N[(KbT / N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 1.9e+42], t$95$0, If[LessEqual[NdChar, 3.5e+78], N[(t$95$1 - N[(KbT * N[(NaChar / mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 9.2e+166], t$95$0, If[LessEqual[NdChar, 6.8e+213], N[(t$95$1 + N[(NaChar / N[(Ev / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \frac{EDonor}{KbT}}\\
t_1 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}\\
\mathbf{if}\;NdChar \leq -2.8 \cdot 10^{+70}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\

\mathbf{elif}\;NdChar \leq 1.9 \cdot 10^{+42}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NdChar \leq 3.5 \cdot 10^{+78}:\\
\;\;\;\;t\_1 - KbT \cdot \frac{NaChar}{mu}\\

\mathbf{elif}\;NdChar \leq 9.2 \cdot 10^{+166}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NdChar \leq 6.8 \cdot 10^{+213}:\\
\;\;\;\;t\_1 + \frac{NaChar}{\frac{Ev}{KbT}}\\

\mathbf{else}:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if NdChar < -2.7999999999999999e70

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.5%

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

    if -2.7999999999999999e70 < NdChar < 1.8999999999999999e42 or 3.5000000000000001e78 < NdChar < 9.2000000000000003e166

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.6%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.6%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.6%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.6%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in EDonor around inf 67.1%

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

    if 1.8999999999999999e42 < NdChar < 3.5000000000000001e78

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 84.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative84.7%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified84.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in mu around inf 68.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{-1 \cdot \frac{KbT \cdot NaChar}{mu}} \]
    8. Step-by-step derivation
      1. mul-1-neg68.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{\left(-\frac{KbT \cdot NaChar}{mu}\right)} \]
      2. associate-/l*68.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \left(-\color{blue}{KbT \cdot \frac{NaChar}{mu}}\right) \]
      3. distribute-rgt-neg-in68.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \color{blue}{KbT \cdot \left(-\frac{NaChar}{mu}\right)} \]
    9. Simplified68.6%

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

    if 9.2000000000000003e166 < NdChar < 6.79999999999999983e213

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 75.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative75.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified75.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 39.6%

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

    if 6.79999999999999983e213 < NdChar

    1. Initial program 99.6%

      \[\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. Simplified99.6%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 71.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv71.5%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-71.5%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr71.5%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 5 regimes into one program.
  4. Final simplification66.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NdChar \leq -2.8 \cdot 10^{+70}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq 1.9 \cdot 10^{+42}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \frac{EDonor}{KbT}}\\ \mathbf{elif}\;NdChar \leq 3.5 \cdot 10^{+78}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} - KbT \cdot \frac{NaChar}{mu}\\ \mathbf{elif}\;NdChar \leq 9.2 \cdot 10^{+166}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 + \frac{EDonor}{KbT}}\\ \mathbf{elif}\;NdChar \leq 6.8 \cdot 10^{+213}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\frac{Ev}{KbT}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 15: 60.0% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{if}\;NdChar \leq -1.06 \cdot 10^{+71}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq 1.85 \cdot 10^{+42}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NdChar \leq 4.8 \cdot 10^{+110}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\frac{EAccept}{KbT}}\\ \mathbf{elif}\;NdChar \leq 1.85 \cdot 10^{+150}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
          (/ NdChar (- 1.0 (/ Ec KbT))))))
   (if (<= NdChar -1.06e+71)
     (+
      (/ NdChar (+ 1.0 (exp (/ 1.0 (/ KbT (- (+ (+ Vef EDonor) mu) Ec))))))
      (/ NaChar 2.0))
     (if (<= NdChar 1.85e+42)
       t_0
       (if (<= NdChar 4.8e+110)
         (+
          (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
          (/ NaChar (/ EAccept KbT)))
         (if (<= NdChar 1.85e+150)
           t_0
           (+
            (/ NaChar 2.0)
            (*
             NdChar
             (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 - (Ec / KbT)));
	double tmp;
	if (NdChar <= -1.06e+71) {
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= 1.85e+42) {
		tmp = t_0;
	} else if (NdChar <= 4.8e+110) {
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (EAccept / KbT));
	} else if (NdChar <= 1.85e+150) {
		tmp = t_0;
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: tmp
    t_0 = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (ndchar / (1.0d0 - (ec / kbt)))
    if (ndchar <= (-1.06d+71)) then
        tmp = (ndchar / (1.0d0 + exp((1.0d0 / (kbt / (((vef + edonor) + mu) - ec)))))) + (nachar / 2.0d0)
    else if (ndchar <= 1.85d+42) then
        tmp = t_0
    else if (ndchar <= 4.8d+110) then
        tmp = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + (nachar / (eaccept / kbt))
    else if (ndchar <= 1.85d+150) then
        tmp = t_0
    else
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 - (Ec / KbT)));
	double tmp;
	if (NdChar <= -1.06e+71) {
		tmp = (NdChar / (1.0 + Math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= 1.85e+42) {
		tmp = t_0;
	} else if (NdChar <= 4.8e+110) {
		tmp = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (EAccept / KbT));
	} else if (NdChar <= 1.85e+150) {
		tmp = t_0;
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 - (Ec / KbT)))
	tmp = 0
	if NdChar <= -1.06e+71:
		tmp = (NdChar / (1.0 + math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0)
	elif NdChar <= 1.85e+42:
		tmp = t_0
	elif NdChar <= 4.8e+110:
		tmp = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (EAccept / KbT))
	elif NdChar <= 1.85e+150:
		tmp = t_0
	else:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(NdChar / Float64(1.0 - Float64(Ec / KbT))))
	tmp = 0.0
	if (NdChar <= -1.06e+71)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(1.0 / Float64(KbT / Float64(Float64(Float64(Vef + EDonor) + mu) - Ec)))))) + Float64(NaChar / 2.0));
	elseif (NdChar <= 1.85e+42)
		tmp = t_0;
	elseif (NdChar <= 4.8e+110)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(NaChar / Float64(EAccept / KbT)));
	elseif (NdChar <= 1.85e+150)
		tmp = t_0;
	else
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 - (Ec / KbT)));
	tmp = 0.0;
	if (NdChar <= -1.06e+71)
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	elseif (NdChar <= 1.85e+42)
		tmp = t_0;
	elseif (NdChar <= 4.8e+110)
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / (EAccept / KbT));
	elseif (NdChar <= 1.85e+150)
		tmp = t_0;
	else
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(1.0 - N[(Ec / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NdChar, -1.06e+71], N[(N[(NdChar / N[(1.0 + N[Exp[N[(1.0 / N[(KbT / N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 1.85e+42], t$95$0, If[LessEqual[NdChar, 4.8e+110], N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(EAccept / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 1.85e+150], t$95$0, N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\
\mathbf{if}\;NdChar \leq -1.06 \cdot 10^{+71}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\

\mathbf{elif}\;NdChar \leq 1.85 \cdot 10^{+42}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NdChar \leq 4.8 \cdot 10^{+110}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\frac{EAccept}{KbT}}\\

\mathbf{elif}\;NdChar \leq 1.85 \cdot 10^{+150}:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NdChar < -1.06e71

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.5%

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

    if -1.06e71 < NdChar < 1.84999999999999998e42 or 4.80000000000000025e110 < NdChar < 1.84999999999999994e150

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 68.4%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+68.4%

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

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

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Ec around inf 73.1%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{-1 \cdot \frac{Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-*r/73.1%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\frac{-1 \cdot Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. mul-1-neg73.1%

        \[\leadsto \frac{NdChar}{1 + \frac{\color{blue}{-Ec}}{KbT}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified73.1%

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

    if 1.84999999999999998e42 < NdChar < 4.80000000000000025e110

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 84.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative84.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified84.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in EAccept around inf 57.4%

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

    if 1.84999999999999994e150 < NdChar

    1. Initial program 99.7%

      \[\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. Simplified99.7%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 67.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv67.1%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-67.1%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr67.1%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification69.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NdChar \leq -1.06 \cdot 10^{+71}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq 1.85 \cdot 10^{+42}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{elif}\;NdChar \leq 4.8 \cdot 10^{+110}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\frac{EAccept}{KbT}}\\ \mathbf{elif}\;NdChar \leq 1.85 \cdot 10^{+150}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 16: 60.1% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{if}\;NdChar \leq -1.25 \cdot 10^{+70}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq 3.9 \cdot 10^{+40}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NdChar \leq 1.3 \cdot 10^{+106}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right) + \left(2 + \frac{EAccept}{KbT}\right)}\\ \mathbf{elif}\;NdChar \leq 1.85 \cdot 10^{+150}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
          (/ NdChar (- 1.0 (/ Ec KbT))))))
   (if (<= NdChar -1.25e+70)
     (+
      (/ NdChar (+ 1.0 (exp (/ 1.0 (/ KbT (- (+ (+ Vef EDonor) mu) Ec))))))
      (/ NaChar 2.0))
     (if (<= NdChar 3.9e+40)
       t_0
       (if (<= NdChar 1.3e+106)
         (+
          (/ NdChar (+ 1.0 (exp (/ EDonor KbT))))
          (/ NaChar (+ (+ (/ Vef KbT) (/ Ev KbT)) (+ 2.0 (/ EAccept KbT)))))
         (if (<= NdChar 1.85e+150)
           t_0
           (+
            (/ NaChar 2.0)
            (*
             NdChar
             (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 - (Ec / KbT)));
	double tmp;
	if (NdChar <= -1.25e+70) {
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= 3.9e+40) {
		tmp = t_0;
	} else if (NdChar <= 1.3e+106) {
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (((Vef / KbT) + (Ev / KbT)) + (2.0 + (EAccept / KbT))));
	} else if (NdChar <= 1.85e+150) {
		tmp = t_0;
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: tmp
    t_0 = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (ndchar / (1.0d0 - (ec / kbt)))
    if (ndchar <= (-1.25d+70)) then
        tmp = (ndchar / (1.0d0 + exp((1.0d0 / (kbt / (((vef + edonor) + mu) - ec)))))) + (nachar / 2.0d0)
    else if (ndchar <= 3.9d+40) then
        tmp = t_0
    else if (ndchar <= 1.3d+106) then
        tmp = (ndchar / (1.0d0 + exp((edonor / kbt)))) + (nachar / (((vef / kbt) + (ev / kbt)) + (2.0d0 + (eaccept / kbt))))
    else if (ndchar <= 1.85d+150) then
        tmp = t_0
    else
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 - (Ec / KbT)));
	double tmp;
	if (NdChar <= -1.25e+70) {
		tmp = (NdChar / (1.0 + Math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NdChar <= 3.9e+40) {
		tmp = t_0;
	} else if (NdChar <= 1.3e+106) {
		tmp = (NdChar / (1.0 + Math.exp((EDonor / KbT)))) + (NaChar / (((Vef / KbT) + (Ev / KbT)) + (2.0 + (EAccept / KbT))));
	} else if (NdChar <= 1.85e+150) {
		tmp = t_0;
	} else {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 - (Ec / KbT)))
	tmp = 0
	if NdChar <= -1.25e+70:
		tmp = (NdChar / (1.0 + math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0)
	elif NdChar <= 3.9e+40:
		tmp = t_0
	elif NdChar <= 1.3e+106:
		tmp = (NdChar / (1.0 + math.exp((EDonor / KbT)))) + (NaChar / (((Vef / KbT) + (Ev / KbT)) + (2.0 + (EAccept / KbT))))
	elif NdChar <= 1.85e+150:
		tmp = t_0
	else:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(NdChar / Float64(1.0 - Float64(Ec / KbT))))
	tmp = 0.0
	if (NdChar <= -1.25e+70)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(1.0 / Float64(KbT / Float64(Float64(Float64(Vef + EDonor) + mu) - Ec)))))) + Float64(NaChar / 2.0));
	elseif (NdChar <= 3.9e+40)
		tmp = t_0;
	elseif (NdChar <= 1.3e+106)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + Float64(NaChar / Float64(Float64(Float64(Vef / KbT) + Float64(Ev / KbT)) + Float64(2.0 + Float64(EAccept / KbT)))));
	elseif (NdChar <= 1.85e+150)
		tmp = t_0;
	else
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar / (1.0 - (Ec / KbT)));
	tmp = 0.0;
	if (NdChar <= -1.25e+70)
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	elseif (NdChar <= 3.9e+40)
		tmp = t_0;
	elseif (NdChar <= 1.3e+106)
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (((Vef / KbT) + (Ev / KbT)) + (2.0 + (EAccept / KbT))));
	elseif (NdChar <= 1.85e+150)
		tmp = t_0;
	else
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(1.0 - N[(Ec / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NdChar, -1.25e+70], N[(N[(NdChar / N[(1.0 + N[Exp[N[(1.0 / N[(KbT / N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 3.9e+40], t$95$0, If[LessEqual[NdChar, 1.3e+106], N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(N[(N[(Vef / KbT), $MachinePrecision] + N[(Ev / KbT), $MachinePrecision]), $MachinePrecision] + N[(2.0 + N[(EAccept / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 1.85e+150], t$95$0, N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\
\mathbf{if}\;NdChar \leq -1.25 \cdot 10^{+70}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\

\mathbf{elif}\;NdChar \leq 3.9 \cdot 10^{+40}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NdChar \leq 1.3 \cdot 10^{+106}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right) + \left(2 + \frac{EAccept}{KbT}\right)}\\

\mathbf{elif}\;NdChar \leq 1.85 \cdot 10^{+150}:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NdChar < -1.2500000000000001e70

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.5%

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

    if -1.2500000000000001e70 < NdChar < 3.9000000000000001e40 or 1.3000000000000001e106 < NdChar < 1.84999999999999994e150

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 68.2%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+68.2%

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

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified68.2%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Ec around inf 72.8%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{-1 \cdot \frac{Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-*r/72.8%

        \[\leadsto \frac{NdChar}{1 + \color{blue}{\frac{-1 \cdot Ec}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. mul-1-neg72.8%

        \[\leadsto \frac{NdChar}{1 + \frac{\color{blue}{-Ec}}{KbT}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified72.8%

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

    if 3.9000000000000001e40 < NdChar < 1.3000000000000001e106

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 75.2%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 75.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative8.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+8.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative8.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified75.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
    8. Taylor expanded in KbT around inf 69.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)}} \]
    9. Step-by-step derivation
      1. +-commutative69.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{\left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right) + 2}} \]
      2. +-commutative69.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{\left(\left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right) + \frac{EAccept}{KbT}\right)} + 2} \]
      3. associate-+l+69.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{\left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right) + \left(\frac{EAccept}{KbT} + 2\right)}} \]
    10. Simplified69.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{\left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right) + \left(\frac{EAccept}{KbT} + 2\right)}} \]

    if 1.84999999999999994e150 < NdChar

    1. Initial program 99.7%

      \[\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. Simplified99.7%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 67.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv67.1%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-67.1%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr67.1%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification70.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NdChar \leq -1.25 \cdot 10^{+70}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NdChar \leq 3.9 \cdot 10^{+40}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{elif}\;NdChar \leq 1.3 \cdot 10^{+106}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right) + \left(2 + \frac{EAccept}{KbT}\right)}\\ \mathbf{elif}\;NdChar \leq 1.85 \cdot 10^{+150}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar}{1 - \frac{Ec}{KbT}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 17: 56.3% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ t_1 := t\_0 + NdChar \cdot 0.5\\ \mathbf{if}\;NaChar \leq -6.8 \cdot 10^{-28}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;t\_0 + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 58000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT)))))
        (t_1 (+ t_0 (* NdChar 0.5))))
   (if (<= NaChar -6.8e-28)
     t_1
     (if (<= NaChar 5.7e-129)
       (+
        (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
        (/ NaChar 2.0))
       (if (<= NaChar 2.7e-97)
         (+ t_0 (* KbT (/ NdChar Vef)))
         (if (<= NaChar 58000.0)
           (+
            (/ NaChar 2.0)
            (*
             NdChar
             (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))
           t_1))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_1 = t_0 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -6.8e-28) {
		tmp = t_1;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0);
	} else if (NaChar <= 2.7e-97) {
		tmp = t_0 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 58000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    t_1 = t_0 + (ndchar * 0.5d0)
    if (nachar <= (-6.8d-28)) then
        tmp = t_1
    else if (nachar <= 5.7d-129) then
        tmp = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + (nachar / 2.0d0)
    else if (nachar <= 2.7d-97) then
        tmp = t_0 + (kbt * (ndchar / vef))
    else if (nachar <= 58000.0d0) then
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_1 = t_0 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -6.8e-28) {
		tmp = t_1;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0);
	} else if (NaChar <= 2.7e-97) {
		tmp = t_0 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 58000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	t_1 = t_0 + (NdChar * 0.5)
	tmp = 0
	if NaChar <= -6.8e-28:
		tmp = t_1
	elif NaChar <= 5.7e-129:
		tmp = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0)
	elif NaChar <= 2.7e-97:
		tmp = t_0 + (KbT * (NdChar / Vef))
	elif NaChar <= 58000.0:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	else:
		tmp = t_1
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	t_1 = Float64(t_0 + Float64(NdChar * 0.5))
	tmp = 0.0
	if (NaChar <= -6.8e-28)
		tmp = t_1;
	elseif (NaChar <= 5.7e-129)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(NaChar / 2.0));
	elseif (NaChar <= 2.7e-97)
		tmp = Float64(t_0 + Float64(KbT * Float64(NdChar / Vef)));
	elseif (NaChar <= 58000.0)
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	t_1 = t_0 + (NdChar * 0.5);
	tmp = 0.0;
	if (NaChar <= -6.8e-28)
		tmp = t_1;
	elseif (NaChar <= 5.7e-129)
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0);
	elseif (NaChar <= 2.7e-97)
		tmp = t_0 + (KbT * (NdChar / Vef));
	elseif (NaChar <= 58000.0)
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 + N[(NdChar * 0.5), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -6.8e-28], t$95$1, If[LessEqual[NaChar, 5.7e-129], N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 2.7e-97], N[(t$95$0 + N[(KbT * N[(NdChar / Vef), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 58000.0], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
t_1 := t\_0 + NdChar \cdot 0.5\\
\mathbf{if}\;NaChar \leq -6.8 \cdot 10^{-28}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\

\mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\
\;\;\;\;t\_0 + KbT \cdot \frac{NdChar}{Vef}\\

\mathbf{elif}\;NaChar \leq 58000:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NaChar < -6.8000000000000001e-28 or 58000 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 82.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/34.2%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg34.2%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified82.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in Ec around 0 67.0%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]

    if -6.8000000000000001e-28 < NaChar < 5.7000000000000001e-129

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 60.1%

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

    if 5.7000000000000001e-129 < NaChar < 2.69999999999999985e-97

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Vef around inf 83.7%

      \[\leadsto \color{blue}{\frac{KbT \cdot NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-/l*83.6%

        \[\leadsto \color{blue}{KbT \cdot \frac{NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified83.6%

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

    if 2.69999999999999985e-97 < NaChar < 58000

    1. Initial program 99.5%

      \[\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. Simplified99.5%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 72.4%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv72.4%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-72.4%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr72.4%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification65.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -6.8 \cdot 10^{-28}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 58000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \end{array} \]
  5. Add Preprocessing

Alternative 18: 56.2% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ t_1 := t\_0 + NdChar \cdot 0.5\\ \mathbf{if}\;NaChar \leq -6.5 \cdot 10^{-28}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;t\_0 + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 210000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT)))))
        (t_1 (+ t_0 (* NdChar 0.5))))
   (if (<= NaChar -6.5e-28)
     t_1
     (if (<= NaChar 5.7e-129)
       (+
        (/ NdChar (+ 1.0 (exp (/ 1.0 (/ KbT (- (+ (+ Vef EDonor) mu) Ec))))))
        (/ NaChar 2.0))
       (if (<= NaChar 2.7e-97)
         (+ t_0 (* KbT (/ NdChar Vef)))
         (if (<= NaChar 210000.0)
           (+
            (/ NaChar 2.0)
            (*
             NdChar
             (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))
           t_1))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_1 = t_0 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -6.5e-28) {
		tmp = t_1;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NaChar <= 2.7e-97) {
		tmp = t_0 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 210000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    t_1 = t_0 + (ndchar * 0.5d0)
    if (nachar <= (-6.5d-28)) then
        tmp = t_1
    else if (nachar <= 5.7d-129) then
        tmp = (ndchar / (1.0d0 + exp((1.0d0 / (kbt / (((vef + edonor) + mu) - ec)))))) + (nachar / 2.0d0)
    else if (nachar <= 2.7d-97) then
        tmp = t_0 + (kbt * (ndchar / vef))
    else if (nachar <= 210000.0d0) then
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_1 = t_0 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -6.5e-28) {
		tmp = t_1;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + Math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	} else if (NaChar <= 2.7e-97) {
		tmp = t_0 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 210000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	t_1 = t_0 + (NdChar * 0.5)
	tmp = 0
	if NaChar <= -6.5e-28:
		tmp = t_1
	elif NaChar <= 5.7e-129:
		tmp = (NdChar / (1.0 + math.exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0)
	elif NaChar <= 2.7e-97:
		tmp = t_0 + (KbT * (NdChar / Vef))
	elif NaChar <= 210000.0:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	else:
		tmp = t_1
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	t_1 = Float64(t_0 + Float64(NdChar * 0.5))
	tmp = 0.0
	if (NaChar <= -6.5e-28)
		tmp = t_1;
	elseif (NaChar <= 5.7e-129)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(1.0 / Float64(KbT / Float64(Float64(Float64(Vef + EDonor) + mu) - Ec)))))) + Float64(NaChar / 2.0));
	elseif (NaChar <= 2.7e-97)
		tmp = Float64(t_0 + Float64(KbT * Float64(NdChar / Vef)));
	elseif (NaChar <= 210000.0)
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	t_1 = t_0 + (NdChar * 0.5);
	tmp = 0.0;
	if (NaChar <= -6.5e-28)
		tmp = t_1;
	elseif (NaChar <= 5.7e-129)
		tmp = (NdChar / (1.0 + exp((1.0 / (KbT / (((Vef + EDonor) + mu) - Ec)))))) + (NaChar / 2.0);
	elseif (NaChar <= 2.7e-97)
		tmp = t_0 + (KbT * (NdChar / Vef));
	elseif (NaChar <= 210000.0)
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 + N[(NdChar * 0.5), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -6.5e-28], t$95$1, If[LessEqual[NaChar, 5.7e-129], N[(N[(NdChar / N[(1.0 + N[Exp[N[(1.0 / N[(KbT / N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 2.7e-97], N[(t$95$0 + N[(KbT * N[(NdChar / Vef), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 210000.0], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
t_1 := t\_0 + NdChar \cdot 0.5\\
\mathbf{if}\;NaChar \leq -6.5 \cdot 10^{-28}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\

\mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\
\;\;\;\;t\_0 + KbT \cdot \frac{NdChar}{Vef}\\

\mathbf{elif}\;NaChar \leq 210000:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NaChar < -6.50000000000000043e-28 or 2.1e5 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 82.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/34.2%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg34.2%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified82.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in Ec around 0 67.0%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]

    if -6.50000000000000043e-28 < NaChar < 5.7000000000000001e-129

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 60.1%

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

    if 5.7000000000000001e-129 < NaChar < 2.69999999999999985e-97

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Vef around inf 83.7%

      \[\leadsto \color{blue}{\frac{KbT \cdot NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-/l*83.6%

        \[\leadsto \color{blue}{KbT \cdot \frac{NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified83.6%

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

    if 2.69999999999999985e-97 < NaChar < 2.1e5

    1. Initial program 99.5%

      \[\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. Simplified99.5%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 72.4%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv72.4%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-72.4%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr72.4%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification65.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -6.5 \cdot 10^{-28}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 210000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \end{array} \]
  5. Add Preprocessing

Alternative 19: 53.1% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ t_1 := t\_0 + NdChar \cdot 0.5\\ \mathbf{if}\;NaChar \leq -7.2 \cdot 10^{-50}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\ \mathbf{elif}\;NaChar \leq 3.35 \cdot 10^{-97}:\\ \;\;\;\;t\_0 + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 7.2 \cdot 10^{-6}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT)))))
        (t_1 (+ t_0 (* NdChar 0.5))))
   (if (<= NaChar -7.2e-50)
     t_1
     (if (<= NaChar 5.7e-129)
       (+
        (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
        (/ (* KbT NaChar) Ev))
       (if (<= NaChar 3.35e-97)
         (+ t_0 (* KbT (/ NdChar Vef)))
         (if (<= NaChar 7.2e-6)
           (+
            (/ NaChar 2.0)
            (*
             NdChar
             (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))
           t_1))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_1 = t_0 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -7.2e-50) {
		tmp = t_1;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	} else if (NaChar <= 3.35e-97) {
		tmp = t_0 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 7.2e-6) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    t_1 = t_0 + (ndchar * 0.5d0)
    if (nachar <= (-7.2d-50)) then
        tmp = t_1
    else if (nachar <= 5.7d-129) then
        tmp = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + ((kbt * nachar) / ev)
    else if (nachar <= 3.35d-97) then
        tmp = t_0 + (kbt * (ndchar / vef))
    else if (nachar <= 7.2d-6) then
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_1 = t_0 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -7.2e-50) {
		tmp = t_1;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	} else if (NaChar <= 3.35e-97) {
		tmp = t_0 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 7.2e-6) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	t_1 = t_0 + (NdChar * 0.5)
	tmp = 0
	if NaChar <= -7.2e-50:
		tmp = t_1
	elif NaChar <= 5.7e-129:
		tmp = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev)
	elif NaChar <= 3.35e-97:
		tmp = t_0 + (KbT * (NdChar / Vef))
	elif NaChar <= 7.2e-6:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	else:
		tmp = t_1
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	t_1 = Float64(t_0 + Float64(NdChar * 0.5))
	tmp = 0.0
	if (NaChar <= -7.2e-50)
		tmp = t_1;
	elseif (NaChar <= 5.7e-129)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(Float64(KbT * NaChar) / Ev));
	elseif (NaChar <= 3.35e-97)
		tmp = Float64(t_0 + Float64(KbT * Float64(NdChar / Vef)));
	elseif (NaChar <= 7.2e-6)
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	t_1 = t_0 + (NdChar * 0.5);
	tmp = 0.0;
	if (NaChar <= -7.2e-50)
		tmp = t_1;
	elseif (NaChar <= 5.7e-129)
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	elseif (NaChar <= 3.35e-97)
		tmp = t_0 + (KbT * (NdChar / Vef));
	elseif (NaChar <= 7.2e-6)
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 + N[(NdChar * 0.5), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -7.2e-50], t$95$1, If[LessEqual[NaChar, 5.7e-129], N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(KbT * NaChar), $MachinePrecision] / Ev), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 3.35e-97], N[(t$95$0 + N[(KbT * N[(NdChar / Vef), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 7.2e-6], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
t_1 := t\_0 + NdChar \cdot 0.5\\
\mathbf{if}\;NaChar \leq -7.2 \cdot 10^{-50}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\

\mathbf{elif}\;NaChar \leq 3.35 \cdot 10^{-97}:\\
\;\;\;\;t\_0 + KbT \cdot \frac{NdChar}{Vef}\\

\mathbf{elif}\;NaChar \leq 7.2 \cdot 10^{-6}:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NaChar < -7.19999999999999958e-50 or 7.19999999999999967e-6 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 82.3%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/34.6%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg34.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified82.3%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in Ec around 0 66.4%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]

    if -7.19999999999999958e-50 < NaChar < 5.7000000000000001e-129

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 67.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative67.5%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified67.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 54.2%

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

    if 5.7000000000000001e-129 < NaChar < 3.35e-97

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Vef around inf 83.7%

      \[\leadsto \color{blue}{\frac{KbT \cdot NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-/l*83.6%

        \[\leadsto \color{blue}{KbT \cdot \frac{NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified83.6%

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

    if 3.35e-97 < NaChar < 7.19999999999999967e-6

    1. Initial program 99.4%

      \[\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. Simplified99.4%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 74.4%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv74.4%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-74.4%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr74.4%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification62.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -7.2 \cdot 10^{-50}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\ \mathbf{elif}\;NaChar \leq 3.35 \cdot 10^{-97}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 7.2 \cdot 10^{-6}:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \end{array} \]
  5. Add Preprocessing

Alternative 20: 52.5% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{if}\;NaChar \leq -6.8 \cdot 10^{-31}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\ \mathbf{elif}\;NaChar \leq 8 \cdot 10^{-92}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 400000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT))))
          (/ NdChar (+ (/ EDonor KbT) 2.0)))))
   (if (<= NaChar -6.8e-31)
     t_0
     (if (<= NaChar 5.7e-129)
       (+
        (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
        (/ (* KbT NaChar) Ev))
       (if (<= NaChar 8e-92)
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
          (* KbT (/ NdChar Vef)))
         (if (<= NaChar 400000.0)
           (+
            (/ NaChar 2.0)
            (*
             NdChar
             (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))
           t_0))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	double tmp;
	if (NaChar <= -6.8e-31) {
		tmp = t_0;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	} else if (NaChar <= 8e-92) {
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (KbT * (NdChar / Vef));
	} else if (NaChar <= 400000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: tmp
    t_0 = (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt)))) + (ndchar / ((edonor / kbt) + 2.0d0))
    if (nachar <= (-6.8d-31)) then
        tmp = t_0
    else if (nachar <= 5.7d-129) then
        tmp = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + ((kbt * nachar) / ev)
    else if (nachar <= 8d-92) then
        tmp = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (kbt * (ndchar / vef))
    else if (nachar <= 400000.0d0) then
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	double tmp;
	if (NaChar <= -6.8e-31) {
		tmp = t_0;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	} else if (NaChar <= 8e-92) {
		tmp = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (KbT * (NdChar / Vef));
	} else if (NaChar <= 400000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0))
	tmp = 0
	if NaChar <= -6.8e-31:
		tmp = t_0
	elif NaChar <= 5.7e-129:
		tmp = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev)
	elif NaChar <= 8e-92:
		tmp = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (KbT * (NdChar / Vef))
	elif NaChar <= 400000.0:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	else:
		tmp = t_0
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))) + Float64(NdChar / Float64(Float64(EDonor / KbT) + 2.0)))
	tmp = 0.0
	if (NaChar <= -6.8e-31)
		tmp = t_0;
	elseif (NaChar <= 5.7e-129)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(Float64(KbT * NaChar) / Ev));
	elseif (NaChar <= 8e-92)
		tmp = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(KbT * Float64(NdChar / Vef)));
	elseif (NaChar <= 400000.0)
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	tmp = 0.0;
	if (NaChar <= -6.8e-31)
		tmp = t_0;
	elseif (NaChar <= 5.7e-129)
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	elseif (NaChar <= 8e-92)
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (KbT * (NdChar / Vef));
	elseif (NaChar <= 400000.0)
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(N[(EDonor / KbT), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -6.8e-31], t$95$0, If[LessEqual[NaChar, 5.7e-129], N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(KbT * NaChar), $MachinePrecision] / Ev), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 8e-92], N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(KbT * N[(NdChar / Vef), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 400000.0], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\
\mathbf{if}\;NaChar \leq -6.8 \cdot 10^{-31}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\

\mathbf{elif}\;NaChar \leq 8 \cdot 10^{-92}:\\
\;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\

\mathbf{elif}\;NaChar \leq 400000:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_0\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NaChar < -6.8000000000000002e-31 or 4e5 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 86.3%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 82.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative45.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+45.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative45.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified82.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
    8. Taylor expanded in EDonor around 0 69.3%

      \[\leadsto \frac{NdChar}{\color{blue}{2 + \frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}} \]

    if -6.8000000000000002e-31 < NaChar < 5.7000000000000001e-129

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 67.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative67.5%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified67.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 53.8%

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

    if 5.7000000000000001e-129 < NaChar < 7.9999999999999999e-92

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Vef around inf 83.7%

      \[\leadsto \color{blue}{\frac{KbT \cdot NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-/l*83.6%

        \[\leadsto \color{blue}{KbT \cdot \frac{NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified83.6%

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

    if 7.9999999999999999e-92 < NaChar < 4e5

    1. Initial program 99.5%

      \[\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. Simplified99.5%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 72.4%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv72.4%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-72.4%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr72.4%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification64.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -6.8 \cdot 10^{-31}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\ \mathbf{elif}\;NaChar \leq 8 \cdot 10^{-92}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 400000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \end{array} \]
  5. Add Preprocessing

Alternative 21: 52.7% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{if}\;NaChar \leq -4 \cdot 10^{-30}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar \cdot KbT}{EDonor}\\ \mathbf{elif}\;NaChar \leq 62000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT))))
          (/ NdChar (+ (/ EDonor KbT) 2.0)))))
   (if (<= NaChar -4e-30)
     t_0
     (if (<= NaChar 5.7e-129)
       (+
        (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
        (/ (* KbT NaChar) Ev))
       (if (<= NaChar 2.7e-97)
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
          (/ (* NdChar KbT) EDonor))
         (if (<= NaChar 62000.0)
           (+
            (/ NaChar 2.0)
            (*
             NdChar
             (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))
           t_0))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	double tmp;
	if (NaChar <= -4e-30) {
		tmp = t_0;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	} else if (NaChar <= 2.7e-97) {
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + ((NdChar * KbT) / EDonor);
	} else if (NaChar <= 62000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: tmp
    t_0 = (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt)))) + (ndchar / ((edonor / kbt) + 2.0d0))
    if (nachar <= (-4d-30)) then
        tmp = t_0
    else if (nachar <= 5.7d-129) then
        tmp = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + ((kbt * nachar) / ev)
    else if (nachar <= 2.7d-97) then
        tmp = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + ((ndchar * kbt) / edonor)
    else if (nachar <= 62000.0d0) then
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	double tmp;
	if (NaChar <= -4e-30) {
		tmp = t_0;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	} else if (NaChar <= 2.7e-97) {
		tmp = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + ((NdChar * KbT) / EDonor);
	} else if (NaChar <= 62000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0))
	tmp = 0
	if NaChar <= -4e-30:
		tmp = t_0
	elif NaChar <= 5.7e-129:
		tmp = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev)
	elif NaChar <= 2.7e-97:
		tmp = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + ((NdChar * KbT) / EDonor)
	elif NaChar <= 62000.0:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	else:
		tmp = t_0
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))) + Float64(NdChar / Float64(Float64(EDonor / KbT) + 2.0)))
	tmp = 0.0
	if (NaChar <= -4e-30)
		tmp = t_0;
	elseif (NaChar <= 5.7e-129)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(Float64(KbT * NaChar) / Ev));
	elseif (NaChar <= 2.7e-97)
		tmp = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(Float64(NdChar * KbT) / EDonor));
	elseif (NaChar <= 62000.0)
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	tmp = 0.0;
	if (NaChar <= -4e-30)
		tmp = t_0;
	elseif (NaChar <= 5.7e-129)
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	elseif (NaChar <= 2.7e-97)
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + ((NdChar * KbT) / EDonor);
	elseif (NaChar <= 62000.0)
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(N[(EDonor / KbT), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -4e-30], t$95$0, If[LessEqual[NaChar, 5.7e-129], N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(KbT * NaChar), $MachinePrecision] / Ev), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 2.7e-97], N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(NdChar * KbT), $MachinePrecision] / EDonor), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 62000.0], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\
\mathbf{if}\;NaChar \leq -4 \cdot 10^{-30}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\

\mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\
\;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar \cdot KbT}{EDonor}\\

\mathbf{elif}\;NaChar \leq 62000:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_0\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NaChar < -4e-30 or 62000 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 86.3%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 82.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative45.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+45.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative45.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified82.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
    8. Taylor expanded in EDonor around 0 69.3%

      \[\leadsto \frac{NdChar}{\color{blue}{2 + \frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}} \]

    if -4e-30 < NaChar < 5.7000000000000001e-129

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 67.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative67.5%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified67.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 53.8%

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

    if 5.7000000000000001e-129 < NaChar < 2.69999999999999985e-97

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in EDonor around inf 84.1%

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

    if 2.69999999999999985e-97 < NaChar < 62000

    1. Initial program 99.5%

      \[\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. Simplified99.5%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 72.4%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv72.4%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-72.4%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr72.4%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification64.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -4 \cdot 10^{-30}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + \frac{NdChar \cdot KbT}{EDonor}\\ \mathbf{elif}\;NaChar \leq 62000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \end{array} \]
  5. Add Preprocessing

Alternative 22: 52.7% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{if}\;NaChar \leq -1.55 \cdot 10^{-30}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} - KbT \cdot \frac{NdChar}{Ec}\\ \mathbf{elif}\;NaChar \leq 36000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT))))
          (/ NdChar (+ (/ EDonor KbT) 2.0)))))
   (if (<= NaChar -1.55e-30)
     t_0
     (if (<= NaChar 5.7e-129)
       (+
        (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
        (/ (* KbT NaChar) Ev))
       (if (<= NaChar 2.7e-97)
         (-
          (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
          (* KbT (/ NdChar Ec)))
         (if (<= NaChar 36000.0)
           (+
            (/ NaChar 2.0)
            (*
             NdChar
             (/ 1.0 (+ 1.0 (exp (/ (+ EDonor (- (+ Vef mu) Ec)) KbT))))))
           t_0))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	double tmp;
	if (NaChar <= -1.55e-30) {
		tmp = t_0;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	} else if (NaChar <= 2.7e-97) {
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) - (KbT * (NdChar / Ec));
	} else if (NaChar <= 36000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: tmp
    t_0 = (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt)))) + (ndchar / ((edonor / kbt) + 2.0d0))
    if (nachar <= (-1.55d-30)) then
        tmp = t_0
    else if (nachar <= 5.7d-129) then
        tmp = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + ((kbt * nachar) / ev)
    else if (nachar <= 2.7d-97) then
        tmp = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) - (kbt * (ndchar / ec))
    else if (nachar <= 36000.0d0) then
        tmp = (nachar / 2.0d0) + (ndchar * (1.0d0 / (1.0d0 + exp(((edonor + ((vef + mu) - ec)) / kbt)))))
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	double tmp;
	if (NaChar <= -1.55e-30) {
		tmp = t_0;
	} else if (NaChar <= 5.7e-129) {
		tmp = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	} else if (NaChar <= 2.7e-97) {
		tmp = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) - (KbT * (NdChar / Ec));
	} else if (NaChar <= 36000.0) {
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + Math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0))
	tmp = 0
	if NaChar <= -1.55e-30:
		tmp = t_0
	elif NaChar <= 5.7e-129:
		tmp = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev)
	elif NaChar <= 2.7e-97:
		tmp = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) - (KbT * (NdChar / Ec))
	elif NaChar <= 36000.0:
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + math.exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))))
	else:
		tmp = t_0
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))) + Float64(NdChar / Float64(Float64(EDonor / KbT) + 2.0)))
	tmp = 0.0
	if (NaChar <= -1.55e-30)
		tmp = t_0;
	elseif (NaChar <= 5.7e-129)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(Float64(KbT * NaChar) / Ev));
	elseif (NaChar <= 2.7e-97)
		tmp = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) - Float64(KbT * Float64(NdChar / Ec)));
	elseif (NaChar <= 36000.0)
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar * Float64(1.0 / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(Float64(Vef + mu) - Ec)) / KbT))))));
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (NdChar / ((EDonor / KbT) + 2.0));
	tmp = 0.0;
	if (NaChar <= -1.55e-30)
		tmp = t_0;
	elseif (NaChar <= 5.7e-129)
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + ((KbT * NaChar) / Ev);
	elseif (NaChar <= 2.7e-97)
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) - (KbT * (NdChar / Ec));
	elseif (NaChar <= 36000.0)
		tmp = (NaChar / 2.0) + (NdChar * (1.0 / (1.0 + exp(((EDonor + ((Vef + mu) - Ec)) / KbT)))));
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar / N[(N[(EDonor / KbT), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -1.55e-30], t$95$0, If[LessEqual[NaChar, 5.7e-129], N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(KbT * NaChar), $MachinePrecision] / Ev), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 2.7e-97], N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(KbT * N[(NdChar / Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 36000.0], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar * N[(1.0 / N[(1.0 + N[Exp[N[(N[(EDonor + N[(N[(Vef + mu), $MachinePrecision] - Ec), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\
\mathbf{if}\;NaChar \leq -1.55 \cdot 10^{-30}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\

\mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\
\;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} - KbT \cdot \frac{NdChar}{Ec}\\

\mathbf{elif}\;NaChar \leq 36000:\\
\;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;t\_0\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if NaChar < -1.54999999999999995e-30 or 36000 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 86.3%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in mu around 0 82.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    6. Step-by-step derivation
      1. +-commutative45.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+45.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative45.5%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    7. Simplified82.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
    8. Taylor expanded in EDonor around 0 69.3%

      \[\leadsto \frac{NdChar}{\color{blue}{2 + \frac{EDonor}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}} \]

    if -1.54999999999999995e-30 < NaChar < 5.7000000000000001e-129

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 67.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative67.5%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified67.5%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 53.8%

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

    if 5.7000000000000001e-129 < NaChar < 2.69999999999999985e-97

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Ec around inf 85.3%

      \[\leadsto \color{blue}{-1 \cdot \frac{KbT \cdot NdChar}{Ec}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. mul-1-neg85.3%

        \[\leadsto \color{blue}{\left(-\frac{KbT \cdot NdChar}{Ec}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate-/l*85.3%

        \[\leadsto \left(-\color{blue}{KbT \cdot \frac{NdChar}{Ec}}\right) + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      3. distribute-rgt-neg-in85.3%

        \[\leadsto \color{blue}{KbT \cdot \left(-\frac{NdChar}{Ec}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified85.3%

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

    if 2.69999999999999985e-97 < NaChar < 36000

    1. Initial program 99.5%

      \[\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. Simplified99.5%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 72.4%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Step-by-step derivation
      1. div-inv72.4%

        \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}}} + \frac{NaChar}{2} \]
      2. associate-+r-72.4%

        \[\leadsto NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \color{blue}{\left(\left(mu + Vef\right) - Ec\right)}}{KbT}}} + \frac{NaChar}{2} \]
    6. Applied egg-rr72.4%

      \[\leadsto \color{blue}{NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(mu + Vef\right) - Ec\right)}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification64.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -1.55 \cdot 10^{-30}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{KbT \cdot NaChar}{Ev}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} - KbT \cdot \frac{NdChar}{Ec}\\ \mathbf{elif}\;NaChar \leq 36000:\\ \;\;\;\;\frac{NaChar}{2} + NdChar \cdot \frac{1}{1 + e^{\frac{EDonor + \left(\left(Vef + mu\right) - Ec\right)}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + \frac{NdChar}{\frac{EDonor}{KbT} + 2}\\ \end{array} \]
  5. Add Preprocessing

Alternative 23: 52.4% accurate, 1.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\ t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{if}\;NdChar \leq -1.5 \cdot 10^{+112}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NdChar \leq -3.95 \cdot 10^{-125}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;NdChar \leq -2.1 \cdot 10^{-242}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NdChar \leq 2.3 \cdot 10^{+17}:\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NaChar 2.0)
          (/ NdChar (+ 1.0 (exp (/ (+ (+ Vef EDonor) mu) KbT))))))
        (t_1
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
          (* NdChar 0.5))))
   (if (<= NdChar -1.5e+112)
     t_0
     (if (<= NdChar -3.95e-125)
       t_1
       (if (<= NdChar -2.1e-242)
         (+
          (/ NaChar (+ 1.0 (exp (/ (+ Ev (+ Vef EAccept)) KbT))))
          (* KbT (/ NdChar Vef)))
         (if (<= NdChar 2.3e+17) t_1 t_0))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / 2.0) + (NdChar / (1.0 + exp((((Vef + EDonor) + mu) / KbT))));
	double t_1 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5);
	double tmp;
	if (NdChar <= -1.5e+112) {
		tmp = t_0;
	} else if (NdChar <= -3.95e-125) {
		tmp = t_1;
	} else if (NdChar <= -2.1e-242) {
		tmp = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (KbT * (NdChar / Vef));
	} else if (NdChar <= 2.3e+17) {
		tmp = t_1;
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = (nachar / 2.0d0) + (ndchar / (1.0d0 + exp((((vef + edonor) + mu) / kbt))))
    t_1 = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (ndchar * 0.5d0)
    if (ndchar <= (-1.5d+112)) then
        tmp = t_0
    else if (ndchar <= (-3.95d-125)) then
        tmp = t_1
    else if (ndchar <= (-2.1d-242)) then
        tmp = (nachar / (1.0d0 + exp(((ev + (vef + eaccept)) / kbt)))) + (kbt * (ndchar / vef))
    else if (ndchar <= 2.3d+17) then
        tmp = t_1
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NaChar / 2.0) + (NdChar / (1.0 + Math.exp((((Vef + EDonor) + mu) / KbT))));
	double t_1 = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5);
	double tmp;
	if (NdChar <= -1.5e+112) {
		tmp = t_0;
	} else if (NdChar <= -3.95e-125) {
		tmp = t_1;
	} else if (NdChar <= -2.1e-242) {
		tmp = (NaChar / (1.0 + Math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (KbT * (NdChar / Vef));
	} else if (NdChar <= 2.3e+17) {
		tmp = t_1;
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NaChar / 2.0) + (NdChar / (1.0 + math.exp((((Vef + EDonor) + mu) / KbT))))
	t_1 = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5)
	tmp = 0
	if NdChar <= -1.5e+112:
		tmp = t_0
	elif NdChar <= -3.95e-125:
		tmp = t_1
	elif NdChar <= -2.1e-242:
		tmp = (NaChar / (1.0 + math.exp(((Ev + (Vef + EAccept)) / KbT)))) + (KbT * (NdChar / Vef))
	elif NdChar <= 2.3e+17:
		tmp = t_1
	else:
		tmp = t_0
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NaChar / 2.0) + Float64(NdChar / Float64(1.0 + exp(Float64(Float64(Float64(Vef + EDonor) + mu) / KbT)))))
	t_1 = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(NdChar * 0.5))
	tmp = 0.0
	if (NdChar <= -1.5e+112)
		tmp = t_0;
	elseif (NdChar <= -3.95e-125)
		tmp = t_1;
	elseif (NdChar <= -2.1e-242)
		tmp = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Ev + Float64(Vef + EAccept)) / KbT)))) + Float64(KbT * Float64(NdChar / Vef)));
	elseif (NdChar <= 2.3e+17)
		tmp = t_1;
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NaChar / 2.0) + (NdChar / (1.0 + exp((((Vef + EDonor) + mu) / KbT))));
	t_1 = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5);
	tmp = 0.0;
	if (NdChar <= -1.5e+112)
		tmp = t_0;
	elseif (NdChar <= -3.95e-125)
		tmp = t_1;
	elseif (NdChar <= -2.1e-242)
		tmp = (NaChar / (1.0 + exp(((Ev + (Vef + EAccept)) / KbT)))) + (KbT * (NdChar / Vef));
	elseif (NdChar <= 2.3e+17)
		tmp = t_1;
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar / N[(1.0 + N[Exp[N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar * 0.5), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NdChar, -1.5e+112], t$95$0, If[LessEqual[NdChar, -3.95e-125], t$95$1, If[LessEqual[NdChar, -2.1e-242], N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Ev + N[(Vef + EAccept), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(KbT * N[(NdChar / Vef), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NdChar, 2.3e+17], t$95$1, t$95$0]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\
t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\
\mathbf{if}\;NdChar \leq -1.5 \cdot 10^{+112}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NdChar \leq -3.95 \cdot 10^{-125}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;NdChar \leq -2.1 \cdot 10^{-242}:\\
\;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\

\mathbf{elif}\;NdChar \leq 2.3 \cdot 10^{+17}:\\
\;\;\;\;t\_1\\

\mathbf{else}:\\
\;\;\;\;t\_0\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if NdChar < -1.4999999999999999e112 or 2.3e17 < NdChar

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 63.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in Ec around 0 56.1%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{e^{\frac{EDonor + \left(Vef + mu\right)}{KbT}}}} + \frac{NaChar}{2} \]
    6. Step-by-step derivation
      1. associate-+r+56.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{\left(EDonor + Vef\right) + mu}}{KbT}}} + \frac{NaChar}{2} \]
      2. +-commutative56.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{\left(Vef + EDonor\right)} + mu}{KbT}}} + \frac{NaChar}{2} \]
    7. Simplified56.1%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}} + \frac{NaChar}{2} \]

    if -1.4999999999999999e112 < NdChar < -3.94999999999999994e-125 or -2.10000000000000019e-242 < NdChar < 2.3e17

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 79.7%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/30.6%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg30.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified79.7%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in Ec around 0 64.5%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]

    if -3.94999999999999994e-125 < NdChar < -2.10000000000000019e-242

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{EDonor + \left(mu + \left(Vef - Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. inv-pow99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{EDonor + \left(mu + \left(Vef - Ec\right)\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      3. +-commutative99.9%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-99.9%

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(mu + Vef\right) - \left(Ec - EDonor\right)}}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      6. +-commutative99.9%

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr99.9%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-199.9%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(\left(Vef + mu\right) - Ec\right) + EDonor}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      3. sub-neg99.9%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(Vef + \left(mu + \left(-Ec\right)\right)\right)} + EDonor}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. mul-1-neg99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(Vef + \left(mu + \color{blue}{-1 \cdot Ec}\right)\right) + EDonor}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      6. +-commutative99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \left(mu + \color{blue}{\left(-Ec\right)}\right)}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      9. sub-neg99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(\left(EDonor + Vef\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      11. +-commutative99.9%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(\color{blue}{\left(Vef + EDonor\right)} + mu\right) - Ec}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Simplified99.9%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 87.0%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+87.0%

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

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

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Vef around inf 65.1%

      \[\leadsto \color{blue}{\frac{KbT \cdot NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-/l*65.1%

        \[\leadsto \color{blue}{KbT \cdot \frac{NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified65.1%

      \[\leadsto \color{blue}{KbT \cdot \frac{NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    14. Taylor expanded in mu around 0 65.1%

      \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \color{blue}{\frac{NaChar}{1 + e^{\frac{EAccept + \left(Ev + Vef\right)}{KbT}}}} \]
    15. Step-by-step derivation
      1. +-commutative65.1%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{\left(Ev + Vef\right) + EAccept}}{KbT}}} \]
      2. associate-+l+65.1%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{\color{blue}{Ev + \left(Vef + EAccept\right)}}{KbT}}} \]
      3. +-commutative65.1%

        \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \frac{NaChar}{1 + e^{\frac{Ev + \color{blue}{\left(EAccept + Vef\right)}}{KbT}}} \]
    16. Simplified65.1%

      \[\leadsto KbT \cdot \frac{NdChar}{Vef} + \color{blue}{\frac{NaChar}{1 + e^{\frac{Ev + \left(EAccept + Vef\right)}{KbT}}}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification60.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NdChar \leq -1.5 \cdot 10^{+112}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\ \mathbf{elif}\;NdChar \leq -3.95 \cdot 10^{-125}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{elif}\;NdChar \leq -2.1 \cdot 10^{-242}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Ev + \left(Vef + EAccept\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NdChar \leq 2.3 \cdot 10^{+17}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 24: 56.3% accurate, 1.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\ t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\ t_2 := t\_1 + NdChar \cdot 0.5\\ \mathbf{if}\;NaChar \leq -1.55 \cdot 10^{-28}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;t\_1 + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 68000:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_2\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (let* ((t_0
         (+
          (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
          (/ NaChar 2.0)))
        (t_1 (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT)))))
        (t_2 (+ t_1 (* NdChar 0.5))))
   (if (<= NaChar -1.55e-28)
     t_2
     (if (<= NaChar 5.7e-129)
       t_0
       (if (<= NaChar 2.7e-97)
         (+ t_1 (* KbT (/ NdChar Vef)))
         (if (<= NaChar 68000.0) t_0 t_2))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0);
	double t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_2 = t_1 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -1.55e-28) {
		tmp = t_2;
	} else if (NaChar <= 5.7e-129) {
		tmp = t_0;
	} else if (NaChar <= 2.7e-97) {
		tmp = t_1 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 68000.0) {
		tmp = t_0;
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + (nachar / 2.0d0)
    t_1 = nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))
    t_2 = t_1 + (ndchar * 0.5d0)
    if (nachar <= (-1.55d-28)) then
        tmp = t_2
    else if (nachar <= 5.7d-129) then
        tmp = t_0
    else if (nachar <= 2.7d-97) then
        tmp = t_1 + (kbt * (ndchar / vef))
    else if (nachar <= 68000.0d0) then
        tmp = t_0
    else
        tmp = t_2
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double t_0 = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0);
	double t_1 = NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	double t_2 = t_1 + (NdChar * 0.5);
	double tmp;
	if (NaChar <= -1.55e-28) {
		tmp = t_2;
	} else if (NaChar <= 5.7e-129) {
		tmp = t_0;
	} else if (NaChar <= 2.7e-97) {
		tmp = t_1 + (KbT * (NdChar / Vef));
	} else if (NaChar <= 68000.0) {
		tmp = t_0;
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	t_0 = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0)
	t_1 = NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))
	t_2 = t_1 + (NdChar * 0.5)
	tmp = 0
	if NaChar <= -1.55e-28:
		tmp = t_2
	elif NaChar <= 5.7e-129:
		tmp = t_0
	elif NaChar <= 2.7e-97:
		tmp = t_1 + (KbT * (NdChar / Vef))
	elif NaChar <= 68000.0:
		tmp = t_0
	else:
		tmp = t_2
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(NaChar / 2.0))
	t_1 = Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT))))
	t_2 = Float64(t_1 + Float64(NdChar * 0.5))
	tmp = 0.0
	if (NaChar <= -1.55e-28)
		tmp = t_2;
	elseif (NaChar <= 5.7e-129)
		tmp = t_0;
	elseif (NaChar <= 2.7e-97)
		tmp = Float64(t_1 + Float64(KbT * Float64(NdChar / Vef)));
	elseif (NaChar <= 68000.0)
		tmp = t_0;
	else
		tmp = t_2;
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	t_0 = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0);
	t_1 = NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)));
	t_2 = t_1 + (NdChar * 0.5);
	tmp = 0.0;
	if (NaChar <= -1.55e-28)
		tmp = t_2;
	elseif (NaChar <= 5.7e-129)
		tmp = t_0;
	elseif (NaChar <= 2.7e-97)
		tmp = t_1 + (KbT * (NdChar / Vef));
	elseif (NaChar <= 68000.0)
		tmp = t_0;
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := Block[{t$95$0 = N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 + N[(NdChar * 0.5), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[NaChar, -1.55e-28], t$95$2, If[LessEqual[NaChar, 5.7e-129], t$95$0, If[LessEqual[NaChar, 2.7e-97], N[(t$95$1 + N[(KbT * N[(NdChar / Vef), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[NaChar, 68000.0], t$95$0, t$95$2]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\
t_1 := \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}\\
t_2 := t\_1 + NdChar \cdot 0.5\\
\mathbf{if}\;NaChar \leq -1.55 \cdot 10^{-28}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\
\;\;\;\;t\_1 + KbT \cdot \frac{NdChar}{Vef}\\

\mathbf{elif}\;NaChar \leq 68000:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;t\_2\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if NaChar < -1.54999999999999996e-28 or 68000 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 82.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/34.2%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg34.2%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified82.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in Ec around 0 67.0%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]

    if -1.54999999999999996e-28 < NaChar < 5.7000000000000001e-129 or 2.69999999999999985e-97 < NaChar < 68000

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 61.8%

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

    if 5.7000000000000001e-129 < NaChar < 2.69999999999999985e-97

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Step-by-step derivation
      1. clear-num100.0%

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(\left(mu + Vef\right) - Ec\right)} + EDonor}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      5. associate-+l-100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{{\left(\frac{KbT}{\color{blue}{\left(Vef + mu\right)} - \left(Ec - EDonor\right)}\right)}^{-1}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Applied egg-rr100.0%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{{\left(\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}\right)}^{-1}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    6. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(Vef + mu\right) - \left(Ec - EDonor\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. associate--r-100.0%

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

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

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

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{EDonor + \left(Vef + \left(mu + -1 \cdot Ec\right)\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      7. associate-+r+100.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\color{blue}{\left(EDonor + Vef\right) + \left(mu + -1 \cdot Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      8. mul-1-neg100.0%

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

        \[\leadsto \frac{NdChar}{1 + e^{\frac{1}{\frac{KbT}{\left(EDonor + Vef\right) + \color{blue}{\left(mu - Ec\right)}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      10. associate--l+100.0%

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

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

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{1}{\frac{KbT}{\left(\left(Vef + EDonor\right) + mu\right) - Ec}}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    8. Taylor expanded in KbT around inf 66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(1 + \left(\frac{EDonor}{KbT} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    9. Step-by-step derivation
      1. associate-+r+66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\color{blue}{\left(\left(1 + \frac{EDonor}{KbT}\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right)} - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
      2. +-commutative66.7%

        \[\leadsto \frac{NdChar}{1 + \left(\left(\color{blue}{\left(\frac{EDonor}{KbT} + 1\right)} + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    10. Simplified66.7%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{\left(\left(\left(\frac{EDonor}{KbT} + 1\right) + \left(\frac{Vef}{KbT} + \frac{mu}{KbT}\right)\right) - \frac{Ec}{KbT}\right)}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    11. Taylor expanded in Vef around inf 83.7%

      \[\leadsto \color{blue}{\frac{KbT \cdot NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    12. Step-by-step derivation
      1. associate-/l*83.6%

        \[\leadsto \color{blue}{KbT \cdot \frac{NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    13. Simplified83.6%

      \[\leadsto \color{blue}{KbT \cdot \frac{NdChar}{Vef}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification65.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -1.55 \cdot 10^{-28}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{elif}\;NaChar \leq 5.7 \cdot 10^{-129}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\ \mathbf{elif}\;NaChar \leq 2.7 \cdot 10^{-97}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + KbT \cdot \frac{NdChar}{Vef}\\ \mathbf{elif}\;NaChar \leq 68000:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \end{array} \]
  5. Add Preprocessing

Alternative 25: 53.6% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;NdChar \leq -3.4 \cdot 10^{+112} \lor \neg \left(NdChar \leq 9.6 \cdot 10^{+16}\right):\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (or (<= NdChar -3.4e+112) (not (<= NdChar 9.6e+16)))
   (+ (/ NaChar 2.0) (/ NdChar (+ 1.0 (exp (/ (+ (+ Vef EDonor) mu) KbT)))))
   (+
    (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
    (* NdChar 0.5))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((NdChar <= -3.4e+112) || !(NdChar <= 9.6e+16)) {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((((Vef + EDonor) + mu) / KbT))));
	} else {
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5);
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if ((ndchar <= (-3.4d+112)) .or. (.not. (ndchar <= 9.6d+16))) then
        tmp = (nachar / 2.0d0) + (ndchar / (1.0d0 + exp((((vef + edonor) + mu) / kbt))))
    else
        tmp = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (ndchar * 0.5d0)
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((NdChar <= -3.4e+112) || !(NdChar <= 9.6e+16)) {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + Math.exp((((Vef + EDonor) + mu) / KbT))));
	} else {
		tmp = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5);
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if (NdChar <= -3.4e+112) or not (NdChar <= 9.6e+16):
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + math.exp((((Vef + EDonor) + mu) / KbT))))
	else:
		tmp = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5)
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if ((NdChar <= -3.4e+112) || !(NdChar <= 9.6e+16))
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar / Float64(1.0 + exp(Float64(Float64(Float64(Vef + EDonor) + mu) / KbT)))));
	else
		tmp = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(NdChar * 0.5));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if ((NdChar <= -3.4e+112) || ~((NdChar <= 9.6e+16)))
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((((Vef + EDonor) + mu) / KbT))));
	else
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5);
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[Or[LessEqual[NdChar, -3.4e+112], N[Not[LessEqual[NdChar, 9.6e+16]], $MachinePrecision]], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar / N[(1.0 + N[Exp[N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar * 0.5), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;NdChar \leq -3.4 \cdot 10^{+112} \lor \neg \left(NdChar \leq 9.6 \cdot 10^{+16}\right):\\
\;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\

\mathbf{else}:\\
\;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if NdChar < -3.39999999999999993e112 or 9.6e16 < NdChar

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 63.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in Ec around 0 56.1%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{e^{\frac{EDonor + \left(Vef + mu\right)}{KbT}}}} + \frac{NaChar}{2} \]
    6. Step-by-step derivation
      1. associate-+r+56.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{\left(EDonor + Vef\right) + mu}}{KbT}}} + \frac{NaChar}{2} \]
      2. +-commutative56.1%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{\left(Vef + EDonor\right)} + mu}{KbT}}} + \frac{NaChar}{2} \]
    7. Simplified56.1%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}} + \frac{NaChar}{2} \]

    if -3.39999999999999993e112 < NdChar < 9.6e16

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 80.2%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/30.0%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg30.0%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified80.2%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in Ec around 0 61.7%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification59.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NdChar \leq -3.4 \cdot 10^{+112} \lor \neg \left(NdChar \leq 9.6 \cdot 10^{+16}\right):\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \end{array} \]
  5. Add Preprocessing

Alternative 26: 57.1% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;NaChar \leq -7.2 \cdot 10^{-26} \lor \neg \left(NaChar \leq 230000\right):\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (or (<= NaChar -7.2e-26) (not (<= NaChar 230000.0)))
   (+
    (/ NaChar (+ 1.0 (exp (/ (+ Vef (+ Ev (- EAccept mu))) KbT))))
    (* NdChar 0.5))
   (+
    (/ NdChar (+ 1.0 (exp (/ (+ EDonor (+ mu (- Vef Ec))) KbT))))
    (/ NaChar 2.0))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((NaChar <= -7.2e-26) || !(NaChar <= 230000.0)) {
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5);
	} else {
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0);
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if ((nachar <= (-7.2d-26)) .or. (.not. (nachar <= 230000.0d0))) then
        tmp = (nachar / (1.0d0 + exp(((vef + (ev + (eaccept - mu))) / kbt)))) + (ndchar * 0.5d0)
    else
        tmp = (ndchar / (1.0d0 + exp(((edonor + (mu + (vef - ec))) / kbt)))) + (nachar / 2.0d0)
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((NaChar <= -7.2e-26) || !(NaChar <= 230000.0)) {
		tmp = (NaChar / (1.0 + Math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5);
	} else {
		tmp = (NdChar / (1.0 + Math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0);
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if (NaChar <= -7.2e-26) or not (NaChar <= 230000.0):
		tmp = (NaChar / (1.0 + math.exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5)
	else:
		tmp = (NdChar / (1.0 + math.exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0)
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if ((NaChar <= -7.2e-26) || !(NaChar <= 230000.0))
		tmp = Float64(Float64(NaChar / Float64(1.0 + exp(Float64(Float64(Vef + Float64(Ev + Float64(EAccept - mu))) / KbT)))) + Float64(NdChar * 0.5));
	else
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Float64(EDonor + Float64(mu + Float64(Vef - Ec))) / KbT)))) + Float64(NaChar / 2.0));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if ((NaChar <= -7.2e-26) || ~((NaChar <= 230000.0)))
		tmp = (NaChar / (1.0 + exp(((Vef + (Ev + (EAccept - mu))) / KbT)))) + (NdChar * 0.5);
	else
		tmp = (NdChar / (1.0 + exp(((EDonor + (mu + (Vef - Ec))) / KbT)))) + (NaChar / 2.0);
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[Or[LessEqual[NaChar, -7.2e-26], N[Not[LessEqual[NaChar, 230000.0]], $MachinePrecision]], N[(N[(NaChar / N[(1.0 + N[Exp[N[(N[(Vef + N[(Ev + N[(EAccept - mu), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NdChar * 0.5), $MachinePrecision]), $MachinePrecision], N[(N[(NdChar / N[(1.0 + N[Exp[N[(N[(EDonor + N[(mu + N[(Vef - Ec), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;NaChar \leq -7.2 \cdot 10^{-26} \lor \neg \left(NaChar \leq 230000\right):\\
\;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\

\mathbf{else}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if NaChar < -7.2000000000000003e-26 or 2.3e5 < NaChar

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in Ec around inf 82.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Step-by-step derivation
      1. associate-*r/34.2%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg34.2%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    6. Simplified82.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    7. Taylor expanded in Ec around 0 67.0%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]

    if -7.2000000000000003e-26 < NaChar < 2.3e5

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 59.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification63.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;NaChar \leq -7.2 \cdot 10^{-26} \lor \neg \left(NaChar \leq 230000\right):\\ \;\;\;\;\frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} + NdChar \cdot 0.5\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{2}\\ \end{array} \]
  5. Add Preprocessing

Alternative 27: 44.9% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;Ec \leq -1.4 \cdot 10^{+124} \lor \neg \left(Ec \leq 5.8 \cdot 10^{+110}\right):\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (or (<= Ec -1.4e+124) (not (<= Ec 5.8e+110)))
   (+ (/ NdChar (+ 1.0 (exp (/ Ec (- KbT))))) (/ NaChar 2.0))
   (+ (/ NaChar 2.0) (/ NdChar (+ 1.0 (exp (/ (+ (+ Vef EDonor) mu) KbT)))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((Ec <= -1.4e+124) || !(Ec <= 5.8e+110)) {
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + (NaChar / 2.0);
	} else {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((((Vef + EDonor) + mu) / KbT))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if ((ec <= (-1.4d+124)) .or. (.not. (ec <= 5.8d+110))) then
        tmp = (ndchar / (1.0d0 + exp((ec / -kbt)))) + (nachar / 2.0d0)
    else
        tmp = (nachar / 2.0d0) + (ndchar / (1.0d0 + exp((((vef + edonor) + mu) / kbt))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((Ec <= -1.4e+124) || !(Ec <= 5.8e+110)) {
		tmp = (NdChar / (1.0 + Math.exp((Ec / -KbT)))) + (NaChar / 2.0);
	} else {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + Math.exp((((Vef + EDonor) + mu) / KbT))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if (Ec <= -1.4e+124) or not (Ec <= 5.8e+110):
		tmp = (NdChar / (1.0 + math.exp((Ec / -KbT)))) + (NaChar / 2.0)
	else:
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + math.exp((((Vef + EDonor) + mu) / KbT))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if ((Ec <= -1.4e+124) || !(Ec <= 5.8e+110))
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Ec / Float64(-KbT))))) + Float64(NaChar / 2.0));
	else
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar / Float64(1.0 + exp(Float64(Float64(Float64(Vef + EDonor) + mu) / KbT)))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if ((Ec <= -1.4e+124) || ~((Ec <= 5.8e+110)))
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + (NaChar / 2.0);
	else
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((((Vef + EDonor) + mu) / KbT))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[Or[LessEqual[Ec, -1.4e+124], N[Not[LessEqual[Ec, 5.8e+110]], $MachinePrecision]], N[(N[(NdChar / N[(1.0 + N[Exp[N[(Ec / (-KbT)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar / N[(1.0 + N[Exp[N[(N[(N[(Vef + EDonor), $MachinePrecision] + mu), $MachinePrecision] / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;Ec \leq -1.4 \cdot 10^{+124} \lor \neg \left(Ec \leq 5.8 \cdot 10^{+110}\right):\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if Ec < -1.4e124 or 5.7999999999999999e110 < Ec

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 44.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in Ec around inf 40.6%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{2} \]
    6. Step-by-step derivation
      1. associate-*r/40.6%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg40.6%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    7. Simplified40.6%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{2} \]

    if -1.4e124 < Ec < 5.7999999999999999e110

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 48.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in Ec around 0 48.5%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{e^{\frac{EDonor + \left(Vef + mu\right)}{KbT}}}} + \frac{NaChar}{2} \]
    6. Step-by-step derivation
      1. associate-+r+48.5%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{\left(EDonor + Vef\right) + mu}}{KbT}}} + \frac{NaChar}{2} \]
      2. +-commutative48.5%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{\left(Vef + EDonor\right)} + mu}{KbT}}} + \frac{NaChar}{2} \]
    7. Simplified48.5%

      \[\leadsto \frac{NdChar}{1 + \color{blue}{e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification45.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;Ec \leq -1.4 \cdot 10^{+124} \lor \neg \left(Ec \leq 5.8 \cdot 10^{+110}\right):\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{\left(Vef + EDonor\right) + mu}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 28: 38.3% accurate, 1.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;Ec \leq -1.85 \cdot 10^{+61} \lor \neg \left(Ec \leq 1.2 \cdot 10^{-47}\right):\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{Vef}{KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (or (<= Ec -1.85e+61) (not (<= Ec 1.2e-47)))
   (+ (/ NdChar (+ 1.0 (exp (/ Ec (- KbT))))) (/ NaChar 2.0))
   (+ (/ NaChar 2.0) (/ NdChar (+ 1.0 (exp (/ Vef KbT)))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((Ec <= -1.85e+61) || !(Ec <= 1.2e-47)) {
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + (NaChar / 2.0);
	} else {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((Vef / KbT))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if ((ec <= (-1.85d+61)) .or. (.not. (ec <= 1.2d-47))) then
        tmp = (ndchar / (1.0d0 + exp((ec / -kbt)))) + (nachar / 2.0d0)
    else
        tmp = (nachar / 2.0d0) + (ndchar / (1.0d0 + exp((vef / kbt))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((Ec <= -1.85e+61) || !(Ec <= 1.2e-47)) {
		tmp = (NdChar / (1.0 + Math.exp((Ec / -KbT)))) + (NaChar / 2.0);
	} else {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + Math.exp((Vef / KbT))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if (Ec <= -1.85e+61) or not (Ec <= 1.2e-47):
		tmp = (NdChar / (1.0 + math.exp((Ec / -KbT)))) + (NaChar / 2.0)
	else:
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + math.exp((Vef / KbT))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if ((Ec <= -1.85e+61) || !(Ec <= 1.2e-47))
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Ec / Float64(-KbT))))) + Float64(NaChar / 2.0));
	else
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar / Float64(1.0 + exp(Float64(Vef / KbT)))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if ((Ec <= -1.85e+61) || ~((Ec <= 1.2e-47)))
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + (NaChar / 2.0);
	else
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((Vef / KbT))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[Or[LessEqual[Ec, -1.85e+61], N[Not[LessEqual[Ec, 1.2e-47]], $MachinePrecision]], N[(N[(NdChar / N[(1.0 + N[Exp[N[(Ec / (-KbT)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar / N[(1.0 + N[Exp[N[(Vef / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;Ec \leq -1.85 \cdot 10^{+61} \lor \neg \left(Ec \leq 1.2 \cdot 10^{-47}\right):\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{Vef}{KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if Ec < -1.85000000000000001e61 or 1.2e-47 < Ec

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 43.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in Ec around inf 36.5%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{2} \]
    6. Step-by-step derivation
      1. associate-*r/36.5%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg36.5%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    7. Simplified36.5%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{2} \]

    if -1.85000000000000001e61 < Ec < 1.2e-47

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 50.9%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in Vef around inf 43.7%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{Vef}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification40.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;Ec \leq -1.85 \cdot 10^{+61} \lor \neg \left(Ec \leq 1.2 \cdot 10^{-47}\right):\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{Vef}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 29: 38.3% accurate, 1.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;mu \leq -2.15 \cdot 10^{+113} \lor \neg \left(mu \leq 10^{-29}\right):\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{2}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (or (<= mu -2.15e+113) (not (<= mu 1e-29)))
   (+ (/ NdChar (+ 1.0 (exp (/ mu KbT)))) (/ NaChar 2.0))
   (+ (/ NdChar (+ 1.0 (exp (/ EDonor KbT)))) (/ NaChar 2.0))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((mu <= -2.15e+113) || !(mu <= 1e-29)) {
		tmp = (NdChar / (1.0 + exp((mu / KbT)))) + (NaChar / 2.0);
	} else {
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / 2.0);
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if ((mu <= (-2.15d+113)) .or. (.not. (mu <= 1d-29))) then
        tmp = (ndchar / (1.0d0 + exp((mu / kbt)))) + (nachar / 2.0d0)
    else
        tmp = (ndchar / (1.0d0 + exp((edonor / kbt)))) + (nachar / 2.0d0)
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((mu <= -2.15e+113) || !(mu <= 1e-29)) {
		tmp = (NdChar / (1.0 + Math.exp((mu / KbT)))) + (NaChar / 2.0);
	} else {
		tmp = (NdChar / (1.0 + Math.exp((EDonor / KbT)))) + (NaChar / 2.0);
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if (mu <= -2.15e+113) or not (mu <= 1e-29):
		tmp = (NdChar / (1.0 + math.exp((mu / KbT)))) + (NaChar / 2.0)
	else:
		tmp = (NdChar / (1.0 + math.exp((EDonor / KbT)))) + (NaChar / 2.0)
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if ((mu <= -2.15e+113) || !(mu <= 1e-29))
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(mu / KbT)))) + Float64(NaChar / 2.0));
	else
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + Float64(NaChar / 2.0));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if ((mu <= -2.15e+113) || ~((mu <= 1e-29)))
		tmp = (NdChar / (1.0 + exp((mu / KbT)))) + (NaChar / 2.0);
	else
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / 2.0);
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[Or[LessEqual[mu, -2.15e+113], N[Not[LessEqual[mu, 1e-29]], $MachinePrecision]], N[(N[(NdChar / N[(1.0 + N[Exp[N[(mu / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;mu \leq -2.15 \cdot 10^{+113} \lor \neg \left(mu \leq 10^{-29}\right):\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{2}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if mu < -2.1500000000000002e113 or 9.99999999999999943e-30 < mu

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in mu around inf 80.9%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{mu}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in KbT around inf 38.8%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]

    if -2.1500000000000002e113 < mu < 9.99999999999999943e-30

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 80.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in KbT around inf 40.1%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification39.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;mu \leq -2.15 \cdot 10^{+113} \lor \neg \left(mu \leq 10^{-29}\right):\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{mu}{KbT}}} + \frac{NaChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{2}\\ \end{array} \]
  5. Add Preprocessing

Alternative 30: 35.9% accurate, 1.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;Ev \leq -5 \cdot 10^{+194}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\frac{Ev}{KbT}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{2}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (<= Ev -5e+194)
   (+ (/ NdChar (+ 1.0 (exp (/ EDonor KbT)))) (/ NaChar (/ Ev KbT)))
   (+ (/ NdChar (+ 1.0 (exp (/ Ec (- KbT))))) (/ NaChar 2.0))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if (Ev <= -5e+194) {
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (Ev / KbT));
	} else {
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + (NaChar / 2.0);
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if (ev <= (-5d+194)) then
        tmp = (ndchar / (1.0d0 + exp((edonor / kbt)))) + (nachar / (ev / kbt))
    else
        tmp = (ndchar / (1.0d0 + exp((ec / -kbt)))) + (nachar / 2.0d0)
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if (Ev <= -5e+194) {
		tmp = (NdChar / (1.0 + Math.exp((EDonor / KbT)))) + (NaChar / (Ev / KbT));
	} else {
		tmp = (NdChar / (1.0 + Math.exp((Ec / -KbT)))) + (NaChar / 2.0);
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if Ev <= -5e+194:
		tmp = (NdChar / (1.0 + math.exp((EDonor / KbT)))) + (NaChar / (Ev / KbT))
	else:
		tmp = (NdChar / (1.0 + math.exp((Ec / -KbT)))) + (NaChar / 2.0)
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if (Ev <= -5e+194)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + Float64(NaChar / Float64(Ev / KbT)));
	else
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(Ec / Float64(-KbT))))) + Float64(NaChar / 2.0));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if (Ev <= -5e+194)
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / (Ev / KbT));
	else
		tmp = (NdChar / (1.0 + exp((Ec / -KbT)))) + (NaChar / 2.0);
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[LessEqual[Ev, -5e+194], N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / N[(Ev / KbT), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(NdChar / N[(1.0 + N[Exp[N[(Ec / (-KbT)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;Ev \leq -5 \cdot 10^{+194}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\frac{Ev}{KbT}}\\

\mathbf{else}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{2}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if Ev < -4.99999999999999989e194

    1. Initial program 99.6%

      \[\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. Simplified99.6%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 33.4%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative33.4%

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

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 42.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\frac{Ev}{KbT}}} \]
    8. Taylor expanded in EDonor around inf 28.8%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{\frac{Ev}{KbT}} \]

    if -4.99999999999999989e194 < Ev

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 48.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in Ec around inf 37.7%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{-1 \cdot \frac{Ec}{KbT}}}} + \frac{NaChar}{2} \]
    6. Step-by-step derivation
      1. associate-*r/37.7%

        \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-1 \cdot Ec}{KbT}}}} + \frac{NaChar}{2} \]
      2. mul-1-neg37.7%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{\color{blue}{-Ec}}{KbT}}} + \frac{NaChar}{2} \]
    7. Simplified37.7%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{-Ec}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification37.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;Ev \leq -5 \cdot 10^{+194}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\frac{Ev}{KbT}}\\ \mathbf{else}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{Ec}{-KbT}}} + \frac{NaChar}{2}\\ \end{array} \]
  5. Add Preprocessing

Alternative 31: 36.3% accurate, 2.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;Vef \leq 1.3 \cdot 10^{-87}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{Vef}{KbT}}}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (<= Vef 1.3e-87)
   (+ (/ NdChar (+ 1.0 (exp (/ EDonor KbT)))) (/ NaChar 2.0))
   (+ (/ NaChar 2.0) (/ NdChar (+ 1.0 (exp (/ Vef KbT)))))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if (Vef <= 1.3e-87) {
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / 2.0);
	} else {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((Vef / KbT))));
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if (vef <= 1.3d-87) then
        tmp = (ndchar / (1.0d0 + exp((edonor / kbt)))) + (nachar / 2.0d0)
    else
        tmp = (nachar / 2.0d0) + (ndchar / (1.0d0 + exp((vef / kbt))))
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if (Vef <= 1.3e-87) {
		tmp = (NdChar / (1.0 + Math.exp((EDonor / KbT)))) + (NaChar / 2.0);
	} else {
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + Math.exp((Vef / KbT))));
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if Vef <= 1.3e-87:
		tmp = (NdChar / (1.0 + math.exp((EDonor / KbT)))) + (NaChar / 2.0)
	else:
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + math.exp((Vef / KbT))))
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if (Vef <= 1.3e-87)
		tmp = Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + Float64(NaChar / 2.0));
	else
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar / Float64(1.0 + exp(Float64(Vef / KbT)))));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if (Vef <= 1.3e-87)
		tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / 2.0);
	else
		tmp = (NaChar / 2.0) + (NdChar / (1.0 + exp((Vef / KbT))));
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[LessEqual[Vef, 1.3e-87], N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar / N[(1.0 + N[Exp[N[(Vef / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;Vef \leq 1.3 \cdot 10^{-87}:\\
\;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{Vef}{KbT}}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if Vef < 1.30000000000000001e-87

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in EDonor around inf 77.4%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
    5. Taylor expanded in KbT around inf 36.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]

    if 1.30000000000000001e-87 < Vef

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 44.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in Vef around inf 38.6%

      \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{Vef}{KbT}}}} + \frac{NaChar}{2} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification37.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;Vef \leq 1.3 \cdot 10^{-87}:\\ \;\;\;\;\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{1 + e^{\frac{Vef}{KbT}}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 32: 35.3% accurate, 2.1× speedup?

\[\begin{array}{l} \\ \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{2} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (+ (/ NdChar (+ 1.0 (exp (/ EDonor KbT)))) (/ NaChar 2.0)))
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((EDonor / KbT)))) + (NaChar / 2.0);
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    code = (ndchar / (1.0d0 + exp((edonor / kbt)))) + (nachar / 2.0d0)
end function
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((EDonor / KbT)))) + (NaChar / 2.0);
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	return (NdChar / (1.0 + math.exp((EDonor / KbT)))) + (NaChar / 2.0)
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	return Float64(Float64(NdChar / Float64(1.0 + exp(Float64(EDonor / KbT)))) + Float64(NaChar / 2.0))
end
function tmp = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = (NdChar / (1.0 + exp((EDonor / KbT)))) + (NaChar / 2.0);
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := N[(N[(NdChar / N[(1.0 + N[Exp[N[(EDonor / KbT), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(NaChar / 2.0), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{2}
\end{array}
Derivation
  1. Initial program 100.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. Simplified100.0%

    \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
  3. Add Preprocessing
  4. Taylor expanded in EDonor around inf 74.3%

    \[\leadsto \frac{NdChar}{1 + e^{\color{blue}{\frac{EDonor}{KbT}}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}} \]
  5. Taylor expanded in KbT around inf 34.6%

    \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
  6. Final simplification34.6%

    \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor}{KbT}}} + \frac{NaChar}{2} \]
  7. Add Preprocessing

Alternative 33: 27.8% accurate, 13.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;KbT \leq -5.4 \cdot 10^{-66} \lor \neg \left(KbT \leq 1.55 \cdot 10^{-297}\right):\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{KbT \cdot NaChar}{Ev}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (or (<= KbT -5.4e-66) (not (<= KbT 1.55e-297)))
   (+ (/ NaChar 2.0) (/ NdChar 2.0))
   (/ (* KbT NaChar) Ev)))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((KbT <= -5.4e-66) || !(KbT <= 1.55e-297)) {
		tmp = (NaChar / 2.0) + (NdChar / 2.0);
	} else {
		tmp = (KbT * NaChar) / Ev;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if ((kbt <= (-5.4d-66)) .or. (.not. (kbt <= 1.55d-297))) then
        tmp = (nachar / 2.0d0) + (ndchar / 2.0d0)
    else
        tmp = (kbt * nachar) / ev
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((KbT <= -5.4e-66) || !(KbT <= 1.55e-297)) {
		tmp = (NaChar / 2.0) + (NdChar / 2.0);
	} else {
		tmp = (KbT * NaChar) / Ev;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if (KbT <= -5.4e-66) or not (KbT <= 1.55e-297):
		tmp = (NaChar / 2.0) + (NdChar / 2.0)
	else:
		tmp = (KbT * NaChar) / Ev
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if ((KbT <= -5.4e-66) || !(KbT <= 1.55e-297))
		tmp = Float64(Float64(NaChar / 2.0) + Float64(NdChar / 2.0));
	else
		tmp = Float64(Float64(KbT * NaChar) / Ev);
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if ((KbT <= -5.4e-66) || ~((KbT <= 1.55e-297)))
		tmp = (NaChar / 2.0) + (NdChar / 2.0);
	else
		tmp = (KbT * NaChar) / Ev;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[Or[LessEqual[KbT, -5.4e-66], N[Not[LessEqual[KbT, 1.55e-297]], $MachinePrecision]], N[(N[(NaChar / 2.0), $MachinePrecision] + N[(NdChar / 2.0), $MachinePrecision]), $MachinePrecision], N[(N[(KbT * NaChar), $MachinePrecision] / Ev), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;KbT \leq -5.4 \cdot 10^{-66} \lor \neg \left(KbT \leq 1.55 \cdot 10^{-297}\right):\\
\;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{KbT \cdot NaChar}{Ev}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if KbT < -5.39999999999999992e-66 or 1.5499999999999998e-297 < KbT

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 52.2%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{2}} \]
    5. Taylor expanded in KbT around inf 32.7%

      \[\leadsto \frac{NdChar}{\color{blue}{2}} + \frac{NaChar}{2} \]

    if -5.39999999999999992e-66 < KbT < 1.5499999999999998e-297

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 44.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative44.3%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified44.3%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 38.6%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\frac{Ev}{KbT}}} \]
    8. Taylor expanded in KbT around inf 6.9%

      \[\leadsto \frac{NdChar}{\color{blue}{2}} + \frac{NaChar}{\frac{Ev}{KbT}} \]
    9. Taylor expanded in NdChar around 0 15.1%

      \[\leadsto \color{blue}{\frac{KbT \cdot NaChar}{Ev}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification28.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;KbT \leq -5.4 \cdot 10^{-66} \lor \neg \left(KbT \leq 1.55 \cdot 10^{-297}\right):\\ \;\;\;\;\frac{NaChar}{2} + \frac{NdChar}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{KbT \cdot NaChar}{Ev}\\ \end{array} \]
  5. Add Preprocessing

Alternative 34: 18.5% accurate, 15.2× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;KbT \leq -1.85 \cdot 10^{-87} \lor \neg \left(KbT \leq 5 \cdot 10^{-253}\right):\\ \;\;\;\;NdChar \cdot 0.5\\ \mathbf{else}:\\ \;\;\;\;KbT \cdot \frac{NaChar}{Ev}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (or (<= KbT -1.85e-87) (not (<= KbT 5e-253)))
   (* NdChar 0.5)
   (* KbT (/ NaChar Ev))))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((KbT <= -1.85e-87) || !(KbT <= 5e-253)) {
		tmp = NdChar * 0.5;
	} else {
		tmp = KbT * (NaChar / Ev);
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if ((kbt <= (-1.85d-87)) .or. (.not. (kbt <= 5d-253))) then
        tmp = ndchar * 0.5d0
    else
        tmp = kbt * (nachar / ev)
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((KbT <= -1.85e-87) || !(KbT <= 5e-253)) {
		tmp = NdChar * 0.5;
	} else {
		tmp = KbT * (NaChar / Ev);
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if (KbT <= -1.85e-87) or not (KbT <= 5e-253):
		tmp = NdChar * 0.5
	else:
		tmp = KbT * (NaChar / Ev)
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if ((KbT <= -1.85e-87) || !(KbT <= 5e-253))
		tmp = Float64(NdChar * 0.5);
	else
		tmp = Float64(KbT * Float64(NaChar / Ev));
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if ((KbT <= -1.85e-87) || ~((KbT <= 5e-253)))
		tmp = NdChar * 0.5;
	else
		tmp = KbT * (NaChar / Ev);
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[Or[LessEqual[KbT, -1.85e-87], N[Not[LessEqual[KbT, 5e-253]], $MachinePrecision]], N[(NdChar * 0.5), $MachinePrecision], N[(KbT * N[(NaChar / Ev), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;KbT \leq -1.85 \cdot 10^{-87} \lor \neg \left(KbT \leq 5 \cdot 10^{-253}\right):\\
\;\;\;\;NdChar \cdot 0.5\\

\mathbf{else}:\\
\;\;\;\;KbT \cdot \frac{NaChar}{Ev}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if KbT < -1.8500000000000001e-87 or 4.99999999999999971e-253 < KbT

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 56.2%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative56.2%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified56.2%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 25.8%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\frac{Ev}{KbT}}} \]
    8. Taylor expanded in KbT around inf 11.0%

      \[\leadsto \frac{NdChar}{\color{blue}{2}} + \frac{NaChar}{\frac{Ev}{KbT}} \]
    9. Taylor expanded in NdChar around inf 23.5%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} \]

    if -1.8500000000000001e-87 < KbT < 4.99999999999999971e-253

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 43.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative43.0%

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

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 41.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\frac{Ev}{KbT}}} \]
    8. Taylor expanded in KbT around inf 7.4%

      \[\leadsto \frac{NdChar}{\color{blue}{2}} + \frac{NaChar}{\frac{Ev}{KbT}} \]
    9. Taylor expanded in NdChar around 0 15.0%

      \[\leadsto \color{blue}{\frac{KbT \cdot NaChar}{Ev}} \]
    10. Step-by-step derivation
      1. associate-/l*14.9%

        \[\leadsto \color{blue}{KbT \cdot \frac{NaChar}{Ev}} \]
    11. Simplified14.9%

      \[\leadsto \color{blue}{KbT \cdot \frac{NaChar}{Ev}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification21.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;KbT \leq -1.85 \cdot 10^{-87} \lor \neg \left(KbT \leq 5 \cdot 10^{-253}\right):\\ \;\;\;\;NdChar \cdot 0.5\\ \mathbf{else}:\\ \;\;\;\;KbT \cdot \frac{NaChar}{Ev}\\ \end{array} \]
  5. Add Preprocessing

Alternative 35: 19.1% accurate, 15.2× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;KbT \leq -6.2 \cdot 10^{-86} \lor \neg \left(KbT \leq 2 \cdot 10^{-250}\right):\\ \;\;\;\;NdChar \cdot 0.5\\ \mathbf{else}:\\ \;\;\;\;\frac{KbT \cdot NaChar}{Ev}\\ \end{array} \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (if (or (<= KbT -6.2e-86) (not (<= KbT 2e-250)))
   (* NdChar 0.5)
   (/ (* KbT NaChar) Ev)))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((KbT <= -6.2e-86) || !(KbT <= 2e-250)) {
		tmp = NdChar * 0.5;
	} else {
		tmp = (KbT * NaChar) / Ev;
	}
	return tmp;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    real(8) :: tmp
    if ((kbt <= (-6.2d-86)) .or. (.not. (kbt <= 2d-250))) then
        tmp = ndchar * 0.5d0
    else
        tmp = (kbt * nachar) / ev
    end if
    code = tmp
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	double tmp;
	if ((KbT <= -6.2e-86) || !(KbT <= 2e-250)) {
		tmp = NdChar * 0.5;
	} else {
		tmp = (KbT * NaChar) / Ev;
	}
	return tmp;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	tmp = 0
	if (KbT <= -6.2e-86) or not (KbT <= 2e-250):
		tmp = NdChar * 0.5
	else:
		tmp = (KbT * NaChar) / Ev
	return tmp
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0
	if ((KbT <= -6.2e-86) || !(KbT <= 2e-250))
		tmp = Float64(NdChar * 0.5);
	else
		tmp = Float64(Float64(KbT * NaChar) / Ev);
	end
	return tmp
end
function tmp_2 = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = 0.0;
	if ((KbT <= -6.2e-86) || ~((KbT <= 2e-250)))
		tmp = NdChar * 0.5;
	else
		tmp = (KbT * NaChar) / Ev;
	end
	tmp_2 = tmp;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := If[Or[LessEqual[KbT, -6.2e-86], N[Not[LessEqual[KbT, 2e-250]], $MachinePrecision]], N[(NdChar * 0.5), $MachinePrecision], N[(N[(KbT * NaChar), $MachinePrecision] / Ev), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;KbT \leq -6.2 \cdot 10^{-86} \lor \neg \left(KbT \leq 2 \cdot 10^{-250}\right):\\
\;\;\;\;NdChar \cdot 0.5\\

\mathbf{else}:\\
\;\;\;\;\frac{KbT \cdot NaChar}{Ev}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if KbT < -6.19999999999999977e-86 or 2.0000000000000001e-250 < KbT

    1. Initial program 99.9%

      \[\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. Simplified99.9%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 56.2%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative56.2%

        \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
    6. Simplified56.2%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 25.8%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\frac{Ev}{KbT}}} \]
    8. Taylor expanded in KbT around inf 11.0%

      \[\leadsto \frac{NdChar}{\color{blue}{2}} + \frac{NaChar}{\frac{Ev}{KbT}} \]
    9. Taylor expanded in NdChar around inf 23.5%

      \[\leadsto \color{blue}{0.5 \cdot NdChar} \]

    if -6.19999999999999977e-86 < KbT < 2.0000000000000001e-250

    1. Initial program 100.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. Simplified100.0%

      \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
    3. Add Preprocessing
    4. Taylor expanded in KbT around inf 43.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    5. Step-by-step derivation
      1. +-commutative43.0%

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

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
    7. Taylor expanded in Ev around inf 41.0%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\frac{Ev}{KbT}}} \]
    8. Taylor expanded in KbT around inf 7.4%

      \[\leadsto \frac{NdChar}{\color{blue}{2}} + \frac{NaChar}{\frac{Ev}{KbT}} \]
    9. Taylor expanded in NdChar around 0 15.0%

      \[\leadsto \color{blue}{\frac{KbT \cdot NaChar}{Ev}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification21.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;KbT \leq -6.2 \cdot 10^{-86} \lor \neg \left(KbT \leq 2 \cdot 10^{-250}\right):\\ \;\;\;\;NdChar \cdot 0.5\\ \mathbf{else}:\\ \;\;\;\;\frac{KbT \cdot NaChar}{Ev}\\ \end{array} \]
  5. Add Preprocessing

Alternative 36: 18.0% accurate, 76.3× speedup?

\[\begin{array}{l} \\ NdChar \cdot 0.5 \end{array} \]
(FPCore (NdChar Ec Vef EDonor mu KbT NaChar Ev EAccept)
 :precision binary64
 (* NdChar 0.5))
double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	return NdChar * 0.5;
}
real(8) function code(ndchar, ec, vef, edonor, mu, kbt, nachar, ev, eaccept)
    real(8), intent (in) :: ndchar
    real(8), intent (in) :: ec
    real(8), intent (in) :: vef
    real(8), intent (in) :: edonor
    real(8), intent (in) :: mu
    real(8), intent (in) :: kbt
    real(8), intent (in) :: nachar
    real(8), intent (in) :: ev
    real(8), intent (in) :: eaccept
    code = ndchar * 0.5d0
end function
public static double code(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
	return NdChar * 0.5;
}
def code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept):
	return NdChar * 0.5
function code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	return Float64(NdChar * 0.5)
end
function tmp = code(NdChar, Ec, Vef, EDonor, mu, KbT, NaChar, Ev, EAccept)
	tmp = NdChar * 0.5;
end
code[NdChar_, Ec_, Vef_, EDonor_, mu_, KbT_, NaChar_, Ev_, EAccept_] := N[(NdChar * 0.5), $MachinePrecision]
\begin{array}{l}

\\
NdChar \cdot 0.5
\end{array}
Derivation
  1. Initial program 100.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. Simplified100.0%

    \[\leadsto \color{blue}{\frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{Vef + \left(Ev + \left(EAccept - mu\right)\right)}{KbT}}}} \]
  3. Add Preprocessing
  4. Taylor expanded in KbT around inf 52.7%

    \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Ev}{KbT} + \frac{Vef}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
  5. Step-by-step derivation
    1. +-commutative52.7%

      \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\left(2 + \left(\frac{EAccept}{KbT} + \color{blue}{\left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)}\right)\right) - \frac{mu}{KbT}} \]
  6. Simplified52.7%

    \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\left(2 + \left(\frac{EAccept}{KbT} + \left(\frac{Vef}{KbT} + \frac{Ev}{KbT}\right)\right)\right) - \frac{mu}{KbT}}} \]
  7. Taylor expanded in Ev around inf 29.8%

    \[\leadsto \frac{NdChar}{1 + e^{\frac{EDonor + \left(mu + \left(Vef - Ec\right)\right)}{KbT}}} + \frac{NaChar}{\color{blue}{\frac{Ev}{KbT}}} \]
  8. Taylor expanded in KbT around inf 10.1%

    \[\leadsto \frac{NdChar}{\color{blue}{2}} + \frac{NaChar}{\frac{Ev}{KbT}} \]
  9. Taylor expanded in NdChar around inf 19.3%

    \[\leadsto \color{blue}{0.5 \cdot NdChar} \]
  10. Final simplification19.3%

    \[\leadsto NdChar \cdot 0.5 \]
  11. Add Preprocessing

Reproduce

?
herbie shell --seed 2024043 
(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))))))