Average Error: 42.3 → 22.7
Time: 31.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.4608487543202562 \cdot 10^{+112}:\\ \;\;\;\;100 \cdot n + \left(\frac{50}{3} \cdot \left(\left(i \cdot i\right) \cdot n\right) + \left(i \cdot n\right) \cdot 50\right)\\ \mathbf{elif}\;n \le -0.5086740071675135:\\ \;\;\;\;\frac{100}{i} \cdot \left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{\frac{1}{n}} - n\right)\\ \mathbf{elif}\;n \le 6.641285833915873 \cdot 10^{-252}:\\ \;\;\;\;0\\ \mathbf{else}:\\ \;\;\;\;100 \cdot n + \left(\frac{50}{3} \cdot \left(\left(i \cdot i\right) \cdot n\right) + \left(i \cdot n\right) \cdot 50\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.4608487543202562 \cdot 10^{+112}:\\
\;\;\;\;100 \cdot n + \left(\frac{50}{3} \cdot \left(\left(i \cdot i\right) \cdot n\right) + \left(i \cdot n\right) \cdot 50\right)\\

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

\mathbf{elif}\;n \le 6.641285833915873 \cdot 10^{-252}:\\
\;\;\;\;0\\

\mathbf{else}:\\
\;\;\;\;100 \cdot n + \left(\frac{50}{3} \cdot \left(\left(i \cdot i\right) \cdot n\right) + \left(i \cdot n\right) \cdot 50\right)\\

\end{array}
double f(double i, double n) {
        double r2466171 = 100.0;
        double r2466172 = 1.0;
        double r2466173 = i;
        double r2466174 = n;
        double r2466175 = r2466173 / r2466174;
        double r2466176 = r2466172 + r2466175;
        double r2466177 = pow(r2466176, r2466174);
        double r2466178 = r2466177 - r2466172;
        double r2466179 = r2466178 / r2466175;
        double r2466180 = r2466171 * r2466179;
        return r2466180;
}

double f(double i, double n) {
        double r2466181 = n;
        double r2466182 = -1.4608487543202562e+112;
        bool r2466183 = r2466181 <= r2466182;
        double r2466184 = 100.0;
        double r2466185 = r2466184 * r2466181;
        double r2466186 = 16.666666666666668;
        double r2466187 = i;
        double r2466188 = r2466187 * r2466187;
        double r2466189 = r2466188 * r2466181;
        double r2466190 = r2466186 * r2466189;
        double r2466191 = r2466187 * r2466181;
        double r2466192 = 50.0;
        double r2466193 = r2466191 * r2466192;
        double r2466194 = r2466190 + r2466193;
        double r2466195 = r2466185 + r2466194;
        double r2466196 = -0.5086740071675135;
        bool r2466197 = r2466181 <= r2466196;
        double r2466198 = r2466184 / r2466187;
        double r2466199 = r2466187 / r2466181;
        double r2466200 = 1.0;
        double r2466201 = r2466199 + r2466200;
        double r2466202 = pow(r2466201, r2466181);
        double r2466203 = r2466200 / r2466181;
        double r2466204 = r2466202 / r2466203;
        double r2466205 = r2466204 - r2466181;
        double r2466206 = r2466198 * r2466205;
        double r2466207 = 6.641285833915873e-252;
        bool r2466208 = r2466181 <= r2466207;
        double r2466209 = 0.0;
        double r2466210 = r2466208 ? r2466209 : r2466195;
        double r2466211 = r2466197 ? r2466206 : r2466210;
        double r2466212 = r2466183 ? r2466195 : r2466211;
        return r2466212;
}

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.3
Target42.2
Herbie22.7
\[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 3 regimes
  2. if n < -1.4608487543202562e+112 or 6.641285833915873e-252 < n

    1. Initial program 54.3

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

      \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{i \cdot \frac{1}{n}}}\]
    4. Applied *-un-lft-identity54.3

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

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

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

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

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

      \[\leadsto \frac{100}{i} \cdot \frac{\color{blue}{\left(i + \left(i \cdot i\right) \cdot \frac{1}{2}\right) + \left(i \cdot \left(i \cdot i\right)\right) \cdot \frac{1}{6}}}{\frac{1}{n}}\]
    10. Taylor expanded around inf 23.1

      \[\leadsto \color{blue}{\frac{50}{3} \cdot \left({i}^{2} \cdot n\right) + \left(100 \cdot n + 50 \cdot \left(i \cdot n\right)\right)}\]
    11. Simplified23.1

      \[\leadsto \color{blue}{\left(\frac{50}{3} \cdot \left(n \cdot \left(i \cdot i\right)\right) + 50 \cdot \left(i \cdot n\right)\right) + n \cdot 100}\]

    if -1.4608487543202562e+112 < n < -0.5086740071675135

    1. Initial program 35.5

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

      \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{i \cdot \frac{1}{n}}}\]
    4. Applied *-un-lft-identity35.5

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

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

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

      \[\leadsto \color{blue}{\frac{100}{i}} \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{1}{n}}\]
    8. Using strategy rm
    9. Applied div-sub35.4

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

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

    if -0.5086740071675135 < n < 6.641285833915873e-252

    1. Initial program 18.3

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

      \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{i \cdot \frac{1}{n}}}\]
    4. Applied *-un-lft-identity18.3

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

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

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

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

      \[\leadsto \color{blue}{0}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification22.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \le -1.4608487543202562 \cdot 10^{+112}:\\ \;\;\;\;100 \cdot n + \left(\frac{50}{3} \cdot \left(\left(i \cdot i\right) \cdot n\right) + \left(i \cdot n\right) \cdot 50\right)\\ \mathbf{elif}\;n \le -0.5086740071675135:\\ \;\;\;\;\frac{100}{i} \cdot \left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{\frac{1}{n}} - n\right)\\ \mathbf{elif}\;n \le 6.641285833915873 \cdot 10^{-252}:\\ \;\;\;\;0\\ \mathbf{else}:\\ \;\;\;\;100 \cdot n + \left(\frac{50}{3} \cdot \left(\left(i \cdot i\right) \cdot n\right) + \left(i \cdot n\right) \cdot 50\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019151 
(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))))