Average Error: 42.9 → 22.2
Time: 40.0s
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({\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n}\right) \cdot {\left(\frac{i}{n} + 1\right)}^{n} - \left(1 \cdot 1\right) \cdot 1}{{\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n} + \left({\left(\frac{i}{n} + 1\right)}^{n} + 1\right) \cdot 1}}{\frac{i}{n}}\\ \mathbf{elif}\;i \le 1.943238893158424573925913136918097734451:\\ \;\;\;\;\left(100 \cdot \frac{\left(i \cdot 1 + n \cdot \log 1\right) + \left(0.5 \cdot \left(i \cdot i\right) - \left(0.5 \cdot \left(i \cdot i\right)\right) \cdot \log 1\right)}{i}\right) \cdot n\\ \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(\left(1 + i \cdot 1\right) + n \cdot \log 1\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({\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n}\right) \cdot {\left(\frac{i}{n} + 1\right)}^{n} - \left(1 \cdot 1\right) \cdot 1}{{\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n} + \left({\left(\frac{i}{n} + 1\right)}^{n} + 1\right) \cdot 1}}{\frac{i}{n}}\\

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

\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(\left(1 + i \cdot 1\right) + n \cdot \log 1\right) - 1}{\frac{i}{n}}\\

\end{array}
double f(double i, double n) {
        double r9817033 = 100.0;
        double r9817034 = 1.0;
        double r9817035 = i;
        double r9817036 = n;
        double r9817037 = r9817035 / r9817036;
        double r9817038 = r9817034 + r9817037;
        double r9817039 = pow(r9817038, r9817036);
        double r9817040 = r9817039 - r9817034;
        double r9817041 = r9817040 / r9817037;
        double r9817042 = r9817033 * r9817041;
        return r9817042;
}

double f(double i, double n) {
        double r9817043 = i;
        double r9817044 = -7.524185979796087e-08;
        bool r9817045 = r9817043 <= r9817044;
        double r9817046 = 100.0;
        double r9817047 = n;
        double r9817048 = r9817043 / r9817047;
        double r9817049 = 1.0;
        double r9817050 = r9817048 + r9817049;
        double r9817051 = pow(r9817050, r9817047);
        double r9817052 = r9817051 * r9817051;
        double r9817053 = r9817052 * r9817051;
        double r9817054 = r9817049 * r9817049;
        double r9817055 = r9817054 * r9817049;
        double r9817056 = r9817053 - r9817055;
        double r9817057 = r9817051 + r9817049;
        double r9817058 = r9817057 * r9817049;
        double r9817059 = r9817052 + r9817058;
        double r9817060 = r9817056 / r9817059;
        double r9817061 = r9817060 / r9817048;
        double r9817062 = r9817046 * r9817061;
        double r9817063 = 1.9432388931584246;
        bool r9817064 = r9817043 <= r9817063;
        double r9817065 = r9817043 * r9817049;
        double r9817066 = log(r9817049);
        double r9817067 = r9817047 * r9817066;
        double r9817068 = r9817065 + r9817067;
        double r9817069 = 0.5;
        double r9817070 = r9817043 * r9817043;
        double r9817071 = r9817069 * r9817070;
        double r9817072 = r9817071 * r9817066;
        double r9817073 = r9817071 - r9817072;
        double r9817074 = r9817068 + r9817073;
        double r9817075 = r9817074 / r9817043;
        double r9817076 = r9817046 * r9817075;
        double r9817077 = r9817076 * r9817047;
        double r9817078 = 1.540498293983816e+208;
        bool r9817079 = r9817043 <= r9817078;
        double r9817080 = r9817051 / r9817048;
        double r9817081 = r9817049 / r9817048;
        double r9817082 = r9817080 - r9817081;
        double r9817083 = r9817082 * r9817046;
        double r9817084 = 1.0;
        double r9817085 = r9817084 + r9817065;
        double r9817086 = r9817085 + r9817067;
        double r9817087 = r9817086 - r9817049;
        double r9817088 = r9817087 / r9817048;
        double r9817089 = r9817046 * r9817088;
        double r9817090 = r9817079 ? r9817083 : r9817089;
        double r9817091 = r9817064 ? r9817077 : r9817090;
        double r9817092 = r9817045 ? r9817062 : r9817091;
        return r9817092;
}

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(\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(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(\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}{\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(n \cdot \log 1 + 1 \cdot i\right) + \left(\left(i \cdot i\right) \cdot 0.5 - \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(n \cdot \log 1 + 1 \cdot i\right) + \left(\left(i \cdot i\right) \cdot 0.5 - \log 1 \cdot \left(\left(i \cdot i\right) \cdot 0.5\right)\right)}{i} \cdot n\right)}\]
    6. Applied associate-*r*17.0

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

    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({\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n}\right) \cdot {\left(\frac{i}{n} + 1\right)}^{n} - \left(1 \cdot 1\right) \cdot 1}{{\left(\frac{i}{n} + 1\right)}^{n} \cdot {\left(\frac{i}{n} + 1\right)}^{n} + \left({\left(\frac{i}{n} + 1\right)}^{n} + 1\right) \cdot 1}}{\frac{i}{n}}\\ \mathbf{elif}\;i \le 1.943238893158424573925913136918097734451:\\ \;\;\;\;\left(100 \cdot \frac{\left(i \cdot 1 + n \cdot \log 1\right) + \left(0.5 \cdot \left(i \cdot i\right) - \left(0.5 \cdot \left(i \cdot i\right)\right) \cdot \log 1\right)}{i}\right) \cdot n\\ \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(\left(1 + i \cdot 1\right) + n \cdot \log 1\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))))