Average Error: 42.9 → 22.2
Time: 33.4s
Precision: 64
\[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
\[\begin{array}{l} \mathbf{if}\;i \le -7.524185979796087207979591237813621340536 \cdot 10^{-8}:\\ \;\;\;\;100 \cdot \frac{\frac{{\left(\frac{i}{n} + 1\right)}^{n} \cdot \left({\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n}\right) - \left(1 \cdot 1\right) \cdot 1}{{\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n} + \left(1 + {\left(\frac{i}{n} + 1\right)}^{n}\right) \cdot 1}}{\frac{i}{n}}\\ \mathbf{elif}\;i \le 1.943238893158424573925913136918097734451:\\ \;\;\;\;100 \cdot \left(n \cdot \frac{i \cdot 1 + \left(i \cdot \left(0.5 \cdot i\right) + \left(n - i \cdot \left(0.5 \cdot i\right)\right) \cdot \log 1\right)}{i}\right)\\ \mathbf{elif}\;i \le 1.540498293983815894197419121524134450797 \cdot 10^{208}:\\ \;\;\;\;\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right) \cdot 100\\ \mathbf{else}:\\ \;\;\;\;100 \cdot \frac{\left(n \cdot \log 1 + \left(i \cdot 1 + 1\right)\right) - 1}{\frac{i}{n}}\\ \end{array}\]
100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}
\begin{array}{l}
\mathbf{if}\;i \le -7.524185979796087207979591237813621340536 \cdot 10^{-8}:\\
\;\;\;\;100 \cdot \frac{\frac{{\left(\frac{i}{n} + 1\right)}^{n} \cdot \left({\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n}\right) - \left(1 \cdot 1\right) \cdot 1}{{\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n} + \left(1 + {\left(\frac{i}{n} + 1\right)}^{n}\right) \cdot 1}}{\frac{i}{n}}\\

\mathbf{elif}\;i \le 1.943238893158424573925913136918097734451:\\
\;\;\;\;100 \cdot \left(n \cdot \frac{i \cdot 1 + \left(i \cdot \left(0.5 \cdot i\right) + \left(n - i \cdot \left(0.5 \cdot i\right)\right) \cdot \log 1\right)}{i}\right)\\

\mathbf{elif}\;i \le 1.540498293983815894197419121524134450797 \cdot 10^{208}:\\
\;\;\;\;\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right) \cdot 100\\

\mathbf{else}:\\
\;\;\;\;100 \cdot \frac{\left(n \cdot \log 1 + \left(i \cdot 1 + 1\right)\right) - 1}{\frac{i}{n}}\\

\end{array}
double f(double i, double n) {
        double r7418663 = 100.0;
        double r7418664 = 1.0;
        double r7418665 = i;
        double r7418666 = n;
        double r7418667 = r7418665 / r7418666;
        double r7418668 = r7418664 + r7418667;
        double r7418669 = pow(r7418668, r7418666);
        double r7418670 = r7418669 - r7418664;
        double r7418671 = r7418670 / r7418667;
        double r7418672 = r7418663 * r7418671;
        return r7418672;
}

double f(double i, double n) {
        double r7418673 = i;
        double r7418674 = -7.524185979796087e-08;
        bool r7418675 = r7418673 <= r7418674;
        double r7418676 = 100.0;
        double r7418677 = n;
        double r7418678 = r7418673 / r7418677;
        double r7418679 = 1.0;
        double r7418680 = r7418678 + r7418679;
        double r7418681 = pow(r7418680, r7418677);
        double r7418682 = r7418681 * r7418681;
        double r7418683 = r7418681 * r7418682;
        double r7418684 = r7418679 * r7418679;
        double r7418685 = r7418684 * r7418679;
        double r7418686 = r7418683 - r7418685;
        double r7418687 = r7418679 + r7418681;
        double r7418688 = r7418687 * r7418679;
        double r7418689 = r7418682 + r7418688;
        double r7418690 = r7418686 / r7418689;
        double r7418691 = r7418690 / r7418678;
        double r7418692 = r7418676 * r7418691;
        double r7418693 = 1.9432388931584246;
        bool r7418694 = r7418673 <= r7418693;
        double r7418695 = r7418673 * r7418679;
        double r7418696 = 0.5;
        double r7418697 = r7418696 * r7418673;
        double r7418698 = r7418673 * r7418697;
        double r7418699 = r7418677 - r7418698;
        double r7418700 = log(r7418679);
        double r7418701 = r7418699 * r7418700;
        double r7418702 = r7418698 + r7418701;
        double r7418703 = r7418695 + r7418702;
        double r7418704 = r7418703 / r7418673;
        double r7418705 = r7418677 * r7418704;
        double r7418706 = r7418676 * r7418705;
        double r7418707 = 1.540498293983816e+208;
        bool r7418708 = r7418673 <= r7418707;
        double r7418709 = r7418681 / r7418678;
        double r7418710 = r7418679 / r7418678;
        double r7418711 = r7418709 - r7418710;
        double r7418712 = r7418711 * r7418676;
        double r7418713 = r7418677 * r7418700;
        double r7418714 = 1.0;
        double r7418715 = r7418695 + r7418714;
        double r7418716 = r7418713 + r7418715;
        double r7418717 = r7418716 - r7418679;
        double r7418718 = r7418717 / r7418678;
        double r7418719 = r7418676 * r7418718;
        double r7418720 = r7418708 ? r7418712 : r7418719;
        double r7418721 = r7418694 ? r7418706 : r7418720;
        double r7418722 = r7418675 ? r7418692 : r7418721;
        return r7418722;
}

Error

Bits error versus i

Bits error versus n

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original42.9
Target42.1
Herbie22.2
\[100 \cdot \frac{e^{n \cdot \begin{array}{l} \mathbf{if}\;1 + \frac{i}{n} = 1:\\ \;\;\;\;\frac{i}{n}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{i}{n} \cdot \log \left(1 + \frac{i}{n}\right)}{\left(\frac{i}{n} + 1\right) - 1}\\ \end{array}} - 1}{\frac{i}{n}}\]

Derivation

  1. Split input into 4 regimes
  2. if i < -7.524185979796087e-08

    1. Initial program 30.2

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
    2. Using strategy rm
    3. Applied flip3--30.2

      \[\leadsto 100 \cdot \frac{\color{blue}{\frac{{\left({\left(1 + \frac{i}{n}\right)}^{n}\right)}^{3} - {1}^{3}}{{\left(1 + \frac{i}{n}\right)}^{n} \cdot {\left(1 + \frac{i}{n}\right)}^{n} + \left(1 \cdot 1 + {\left(1 + \frac{i}{n}\right)}^{n} \cdot 1\right)}}}{\frac{i}{n}}\]
    4. Simplified30.2

      \[\leadsto 100 \cdot \frac{\frac{\color{blue}{\left({\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n}\right) \cdot {\left(\frac{i}{n} + 1\right)}^{n} - 1 \cdot \left(1 \cdot 1\right)}}{{\left(1 + \frac{i}{n}\right)}^{n} \cdot {\left(1 + \frac{i}{n}\right)}^{n} + \left(1 \cdot 1 + {\left(1 + \frac{i}{n}\right)}^{n} \cdot 1\right)}}{\frac{i}{n}}\]
    5. Simplified30.2

      \[\leadsto 100 \cdot \frac{\frac{\left({\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n}\right) \cdot {\left(\frac{i}{n} + 1\right)}^{n} - 1 \cdot \left(1 \cdot 1\right)}{\color{blue}{{\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n} + 1 \cdot \left({\left(\frac{i}{n} + 1\right)}^{n} + 1\right)}}}{\frac{i}{n}}\]

    if -7.524185979796087e-08 < i < 1.9432388931584246

    1. Initial program 50.4

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
    2. Taylor expanded around 0 34.1

      \[\leadsto 100 \cdot \frac{\color{blue}{\left(\log 1 \cdot n + \left(1 \cdot i + 0.5 \cdot {i}^{2}\right)\right) - 0.5 \cdot \left(\log 1 \cdot {i}^{2}\right)}}{\frac{i}{n}}\]
    3. Simplified34.1

      \[\leadsto 100 \cdot \frac{\color{blue}{\left(\left(i \cdot i\right) \cdot 0.5 + 1 \cdot i\right) + \left(n \cdot \log 1 - \log 1 \cdot \left(\left(i \cdot i\right) \cdot 0.5\right)\right)}}{\frac{i}{n}}\]
    4. Using strategy rm
    5. Applied associate-/r/17.0

      \[\leadsto 100 \cdot \color{blue}{\left(\frac{\left(\left(i \cdot i\right) \cdot 0.5 + 1 \cdot i\right) + \left(n \cdot \log 1 - \log 1 \cdot \left(\left(i \cdot i\right) \cdot 0.5\right)\right)}{i} \cdot n\right)}\]
    6. Simplified17.0

      \[\leadsto 100 \cdot \left(\color{blue}{\frac{\left(\log 1 \cdot \left(n - i \cdot \left(i \cdot 0.5\right)\right) + i \cdot \left(i \cdot 0.5\right)\right) + 1 \cdot i}{i}} \cdot n\right)\]

    if 1.9432388931584246 < i < 1.540498293983816e+208

    1. Initial program 30.7

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
    2. Using strategy rm
    3. Applied div-sub30.7

      \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right)}\]

    if 1.540498293983816e+208 < i

    1. Initial program 31.8

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
    2. Taylor expanded around 0 34.0

      \[\leadsto 100 \cdot \frac{\color{blue}{\left(\log 1 \cdot n + \left(1 \cdot i + 1\right)\right)} - 1}{\frac{i}{n}}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification22.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;i \le -7.524185979796087207979591237813621340536 \cdot 10^{-8}:\\ \;\;\;\;100 \cdot \frac{\frac{{\left(\frac{i}{n} + 1\right)}^{n} \cdot \left({\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n}\right) - \left(1 \cdot 1\right) \cdot 1}{{\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n} + \left(1 + {\left(\frac{i}{n} + 1\right)}^{n}\right) \cdot 1}}{\frac{i}{n}}\\ \mathbf{elif}\;i \le 1.943238893158424573925913136918097734451:\\ \;\;\;\;100 \cdot \left(n \cdot \frac{i \cdot 1 + \left(i \cdot \left(0.5 \cdot i\right) + \left(n - i \cdot \left(0.5 \cdot i\right)\right) \cdot \log 1\right)}{i}\right)\\ \mathbf{elif}\;i \le 1.540498293983815894197419121524134450797 \cdot 10^{208}:\\ \;\;\;\;\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right) \cdot 100\\ \mathbf{else}:\\ \;\;\;\;100 \cdot \frac{\left(n \cdot \log 1 + \left(i \cdot 1 + 1\right)\right) - 1}{\frac{i}{n}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019171 
(FPCore (i n)
  :name "Compound Interest"

  :herbie-target
  (* 100.0 (/ (- (exp (* n (if (== (+ 1.0 (/ i n)) 1.0) (/ i n) (/ (* (/ i n) (log (+ 1.0 (/ i n)))) (- (+ (/ i n) 1.0) 1.0))))) 1.0) (/ i n)))

  (* 100.0 (/ (- (pow (+ 1.0 (/ i n)) n) 1.0) (/ i n))))