Average Error: 42.2 → 20.8
Time: 34.1s
Precision: 64
\[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
\[\begin{array}{l} \mathbf{if}\;n \le -1.3019374668740835:\\ \;\;\;\;100 \cdot \left(\left(n + \frac{1}{2} \cdot \left(i \cdot n\right)\right) + \left(\left(i \cdot i\right) \cdot \frac{1}{6}\right) \cdot n\right)\\ \mathbf{elif}\;n \le 5.021135972250703 \cdot 10^{-197}:\\ \;\;\;\;0\\ \mathbf{else}:\\ \;\;\;\;100 \cdot \left(\left(n + \frac{1}{2} \cdot \left(i \cdot n\right)\right) + \left(\left(i \cdot i\right) \cdot \frac{1}{6}\right) \cdot n\right)\\ \end{array}\]
100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}
\begin{array}{l}
\mathbf{if}\;n \le -1.3019374668740835:\\
\;\;\;\;100 \cdot \left(\left(n + \frac{1}{2} \cdot \left(i \cdot n\right)\right) + \left(\left(i \cdot i\right) \cdot \frac{1}{6}\right) \cdot n\right)\\

\mathbf{elif}\;n \le 5.021135972250703 \cdot 10^{-197}:\\
\;\;\;\;0\\

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

\end{array}
double f(double i, double n) {
        double r2891950 = 100.0;
        double r2891951 = 1.0;
        double r2891952 = i;
        double r2891953 = n;
        double r2891954 = r2891952 / r2891953;
        double r2891955 = r2891951 + r2891954;
        double r2891956 = pow(r2891955, r2891953);
        double r2891957 = r2891956 - r2891951;
        double r2891958 = r2891957 / r2891954;
        double r2891959 = r2891950 * r2891958;
        return r2891959;
}

double f(double i, double n) {
        double r2891960 = n;
        double r2891961 = -1.3019374668740835;
        bool r2891962 = r2891960 <= r2891961;
        double r2891963 = 100.0;
        double r2891964 = 0.5;
        double r2891965 = i;
        double r2891966 = r2891965 * r2891960;
        double r2891967 = r2891964 * r2891966;
        double r2891968 = r2891960 + r2891967;
        double r2891969 = r2891965 * r2891965;
        double r2891970 = 0.16666666666666666;
        double r2891971 = r2891969 * r2891970;
        double r2891972 = r2891971 * r2891960;
        double r2891973 = r2891968 + r2891972;
        double r2891974 = r2891963 * r2891973;
        double r2891975 = 5.021135972250703e-197;
        bool r2891976 = r2891960 <= r2891975;
        double r2891977 = 0.0;
        double r2891978 = r2891976 ? r2891977 : r2891974;
        double r2891979 = r2891962 ? r2891974 : r2891978;
        return r2891979;
}

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.2
Target42.2
Herbie20.8
\[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 2 regimes
  2. if n < -1.3019374668740835 or 5.021135972250703e-197 < n

    1. Initial program 51.9

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity51.9

      \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{\color{blue}{1 \cdot n}}}\]
    4. Applied add-cube-cbrt52.1

      \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{\color{blue}{\left(\sqrt[3]{i} \cdot \sqrt[3]{i}\right) \cdot \sqrt[3]{i}}}{1 \cdot n}}\]
    5. Applied times-frac52.1

      \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{\frac{\sqrt[3]{i} \cdot \sqrt[3]{i}}{1} \cdot \frac{\sqrt[3]{i}}{n}}}\]
    6. Applied associate-/r*52.2

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

      \[\leadsto 100 \cdot \frac{\color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\sqrt[3]{i} \cdot \sqrt[3]{i}}}}{\frac{\sqrt[3]{i}}{n}}\]
    8. Taylor expanded around 0 27.6

      \[\leadsto 100 \cdot \frac{\frac{\color{blue}{i + \left(\frac{1}{2} \cdot {i}^{2} + \frac{1}{6} \cdot {i}^{3}\right)}}{\sqrt[3]{i} \cdot \sqrt[3]{i}}}{\frac{\sqrt[3]{i}}{n}}\]
    9. Simplified27.6

      \[\leadsto 100 \cdot \frac{\frac{\color{blue}{\left(i + \frac{1}{2} \cdot \left(i \cdot i\right)\right) + \frac{1}{6} \cdot \left(i \cdot \left(i \cdot i\right)\right)}}{\sqrt[3]{i} \cdot \sqrt[3]{i}}}{\frac{\sqrt[3]{i}}{n}}\]
    10. Using strategy rm
    11. Applied div-inv27.6

      \[\leadsto 100 \cdot \frac{\frac{\left(i + \frac{1}{2} \cdot \left(i \cdot i\right)\right) + \frac{1}{6} \cdot \left(i \cdot \left(i \cdot i\right)\right)}{\sqrt[3]{i} \cdot \sqrt[3]{i}}}{\color{blue}{\sqrt[3]{i} \cdot \frac{1}{n}}}\]
    12. Applied *-un-lft-identity27.6

      \[\leadsto 100 \cdot \frac{\frac{\color{blue}{1 \cdot \left(\left(i + \frac{1}{2} \cdot \left(i \cdot i\right)\right) + \frac{1}{6} \cdot \left(i \cdot \left(i \cdot i\right)\right)\right)}}{\sqrt[3]{i} \cdot \sqrt[3]{i}}}{\sqrt[3]{i} \cdot \frac{1}{n}}\]
    13. Applied times-frac27.6

      \[\leadsto 100 \cdot \frac{\color{blue}{\frac{1}{\sqrt[3]{i}} \cdot \frac{\left(i + \frac{1}{2} \cdot \left(i \cdot i\right)\right) + \frac{1}{6} \cdot \left(i \cdot \left(i \cdot i\right)\right)}{\sqrt[3]{i}}}}{\sqrt[3]{i} \cdot \frac{1}{n}}\]
    14. Applied times-frac24.6

      \[\leadsto 100 \cdot \color{blue}{\left(\frac{\frac{1}{\sqrt[3]{i}}}{\sqrt[3]{i}} \cdot \frac{\frac{\left(i + \frac{1}{2} \cdot \left(i \cdot i\right)\right) + \frac{1}{6} \cdot \left(i \cdot \left(i \cdot i\right)\right)}{\sqrt[3]{i}}}{\frac{1}{n}}\right)}\]
    15. Taylor expanded around 0 22.7

      \[\leadsto 100 \cdot \color{blue}{\left(\frac{1}{6} \cdot \left({i}^{2} \cdot n\right) + \left(n + \frac{1}{2} \cdot \left(i \cdot n\right)\right)\right)}\]
    16. Simplified22.7

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

    if -1.3019374668740835 < n < 5.021135972250703e-197

    1. Initial program 20.7

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

      \[\leadsto \color{blue}{0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification20.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \le -1.3019374668740835:\\ \;\;\;\;100 \cdot \left(\left(n + \frac{1}{2} \cdot \left(i \cdot n\right)\right) + \left(\left(i \cdot i\right) \cdot \frac{1}{6}\right) \cdot n\right)\\ \mathbf{elif}\;n \le 5.021135972250703 \cdot 10^{-197}:\\ \;\;\;\;0\\ \mathbf{else}:\\ \;\;\;\;100 \cdot \left(\left(n + \frac{1}{2} \cdot \left(i \cdot n\right)\right) + \left(\left(i \cdot i\right) \cdot \frac{1}{6}\right) \cdot n\right)\\ \end{array}\]

Reproduce

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

  :herbie-target
  (* 100 (/ (- (exp (* n (if (== (+ 1 (/ i n)) 1) (/ i n) (/ (* (/ i n) (log (+ 1 (/ i n)))) (- (+ (/ i n) 1) 1))))) 1) (/ i n)))

  (* 100 (/ (- (pow (+ 1 (/ i n)) n) 1) (/ i n))))