Average Error: 60.5 → 55.2
Time: 12.6s
Precision: 64
\[-1 \lt \varepsilon \land \varepsilon \lt 1\]
\[\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
\[\begin{array}{l} \mathbf{if}\;a \le -7.5412878197323673 \cdot 10^{174}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(\frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot {b}^{3}\right) + \left(\frac{1}{2} \cdot \left({\varepsilon}^{2} \cdot {b}^{2}\right) + \varepsilon \cdot b\right)\right)}\\ \mathbf{elif}\;a \le 2.34108127479914129 \cdot 10^{62}:\\ \;\;\;\;\frac{\varepsilon \cdot \sqrt[3]{{\left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}^{3}}}{\left(\frac{1}{6} \cdot \left({a}^{3} \cdot {\varepsilon}^{3}\right) + \left(\frac{1}{2} \cdot \left({a}^{2} \cdot {\varepsilon}^{2}\right) + a \cdot \varepsilon\right)\right) \cdot \sqrt[3]{{\left(e^{\varepsilon \cdot b} - 1\right)}^{3}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\frac{\left(-1 \cdot 1\right) + {\left(e^{a}\right)}^{\left(2 \cdot \varepsilon\right)}}{e^{a \cdot \varepsilon} + 1} \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\\ \end{array}\]
\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}
\begin{array}{l}
\mathbf{if}\;a \le -7.5412878197323673 \cdot 10^{174}:\\
\;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(\frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot {b}^{3}\right) + \left(\frac{1}{2} \cdot \left({\varepsilon}^{2} \cdot {b}^{2}\right) + \varepsilon \cdot b\right)\right)}\\

\mathbf{elif}\;a \le 2.34108127479914129 \cdot 10^{62}:\\
\;\;\;\;\frac{\varepsilon \cdot \sqrt[3]{{\left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}^{3}}}{\left(\frac{1}{6} \cdot \left({a}^{3} \cdot {\varepsilon}^{3}\right) + \left(\frac{1}{2} \cdot \left({a}^{2} \cdot {\varepsilon}^{2}\right) + a \cdot \varepsilon\right)\right) \cdot \sqrt[3]{{\left(e^{\varepsilon \cdot b} - 1\right)}^{3}}}\\

\mathbf{else}:\\
\;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\frac{\left(-1 \cdot 1\right) + {\left(e^{a}\right)}^{\left(2 \cdot \varepsilon\right)}}{e^{a \cdot \varepsilon} + 1} \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\\

\end{array}
double f(double a, double b, double eps) {
        double r115773 = eps;
        double r115774 = a;
        double r115775 = b;
        double r115776 = r115774 + r115775;
        double r115777 = r115776 * r115773;
        double r115778 = exp(r115777);
        double r115779 = 1.0;
        double r115780 = r115778 - r115779;
        double r115781 = r115773 * r115780;
        double r115782 = r115774 * r115773;
        double r115783 = exp(r115782);
        double r115784 = r115783 - r115779;
        double r115785 = r115775 * r115773;
        double r115786 = exp(r115785);
        double r115787 = r115786 - r115779;
        double r115788 = r115784 * r115787;
        double r115789 = r115781 / r115788;
        return r115789;
}

double f(double a, double b, double eps) {
        double r115790 = a;
        double r115791 = -7.541287819732367e+174;
        bool r115792 = r115790 <= r115791;
        double r115793 = eps;
        double r115794 = b;
        double r115795 = r115790 + r115794;
        double r115796 = r115795 * r115793;
        double r115797 = exp(r115796);
        double r115798 = 1.0;
        double r115799 = r115797 - r115798;
        double r115800 = r115793 * r115799;
        double r115801 = r115790 * r115793;
        double r115802 = exp(r115801);
        double r115803 = r115802 - r115798;
        double r115804 = 0.16666666666666666;
        double r115805 = 3.0;
        double r115806 = pow(r115793, r115805);
        double r115807 = pow(r115794, r115805);
        double r115808 = r115806 * r115807;
        double r115809 = r115804 * r115808;
        double r115810 = 0.5;
        double r115811 = 2.0;
        double r115812 = pow(r115793, r115811);
        double r115813 = pow(r115794, r115811);
        double r115814 = r115812 * r115813;
        double r115815 = r115810 * r115814;
        double r115816 = r115793 * r115794;
        double r115817 = r115815 + r115816;
        double r115818 = r115809 + r115817;
        double r115819 = r115803 * r115818;
        double r115820 = r115800 / r115819;
        double r115821 = 2.3410812747991413e+62;
        bool r115822 = r115790 <= r115821;
        double r115823 = pow(r115799, r115805);
        double r115824 = cbrt(r115823);
        double r115825 = r115793 * r115824;
        double r115826 = pow(r115790, r115805);
        double r115827 = r115826 * r115806;
        double r115828 = r115804 * r115827;
        double r115829 = pow(r115790, r115811);
        double r115830 = r115829 * r115812;
        double r115831 = r115810 * r115830;
        double r115832 = r115831 + r115801;
        double r115833 = r115828 + r115832;
        double r115834 = exp(r115816);
        double r115835 = r115834 - r115798;
        double r115836 = pow(r115835, r115805);
        double r115837 = cbrt(r115836);
        double r115838 = r115833 * r115837;
        double r115839 = r115825 / r115838;
        double r115840 = r115798 * r115798;
        double r115841 = -r115840;
        double r115842 = exp(r115790);
        double r115843 = r115811 * r115793;
        double r115844 = pow(r115842, r115843);
        double r115845 = r115841 + r115844;
        double r115846 = r115802 + r115798;
        double r115847 = r115845 / r115846;
        double r115848 = r115794 * r115793;
        double r115849 = exp(r115848);
        double r115850 = r115849 - r115798;
        double r115851 = r115847 * r115850;
        double r115852 = r115800 / r115851;
        double r115853 = r115822 ? r115839 : r115852;
        double r115854 = r115792 ? r115820 : r115853;
        return r115854;
}

Error

Bits error versus a

Bits error versus b

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original60.5
Target14.9
Herbie55.2
\[\frac{a + b}{a \cdot b}\]

Derivation

  1. Split input into 3 regimes
  2. if a < -7.541287819732367e+174

    1. Initial program 50.7

      \[\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    2. Taylor expanded around 0 40.1

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \color{blue}{\left(\frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot {b}^{3}\right) + \left(\frac{1}{2} \cdot \left({\varepsilon}^{2} \cdot {b}^{2}\right) + \varepsilon \cdot b\right)\right)}}\]

    if -7.541287819732367e+174 < a < 2.3410812747991413e+62

    1. Initial program 62.9

      \[\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    2. Taylor expanded around 0 56.5

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\color{blue}{\left(\frac{1}{6} \cdot \left({a}^{3} \cdot {\varepsilon}^{3}\right) + \left(\frac{1}{2} \cdot \left({a}^{2} \cdot {\varepsilon}^{2}\right) + a \cdot \varepsilon\right)\right)} \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    3. Using strategy rm
    4. Applied add-cbrt-cube56.5

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(\frac{1}{6} \cdot \left({a}^{3} \cdot {\varepsilon}^{3}\right) + \left(\frac{1}{2} \cdot \left({a}^{2} \cdot {\varepsilon}^{2}\right) + a \cdot \varepsilon\right)\right) \cdot \color{blue}{\sqrt[3]{\left(\left(e^{b \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}}}\]
    5. Simplified56.5

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(\frac{1}{6} \cdot \left({a}^{3} \cdot {\varepsilon}^{3}\right) + \left(\frac{1}{2} \cdot \left({a}^{2} \cdot {\varepsilon}^{2}\right) + a \cdot \varepsilon\right)\right) \cdot \sqrt[3]{\color{blue}{{\left(e^{\varepsilon \cdot b} - 1\right)}^{3}}}}\]
    6. Using strategy rm
    7. Applied add-cbrt-cube56.5

      \[\leadsto \frac{\varepsilon \cdot \color{blue}{\sqrt[3]{\left(\left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right) \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)\right) \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}}}{\left(\frac{1}{6} \cdot \left({a}^{3} \cdot {\varepsilon}^{3}\right) + \left(\frac{1}{2} \cdot \left({a}^{2} \cdot {\varepsilon}^{2}\right) + a \cdot \varepsilon\right)\right) \cdot \sqrt[3]{{\left(e^{\varepsilon \cdot b} - 1\right)}^{3}}}\]
    8. Simplified56.5

      \[\leadsto \frac{\varepsilon \cdot \sqrt[3]{\color{blue}{{\left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}^{3}}}}{\left(\frac{1}{6} \cdot \left({a}^{3} \cdot {\varepsilon}^{3}\right) + \left(\frac{1}{2} \cdot \left({a}^{2} \cdot {\varepsilon}^{2}\right) + a \cdot \varepsilon\right)\right) \cdot \sqrt[3]{{\left(e^{\varepsilon \cdot b} - 1\right)}^{3}}}\]

    if 2.3410812747991413e+62 < a

    1. Initial program 54.2

      \[\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    2. Using strategy rm
    3. Applied flip--56.6

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\color{blue}{\frac{e^{a \cdot \varepsilon} \cdot e^{a \cdot \varepsilon} - 1 \cdot 1}{e^{a \cdot \varepsilon} + 1}} \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    4. Simplified56.6

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\frac{\color{blue}{\left(-1 \cdot 1\right) + {\left(e^{a}\right)}^{\left(2 \cdot \varepsilon\right)}}}{e^{a \cdot \varepsilon} + 1} \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification55.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -7.5412878197323673 \cdot 10^{174}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(\frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot {b}^{3}\right) + \left(\frac{1}{2} \cdot \left({\varepsilon}^{2} \cdot {b}^{2}\right) + \varepsilon \cdot b\right)\right)}\\ \mathbf{elif}\;a \le 2.34108127479914129 \cdot 10^{62}:\\ \;\;\;\;\frac{\varepsilon \cdot \sqrt[3]{{\left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}^{3}}}{\left(\frac{1}{6} \cdot \left({a}^{3} \cdot {\varepsilon}^{3}\right) + \left(\frac{1}{2} \cdot \left({a}^{2} \cdot {\varepsilon}^{2}\right) + a \cdot \varepsilon\right)\right) \cdot \sqrt[3]{{\left(e^{\varepsilon \cdot b} - 1\right)}^{3}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\frac{\left(-1 \cdot 1\right) + {\left(e^{a}\right)}^{\left(2 \cdot \varepsilon\right)}}{e^{a \cdot \varepsilon} + 1} \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2020083 
(FPCore (a b eps)
  :name "expq3 (problem 3.4.2)"
  :precision binary64
  :pre (and (< -1 eps) (< eps 1))

  :herbie-target
  (/ (+ a b) (* a b))

  (/ (* eps (- (exp (* (+ a b) eps)) 1)) (* (- (exp (* a eps)) 1) (- (exp (* b eps)) 1))))