Average Error: 42.9 → 21.7
Time: 18.3s
Precision: 64
\[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}\]
\[\begin{array}{l} \mathbf{if}\;n \le -8.25471062341413314 \cdot 10^{133}:\\ \;\;\;\;{\left(\left(\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i} \cdot n\right) \cdot 100\right)}^{1}\\ \mathbf{elif}\;n \le -1.06647918148280056 \cdot 10^{98}:\\ \;\;\;\;\frac{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot 100}{\frac{1}{n}}\\ \mathbf{elif}\;n \le -273763342797823150000:\\ \;\;\;\;{\left(\left(\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i} \cdot n\right) \cdot 100\right)}^{1}\\ \mathbf{elif}\;n \le -1052610260.2415111:\\ \;\;\;\;\frac{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot 100}{\frac{1}{n}}\\ \mathbf{elif}\;n \le -1.4720208733212128:\\ \;\;\;\;{\left(\frac{\left(\left(\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)\right) \cdot n\right) \cdot 100}{i}\right)}^{1}\\ \mathbf{elif}\;n \le 6.9315088713900162 \cdot 10^{-118}:\\ \;\;\;\;100 \cdot \left(\log 1 \cdot {n}^{2}\right) + \left(50 \cdot \frac{{\left(\log 1\right)}^{2} \cdot {n}^{3}}{i} + 100 \cdot \frac{\log 1 \cdot {n}^{2}}{i}\right)\\ \mathbf{else}:\\ \;\;\;\;{\left(\left(\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i} \cdot n\right) \cdot 100\right)}^{1}\\ \end{array}\]
100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}
\begin{array}{l}
\mathbf{if}\;n \le -8.25471062341413314 \cdot 10^{133}:\\
\;\;\;\;{\left(\left(\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i} \cdot n\right) \cdot 100\right)}^{1}\\

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

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

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

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

\mathbf{elif}\;n \le 6.9315088713900162 \cdot 10^{-118}:\\
\;\;\;\;100 \cdot \left(\log 1 \cdot {n}^{2}\right) + \left(50 \cdot \frac{{\left(\log 1\right)}^{2} \cdot {n}^{3}}{i} + 100 \cdot \frac{\log 1 \cdot {n}^{2}}{i}\right)\\

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

\end{array}
double code(double i, double n) {
	return (100.0 * ((pow((1.0 + (i / n)), n) - 1.0) / (i / n)));
}
double code(double i, double n) {
	double temp;
	if ((n <= -8.254710623414133e+133)) {
		temp = pow(((((((1.0 * i) + ((0.5 * pow(i, 2.0)) + (log(1.0) * n))) - (0.5 * (pow(i, 2.0) * log(1.0)))) / i) * n) * 100.0), 1.0);
	} else {
		double temp_1;
		if ((n <= -1.0664791814828006e+98)) {
			temp_1 = ((((pow((1.0 + (i / n)), n) - 1.0) / i) * 100.0) / (1.0 / n));
		} else {
			double temp_2;
			if ((n <= -2.7376334279782315e+20)) {
				temp_2 = pow(((((((1.0 * i) + ((0.5 * pow(i, 2.0)) + (log(1.0) * n))) - (0.5 * (pow(i, 2.0) * log(1.0)))) / i) * n) * 100.0), 1.0);
			} else {
				double temp_3;
				if ((n <= -1052610260.2415111)) {
					temp_3 = ((((pow((1.0 + (i / n)), n) - 1.0) / i) * 100.0) / (1.0 / n));
				} else {
					double temp_4;
					if ((n <= -1.4720208733212128)) {
						temp_4 = pow(((((((1.0 * i) + ((0.5 * pow(i, 2.0)) + (log(1.0) * n))) - (0.5 * (pow(i, 2.0) * log(1.0)))) * n) * 100.0) / i), 1.0);
					} else {
						double temp_5;
						if ((n <= 6.931508871390016e-118)) {
							temp_5 = ((100.0 * (log(1.0) * pow(n, 2.0))) + ((50.0 * ((pow(log(1.0), 2.0) * pow(n, 3.0)) / i)) + (100.0 * ((log(1.0) * pow(n, 2.0)) / i))));
						} else {
							temp_5 = pow(((((((1.0 * i) + ((0.5 * pow(i, 2.0)) + (log(1.0) * n))) - (0.5 * (pow(i, 2.0) * log(1.0)))) / i) * n) * 100.0), 1.0);
						}
						temp_4 = temp_5;
					}
					temp_3 = temp_4;
				}
				temp_2 = temp_3;
			}
			temp_1 = temp_2;
		}
		temp = temp_1;
	}
	return temp;
}

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.8
Herbie21.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 4 regimes
  2. if n < -8.254710623414133e+133 or -1.0664791814828006e+98 < n < -2.7376334279782315e+20 or 6.931508871390016e-118 < n

    1. Initial program 54.1

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

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

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

      \[\leadsto 100 \cdot \frac{\frac{\color{blue}{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}}{i}}{\frac{1}{n}}\]
    6. Using strategy rm
    7. Applied pow121.7

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

      \[\leadsto \color{blue}{{100}^{1}} \cdot {\left(\frac{\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i}}{\frac{1}{n}}\right)}^{1}\]
    9. Applied pow-prod-down21.7

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

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

    if -8.254710623414133e+133 < n < -1.0664791814828006e+98 or -2.7376334279782315e+20 < n < -1052610260.2415111

    1. Initial program 40.1

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

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

      \[\leadsto 100 \cdot \color{blue}{\frac{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i}}{\frac{1}{n}}}\]
    5. Using strategy rm
    6. Applied associate-*r/39.9

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

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

    if -1052610260.2415111 < n < -1.4720208733212128

    1. Initial program 28.1

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

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

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

      \[\leadsto 100 \cdot \frac{\frac{\color{blue}{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}}{i}}{\frac{1}{n}}\]
    6. Using strategy rm
    7. Applied pow135.1

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

      \[\leadsto \color{blue}{{100}^{1}} \cdot {\left(\frac{\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i}}{\frac{1}{n}}\right)}^{1}\]
    9. Applied pow-prod-down35.1

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

      \[\leadsto {\color{blue}{\left(\left(\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i} \cdot n\right) \cdot 100\right)}}^{1}\]
    11. Using strategy rm
    12. Applied associate-*l/35.0

      \[\leadsto {\left(\color{blue}{\frac{\left(\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)\right) \cdot n}{i}} \cdot 100\right)}^{1}\]
    13. Applied associate-*l/35.1

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

    if -1.4720208733212128 < n < 6.931508871390016e-118

    1. Initial program 25.6

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \le -8.25471062341413314 \cdot 10^{133}:\\ \;\;\;\;{\left(\left(\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i} \cdot n\right) \cdot 100\right)}^{1}\\ \mathbf{elif}\;n \le -1.06647918148280056 \cdot 10^{98}:\\ \;\;\;\;\frac{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot 100}{\frac{1}{n}}\\ \mathbf{elif}\;n \le -273763342797823150000:\\ \;\;\;\;{\left(\left(\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i} \cdot n\right) \cdot 100\right)}^{1}\\ \mathbf{elif}\;n \le -1052610260.2415111:\\ \;\;\;\;\frac{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot 100}{\frac{1}{n}}\\ \mathbf{elif}\;n \le -1.4720208733212128:\\ \;\;\;\;{\left(\frac{\left(\left(\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)\right) \cdot n\right) \cdot 100}{i}\right)}^{1}\\ \mathbf{elif}\;n \le 6.9315088713900162 \cdot 10^{-118}:\\ \;\;\;\;100 \cdot \left(\log 1 \cdot {n}^{2}\right) + \left(50 \cdot \frac{{\left(\log 1\right)}^{2} \cdot {n}^{3}}{i} + 100 \cdot \frac{\log 1 \cdot {n}^{2}}{i}\right)\\ \mathbf{else}:\\ \;\;\;\;{\left(\left(\frac{\left(1 \cdot i + \left(0.5 \cdot {i}^{2} + \log 1 \cdot n\right)\right) - 0.5 \cdot \left({i}^{2} \cdot \log 1\right)}{i} \cdot n\right) \cdot 100\right)}^{1}\\ \end{array}\]

Reproduce

herbie shell --seed 2020058 
(FPCore (i n)
  :name "Compound Interest"
  :precision binary64

  :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))))