Average Error: 42.4 → 22.0
Time: 1.2m
Precision: 64
\[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
\[\begin{array}{l} \mathbf{if}\;i \le -1.1667814537595314 \cdot 10^{+37}:\\ \;\;\;\;100 \cdot \frac{n \cdot \left({\left(\frac{i}{n} + 1\right)}^{n} - 1\right)}{i}\\ \mathbf{elif}\;i \le -1.8925394344879332 \cdot 10^{-295}:\\ \;\;\;\;\frac{100}{i} \cdot \frac{\left(\log \left(e^{\left(i \cdot \left(i \cdot i\right)\right) \cdot \frac{1}{6}}\right) + \left(i \cdot i\right) \cdot \frac{1}{2}\right) + i}{\frac{1}{n}}\\ \mathbf{elif}\;i \le 3.902656912278071:\\ \;\;\;\;50 \cdot \left(n \cdot i\right) + n \cdot \left(\left(i \cdot i\right) \cdot \frac{50}{3} + 100\right)\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]
100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}
\begin{array}{l}
\mathbf{if}\;i \le -1.1667814537595314 \cdot 10^{+37}:\\
\;\;\;\;100 \cdot \frac{n \cdot \left({\left(\frac{i}{n} + 1\right)}^{n} - 1\right)}{i}\\

\mathbf{elif}\;i \le -1.8925394344879332 \cdot 10^{-295}:\\
\;\;\;\;\frac{100}{i} \cdot \frac{\left(\log \left(e^{\left(i \cdot \left(i \cdot i\right)\right) \cdot \frac{1}{6}}\right) + \left(i \cdot i\right) \cdot \frac{1}{2}\right) + i}{\frac{1}{n}}\\

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

\mathbf{else}:\\
\;\;\;\;0\\

\end{array}
double f(double i, double n) {
        double r5770487 = 100.0;
        double r5770488 = 1.0;
        double r5770489 = i;
        double r5770490 = n;
        double r5770491 = r5770489 / r5770490;
        double r5770492 = r5770488 + r5770491;
        double r5770493 = pow(r5770492, r5770490);
        double r5770494 = r5770493 - r5770488;
        double r5770495 = r5770494 / r5770491;
        double r5770496 = r5770487 * r5770495;
        return r5770496;
}

double f(double i, double n) {
        double r5770497 = i;
        double r5770498 = -1.1667814537595314e+37;
        bool r5770499 = r5770497 <= r5770498;
        double r5770500 = 100.0;
        double r5770501 = n;
        double r5770502 = r5770497 / r5770501;
        double r5770503 = 1.0;
        double r5770504 = r5770502 + r5770503;
        double r5770505 = pow(r5770504, r5770501);
        double r5770506 = r5770505 - r5770503;
        double r5770507 = r5770501 * r5770506;
        double r5770508 = r5770507 / r5770497;
        double r5770509 = r5770500 * r5770508;
        double r5770510 = -1.8925394344879332e-295;
        bool r5770511 = r5770497 <= r5770510;
        double r5770512 = r5770500 / r5770497;
        double r5770513 = r5770497 * r5770497;
        double r5770514 = r5770497 * r5770513;
        double r5770515 = 0.16666666666666666;
        double r5770516 = r5770514 * r5770515;
        double r5770517 = exp(r5770516);
        double r5770518 = log(r5770517);
        double r5770519 = 0.5;
        double r5770520 = r5770513 * r5770519;
        double r5770521 = r5770518 + r5770520;
        double r5770522 = r5770521 + r5770497;
        double r5770523 = r5770503 / r5770501;
        double r5770524 = r5770522 / r5770523;
        double r5770525 = r5770512 * r5770524;
        double r5770526 = 3.902656912278071;
        bool r5770527 = r5770497 <= r5770526;
        double r5770528 = 50.0;
        double r5770529 = r5770501 * r5770497;
        double r5770530 = r5770528 * r5770529;
        double r5770531 = 16.666666666666668;
        double r5770532 = r5770513 * r5770531;
        double r5770533 = r5770532 + r5770500;
        double r5770534 = r5770501 * r5770533;
        double r5770535 = r5770530 + r5770534;
        double r5770536 = 0.0;
        double r5770537 = r5770527 ? r5770535 : r5770536;
        double r5770538 = r5770511 ? r5770525 : r5770537;
        double r5770539 = r5770499 ? r5770509 : r5770538;
        return r5770539;
}

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.4
Target42.2
Herbie22.0
\[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 < -1.1667814537595314e+37

    1. Initial program 25.5

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

      \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{i \cdot \frac{1}{n}}}\]
    4. Applied *-un-lft-identity25.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-frac25.9

      \[\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*25.9

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

      \[\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-inv25.9

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

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

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

    if -1.1667814537595314e+37 < i < -1.8925394344879332e-295

    1. Initial program 49.1

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

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

      \[\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-frac49.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*49.4

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

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

      \[\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. Simplified20.6

      \[\leadsto \frac{100}{i} \cdot \frac{\color{blue}{\left(\left(i \cdot i\right) \cdot \frac{1}{2} + \left(i \cdot \left(i \cdot i\right)\right) \cdot \frac{1}{6}\right) + i}}{\frac{1}{n}}\]
    10. Using strategy rm
    11. Applied add-log-exp20.8

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

    if -1.8925394344879332e-295 < i < 3.902656912278071

    1. Initial program 50.0

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

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

      \[\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-frac50.3

      \[\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*50.4

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

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

      \[\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. Simplified17.1

      \[\leadsto \frac{100}{i} \cdot \frac{\color{blue}{\left(\left(i \cdot i\right) \cdot \frac{1}{2} + \left(i \cdot \left(i \cdot i\right)\right) \cdot \frac{1}{6}\right) + i}}{\frac{1}{n}}\]
    10. Using strategy rm
    11. Applied add-cube-cbrt17.7

      \[\leadsto \frac{100}{\color{blue}{\left(\sqrt[3]{i} \cdot \sqrt[3]{i}\right) \cdot \sqrt[3]{i}}} \cdot \frac{\left(\left(i \cdot i\right) \cdot \frac{1}{2} + \left(i \cdot \left(i \cdot i\right)\right) \cdot \frac{1}{6}\right) + i}{\frac{1}{n}}\]
    12. Applied add-cube-cbrt17.7

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

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

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

      \[\leadsto \frac{\sqrt[3]{100} \cdot \sqrt[3]{100}}{\sqrt[3]{i} \cdot \sqrt[3]{i}} \cdot \color{blue}{\left(\frac{\sqrt[3]{100}}{\sqrt[3]{i}} \cdot \left(\left(\left(i + i \cdot \left(i \cdot \left(i \cdot \frac{1}{6}\right)\right)\right) + \left(i \cdot i\right) \cdot \frac{1}{2}\right) \cdot n\right)\right)}\]
    16. Taylor expanded around inf 17.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)}\]
    17. Simplified17.1

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

    if 3.902656912278071 < i

    1. Initial program 32.4

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

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

      \[\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-frac32.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*32.4

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;i \le -1.1667814537595314 \cdot 10^{+37}:\\ \;\;\;\;100 \cdot \frac{n \cdot \left({\left(\frac{i}{n} + 1\right)}^{n} - 1\right)}{i}\\ \mathbf{elif}\;i \le -1.8925394344879332 \cdot 10^{-295}:\\ \;\;\;\;\frac{100}{i} \cdot \frac{\left(\log \left(e^{\left(i \cdot \left(i \cdot i\right)\right) \cdot \frac{1}{6}}\right) + \left(i \cdot i\right) \cdot \frac{1}{2}\right) + i}{\frac{1}{n}}\\ \mathbf{elif}\;i \le 3.902656912278071:\\ \;\;\;\;50 \cdot \left(n \cdot i\right) + n \cdot \left(\left(i \cdot i\right) \cdot \frac{50}{3} + 100\right)\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Reproduce

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