Average Error: 0.0 → 0.0
Time: 24.3s
Precision: 64
\[\frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}\]
\[NdChar \cdot \frac{1}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}\]
\frac{NdChar}{1 + e^{\frac{-\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}}}
NdChar \cdot \frac{1}{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}}}
double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r309772 = NdChar;
        double r309773 = 1.0;
        double r309774 = Ec;
        double r309775 = Vef;
        double r309776 = r309774 - r309775;
        double r309777 = EDonor;
        double r309778 = r309776 - r309777;
        double r309779 = mu;
        double r309780 = r309778 - r309779;
        double r309781 = -r309780;
        double r309782 = KbT;
        double r309783 = r309781 / r309782;
        double r309784 = exp(r309783);
        double r309785 = r309773 + r309784;
        double r309786 = r309772 / r309785;
        double r309787 = NaChar;
        double r309788 = Ev;
        double r309789 = r309788 + r309775;
        double r309790 = EAccept;
        double r309791 = r309789 + r309790;
        double r309792 = -r309779;
        double r309793 = r309791 + r309792;
        double r309794 = r309793 / r309782;
        double r309795 = exp(r309794);
        double r309796 = r309773 + r309795;
        double r309797 = r309787 / r309796;
        double r309798 = r309786 + r309797;
        return r309798;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r309799 = NdChar;
        double r309800 = 1.0;
        double r309801 = 1.0;
        double r309802 = Ec;
        double r309803 = Vef;
        double r309804 = r309802 - r309803;
        double r309805 = EDonor;
        double r309806 = r309804 - r309805;
        double r309807 = mu;
        double r309808 = r309806 - r309807;
        double r309809 = -r309808;
        double r309810 = KbT;
        double r309811 = r309809 / r309810;
        double r309812 = exp(r309811);
        double r309813 = r309801 + r309812;
        double r309814 = r309800 / r309813;
        double r309815 = r309799 * r309814;
        double r309816 = NaChar;
        double r309817 = Ev;
        double r309818 = r309817 + r309803;
        double r309819 = EAccept;
        double r309820 = r309818 + r309819;
        double r309821 = -r309807;
        double r309822 = r309820 + r309821;
        double r309823 = r309822 / r309810;
        double r309824 = exp(r309823);
        double r309825 = r309801 + r309824;
        double r309826 = r309816 / r309825;
        double r309827 = r309815 + r309826;
        return r309827;
}

Error

Bits error versus NdChar

Bits error versus Ec

Bits error versus Vef

Bits error versus EDonor

Bits error versus mu

Bits error versus KbT

Bits error versus NaChar

Bits error versus Ev

Bits error versus EAccept

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}\]
  2. Using strategy rm
  3. Applied div-inv0.0

    \[\leadsto \color{blue}{NdChar \cdot \frac{1}{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}}}\]
  4. Final simplification0.0

    \[\leadsto NdChar \cdot \frac{1}{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}}}\]

Reproduce

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