Average Error: 0.0 → 0.0
Time: 9.5s
Precision: 64
\[\frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}\]
\[\frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + NaChar \cdot \frac{1}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}\]
\frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \frac{NaChar}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}
\frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + NaChar \cdot \frac{1}{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 r199654 = NdChar;
        double r199655 = 1.0;
        double r199656 = Ec;
        double r199657 = Vef;
        double r199658 = r199656 - r199657;
        double r199659 = EDonor;
        double r199660 = r199658 - r199659;
        double r199661 = mu;
        double r199662 = r199660 - r199661;
        double r199663 = -r199662;
        double r199664 = KbT;
        double r199665 = r199663 / r199664;
        double r199666 = exp(r199665);
        double r199667 = r199655 + r199666;
        double r199668 = r199654 / r199667;
        double r199669 = NaChar;
        double r199670 = Ev;
        double r199671 = r199670 + r199657;
        double r199672 = EAccept;
        double r199673 = r199671 + r199672;
        double r199674 = -r199661;
        double r199675 = r199673 + r199674;
        double r199676 = r199675 / r199664;
        double r199677 = exp(r199676);
        double r199678 = r199655 + r199677;
        double r199679 = r199669 / r199678;
        double r199680 = r199668 + r199679;
        return r199680;
}

double f(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r199681 = NdChar;
        double r199682 = 1.0;
        double r199683 = Ec;
        double r199684 = Vef;
        double r199685 = r199683 - r199684;
        double r199686 = EDonor;
        double r199687 = r199685 - r199686;
        double r199688 = mu;
        double r199689 = r199687 - r199688;
        double r199690 = -r199689;
        double r199691 = KbT;
        double r199692 = r199690 / r199691;
        double r199693 = exp(r199692);
        double r199694 = r199682 + r199693;
        double r199695 = r199681 / r199694;
        double r199696 = NaChar;
        double r199697 = 1.0;
        double r199698 = Ev;
        double r199699 = r199698 + r199684;
        double r199700 = EAccept;
        double r199701 = r199699 + r199700;
        double r199702 = -r199688;
        double r199703 = r199701 + r199702;
        double r199704 = r199703 / r199691;
        double r199705 = exp(r199704);
        double r199706 = r199682 + r199705;
        double r199707 = r199697 / r199706;
        double r199708 = r199696 * r199707;
        double r199709 = r199695 + r199708;
        return r199709;
}

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 \frac{NdChar}{1 + e^{\frac{-\left(\left(\left(Ec - Vef\right) - EDonor\right) - mu\right)}{KbT}}} + \color{blue}{NaChar \cdot \frac{1}{1 + e^{\frac{\left(\left(Ev + Vef\right) + EAccept\right) + \left(-mu\right)}{KbT}}}}\]
  4. Final simplification0.0

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

Reproduce

herbie shell --seed 2020060 +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))))))