#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Compound Interest";

double f_if(float i, float n) {
        float r26771 = 100;
        float r26772 = 1;
        float r26773 = i;
        float r26774 = n;
        float r26775 = r26773 / r26774;
        float r26776 = r26772 + r26775;
        float r26777 = pow(r26776, r26774);
        float r26778 = r26777 - r26772;
        float r26779 = r26778 / r26775;
        float r26780 = r26771 * r26779;
        return r26780;
}

double f_id(double i, double n) {
        double r26781 = 100;
        double r26782 = 1;
        double r26783 = i;
        double r26784 = n;
        double r26785 = r26783 / r26784;
        double r26786 = r26782 + r26785;
        double r26787 = pow(r26786, r26784);
        double r26788 = r26787 - r26782;
        double r26789 = r26788 / r26785;
        double r26790 = r26781 * r26789;
        return r26790;
}


double f_of(float i, float n) {
        float r26791 = i;
        float r26792 = -0.020151365423849446;
        bool r26793 = r26791 <= r26792;
        float r26794 = 100;
        float r26795 = 1;
        float r26796 = n;
        float r26797 = r26791 / r26796;
        float r26798 = r26795 + r26797;
        float r26799 = pow(r26798, r26796);
        float r26800 = r26799 * r26799;
        float r26801 = r26800 - r26795;
        float r26802 = r26799 + r26795;
        float r26803 = r26801 / r26802;
        float r26804 = r26803 / r26797;
        float r26805 = r26794 * r26804;
        float r26806 = 2.1500003764309357e+29;
        bool r26807 = r26791 <= r26806;
        float r26808 = 1/2;
        float r26809 = r26808 * r26791;
        float r26810 = r26795 + r26809;
        float r26811 = cbrt(r26810);
        float r26812 = r26811 * r26794;
        float r26813 = r26812 * r26811;
        float r26814 = r26811 * r26796;
        float r26815 = r26813 * r26814;
        float r26816 = r26791 * r26808;
        float r26817 = r26816 + r26795;
        float r26818 = r26795 / r26796;
        float r26819 = r26818 / r26794;
        float r26820 = exp(r26819);
        float r26821 = log(r26820);
        float r26822 = r26817 / r26821;
        float r26823 = r26807 ? r26815 : r26822;
        float r26824 = r26793 ? r26805 : r26823;
        return r26824;
}

double f_od(double i, double n) {
        double r26825 = i;
        double r26826 = -0.020151365423849446;
        bool r26827 = r26825 <= r26826;
        double r26828 = 100;
        double r26829 = 1;
        double r26830 = n;
        double r26831 = r26825 / r26830;
        double r26832 = r26829 + r26831;
        double r26833 = pow(r26832, r26830);
        double r26834 = r26833 * r26833;
        double r26835 = r26834 - r26829;
        double r26836 = r26833 + r26829;
        double r26837 = r26835 / r26836;
        double r26838 = r26837 / r26831;
        double r26839 = r26828 * r26838;
        double r26840 = 2.1500003764309357e+29;
        bool r26841 = r26825 <= r26840;
        double r26842 = 1/2;
        double r26843 = r26842 * r26825;
        double r26844 = r26829 + r26843;
        double r26845 = cbrt(r26844);
        double r26846 = r26845 * r26828;
        double r26847 = r26846 * r26845;
        double r26848 = r26845 * r26830;
        double r26849 = r26847 * r26848;
        double r26850 = r26825 * r26842;
        double r26851 = r26850 + r26829;
        double r26852 = r26829 / r26830;
        double r26853 = r26852 / r26828;
        double r26854 = exp(r26853);
        double r26855 = log(r26854);
        double r26856 = r26851 / r26855;
        double r26857 = r26841 ? r26849 : r26856;
        double r26858 = r26827 ? r26839 : r26857;
        return r26858;
}

void mpfr_fmod2(mpfr_t r, mpfr_t n, mpfr_t d, mpfr_rnd_t rmd) {
        mpfr_fmod(r, n, d, rmd);
        if (mpfr_cmp_ui(r, 0) < 0) mpfr_add(r, r, d, rmd);
}


static mpfr_t r26859, r26860, r26861, r26862, r26863, r26864, r26865, r26866, r26867, r26868;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3152);
        mpfr_init_set_str(r26859, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r26860, "1", 10, MPFR_RNDN);
        mpfr_init(r26861);
        mpfr_init(r26862);
        mpfr_init(r26863);
        mpfr_init(r26864);
        mpfr_init(r26865);
        mpfr_init(r26866);
        mpfr_init(r26867);
        mpfr_init(r26868);
}

double f_im(double i, double n) {
        ;
        ;
        mpfr_set_d(r26861, i, MPFR_RNDN);
        mpfr_set_d(r26862, n, MPFR_RNDN);
        mpfr_div(r26863, r26861, r26862, MPFR_RNDN);
        mpfr_add(r26864, r26860, r26863, MPFR_RNDN);
        mpfr_pow(r26865, r26864, r26862, MPFR_RNDN);
        mpfr_sub(r26866, r26865, r26860, MPFR_RNDN);
        mpfr_div(r26867, r26866, r26863, MPFR_RNDN);
        mpfr_mul(r26868, r26859, r26867, MPFR_RNDN);
        return mpfr_get_d(r26868, MPFR_RNDN);
}

static mpfr_t r26869, r26870, r26871, r26872, r26873, r26874, r26875, r26876, r26877, r26878, r26879, r26880, r26881, r26882, r26883, r26884, r26885, r26886, r26887, r26888, r26889, r26890, r26891, r26892, r26893, r26894, r26895, r26896, r26897, r26898, r26899, r26900, r26901, r26902;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r26869);
        mpfr_init_set_str(r26870, "-0.020151365423849446", 10, MPFR_RNDN);
        mpfr_init(r26871);
        mpfr_init_set_str(r26872, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r26873, "1", 10, MPFR_RNDN);
        mpfr_init(r26874);
        mpfr_init(r26875);
        mpfr_init(r26876);
        mpfr_init(r26877);
        mpfr_init(r26878);
        mpfr_init(r26879);
        mpfr_init(r26880);
        mpfr_init(r26881);
        mpfr_init(r26882);
        mpfr_init(r26883);
        mpfr_init_set_str(r26884, "2.1500003764309357e+29", 10, MPFR_RNDN);
        mpfr_init(r26885);
        mpfr_init_set_str(r26886, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26887);
        mpfr_init(r26888);
        mpfr_init(r26889);
        mpfr_init(r26890);
        mpfr_init(r26891);
        mpfr_init(r26892);
        mpfr_init(r26893);
        mpfr_init(r26894);
        mpfr_init(r26895);
        mpfr_init(r26896);
        mpfr_init(r26897);
        mpfr_init(r26898);
        mpfr_init(r26899);
        mpfr_init(r26900);
        mpfr_init(r26901);
        mpfr_init(r26902);
}

double f_fm(double i, double n) {
        mpfr_set_d(r26869, i, MPFR_RNDN);
        ;
        mpfr_set_si(r26871, mpfr_cmp(r26869, r26870) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r26874, n, MPFR_RNDN);
        mpfr_div(r26875, r26869, r26874, MPFR_RNDN);
        mpfr_add(r26876, r26873, r26875, MPFR_RNDN);
        mpfr_pow(r26877, r26876, r26874, MPFR_RNDN);
        mpfr_mul(r26878, r26877, r26877, MPFR_RNDN);
        mpfr_sub(r26879, r26878, r26873, MPFR_RNDN);
        mpfr_add(r26880, r26877, r26873, MPFR_RNDN);
        mpfr_div(r26881, r26879, r26880, MPFR_RNDN);
        mpfr_div(r26882, r26881, r26875, MPFR_RNDN);
        mpfr_mul(r26883, r26872, r26882, MPFR_RNDN);
        ;
        mpfr_set_si(r26885, mpfr_cmp(r26869, r26884) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r26887, r26886, r26869, MPFR_RNDN);
        mpfr_add(r26888, r26873, r26887, MPFR_RNDN);
        mpfr_cbrt(r26889, r26888, MPFR_RNDN);
        mpfr_mul(r26890, r26889, r26872, MPFR_RNDN);
        mpfr_mul(r26891, r26890, r26889, MPFR_RNDN);
        mpfr_mul(r26892, r26889, r26874, MPFR_RNDN);
        mpfr_mul(r26893, r26891, r26892, MPFR_RNDN);
        mpfr_mul(r26894, r26869, r26886, MPFR_RNDN);
        mpfr_add(r26895, r26894, r26873, MPFR_RNDN);
        mpfr_div(r26896, r26873, r26874, MPFR_RNDN);
        mpfr_div(r26897, r26896, r26872, MPFR_RNDN);
        mpfr_exp(r26898, r26897, MPFR_RNDN);
        mpfr_log(r26899, r26898, MPFR_RNDN);
        mpfr_div(r26900, r26895, r26899, MPFR_RNDN);
        if (mpfr_get_si(r26885, MPFR_RNDN)) { mpfr_set(r26901, r26893, MPFR_RNDN); } else { mpfr_set(r26901, r26900, MPFR_RNDN); };
        if (mpfr_get_si(r26871, MPFR_RNDN)) { mpfr_set(r26902, r26883, MPFR_RNDN); } else { mpfr_set(r26902, r26901, MPFR_RNDN); };
        return mpfr_get_d(r26902, MPFR_RNDN);
}

static mpfr_t r26903, r26904, r26905, r26906, r26907, r26908, r26909, r26910, r26911, r26912, r26913, r26914, r26915, r26916, r26917, r26918, r26919, r26920, r26921, r26922, r26923, r26924, r26925, r26926, r26927, r26928, r26929, r26930, r26931, r26932, r26933, r26934, r26935, r26936;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r26903);
        mpfr_init_set_str(r26904, "-0.020151365423849446", 10, MPFR_RNDN);
        mpfr_init(r26905);
        mpfr_init_set_str(r26906, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r26907, "1", 10, MPFR_RNDN);
        mpfr_init(r26908);
        mpfr_init(r26909);
        mpfr_init(r26910);
        mpfr_init(r26911);
        mpfr_init(r26912);
        mpfr_init(r26913);
        mpfr_init(r26914);
        mpfr_init(r26915);
        mpfr_init(r26916);
        mpfr_init(r26917);
        mpfr_init_set_str(r26918, "2.1500003764309357e+29", 10, MPFR_RNDN);
        mpfr_init(r26919);
        mpfr_init_set_str(r26920, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26921);
        mpfr_init(r26922);
        mpfr_init(r26923);
        mpfr_init(r26924);
        mpfr_init(r26925);
        mpfr_init(r26926);
        mpfr_init(r26927);
        mpfr_init(r26928);
        mpfr_init(r26929);
        mpfr_init(r26930);
        mpfr_init(r26931);
        mpfr_init(r26932);
        mpfr_init(r26933);
        mpfr_init(r26934);
        mpfr_init(r26935);
        mpfr_init(r26936);
}

double f_dm(double i, double n) {
        mpfr_set_d(r26903, i, MPFR_RNDN);
        ;
        mpfr_set_si(r26905, mpfr_cmp(r26903, r26904) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r26908, n, MPFR_RNDN);
        mpfr_div(r26909, r26903, r26908, MPFR_RNDN);
        mpfr_add(r26910, r26907, r26909, MPFR_RNDN);
        mpfr_pow(r26911, r26910, r26908, MPFR_RNDN);
        mpfr_mul(r26912, r26911, r26911, MPFR_RNDN);
        mpfr_sub(r26913, r26912, r26907, MPFR_RNDN);
        mpfr_add(r26914, r26911, r26907, MPFR_RNDN);
        mpfr_div(r26915, r26913, r26914, MPFR_RNDN);
        mpfr_div(r26916, r26915, r26909, MPFR_RNDN);
        mpfr_mul(r26917, r26906, r26916, MPFR_RNDN);
        ;
        mpfr_set_si(r26919, mpfr_cmp(r26903, r26918) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r26921, r26920, r26903, MPFR_RNDN);
        mpfr_add(r26922, r26907, r26921, MPFR_RNDN);
        mpfr_cbrt(r26923, r26922, MPFR_RNDN);
        mpfr_mul(r26924, r26923, r26906, MPFR_RNDN);
        mpfr_mul(r26925, r26924, r26923, MPFR_RNDN);
        mpfr_mul(r26926, r26923, r26908, MPFR_RNDN);
        mpfr_mul(r26927, r26925, r26926, MPFR_RNDN);
        mpfr_mul(r26928, r26903, r26920, MPFR_RNDN);
        mpfr_add(r26929, r26928, r26907, MPFR_RNDN);
        mpfr_div(r26930, r26907, r26908, MPFR_RNDN);
        mpfr_div(r26931, r26930, r26906, MPFR_RNDN);
        mpfr_exp(r26932, r26931, MPFR_RNDN);
        mpfr_log(r26933, r26932, MPFR_RNDN);
        mpfr_div(r26934, r26929, r26933, MPFR_RNDN);
        if (mpfr_get_si(r26919, MPFR_RNDN)) { mpfr_set(r26935, r26927, MPFR_RNDN); } else { mpfr_set(r26935, r26934, MPFR_RNDN); };
        if (mpfr_get_si(r26905, MPFR_RNDN)) { mpfr_set(r26936, r26917, MPFR_RNDN); } else { mpfr_set(r26936, r26935, MPFR_RNDN); };
        return mpfr_get_d(r26936, MPFR_RNDN);
}

