#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 r57822 = 100;
        float r57823 = 1;
        float r57824 = i;
        float r57825 = n;
        float r57826 = r57824 / r57825;
        float r57827 = r57823 + r57826;
        float r57828 = pow(r57827, r57825);
        float r57829 = r57828 - r57823;
        float r57830 = r57829 / r57826;
        float r57831 = r57822 * r57830;
        return r57831;
}

double f_id(double i, double n) {
        double r57832 = 100;
        double r57833 = 1;
        double r57834 = i;
        double r57835 = n;
        double r57836 = r57834 / r57835;
        double r57837 = r57833 + r57836;
        double r57838 = pow(r57837, r57835);
        double r57839 = r57838 - r57833;
        double r57840 = r57839 / r57836;
        double r57841 = r57832 * r57840;
        return r57841;
}


double f_of(float i, float n) {
        float r57842 = i;
        float r57843 = -0.21082488499509974;
        bool r57844 = r57842 <= r57843;
        float r57845 = 100;
        float r57846 = 1;
        float r57847 = n;
        float r57848 = r57842 / r57847;
        float r57849 = r57846 + r57848;
        float r57850 = pow(r57849, r57847);
        float r57851 = r57850 - r57846;
        float r57852 = cbrt(r57851);
        float r57853 = r57852 * r57852;
        float r57854 = r57853 * r57852;
        float r57855 = r57854 / r57848;
        float r57856 = r57845 * r57855;
        float r57857 = 1.1209319314423736e-07;
        bool r57858 = r57842 <= r57857;
        float r57859 = 50;
        float r57860 = r57859 * r57842;
        float r57861 = r57860 + r57845;
        float r57862 = r57861 * r57847;
        float r57863 = 6.465079142208068e+172;
        bool r57864 = r57842 <= r57863;
        float r57865 = log(r57847);
        float r57866 = log(r57842);
        float r57867 = r57865 - r57866;
        float r57868 = r57867 / r57847;
        float r57869 = exp(r57868);
        float r57870 = r57869 - r57846;
        float r57871 = r57870 / r57848;
        float r57872 = r57845 * r57871;
        float r57873 = r57864 ? r57856 : r57872;
        float r57874 = r57858 ? r57862 : r57873;
        float r57875 = r57844 ? r57856 : r57874;
        return r57875;
}

double f_od(double i, double n) {
        double r57876 = i;
        double r57877 = -0.21082488499509974;
        bool r57878 = r57876 <= r57877;
        double r57879 = 100;
        double r57880 = 1;
        double r57881 = n;
        double r57882 = r57876 / r57881;
        double r57883 = r57880 + r57882;
        double r57884 = pow(r57883, r57881);
        double r57885 = r57884 - r57880;
        double r57886 = cbrt(r57885);
        double r57887 = r57886 * r57886;
        double r57888 = r57887 * r57886;
        double r57889 = r57888 / r57882;
        double r57890 = r57879 * r57889;
        double r57891 = 1.1209319314423736e-07;
        bool r57892 = r57876 <= r57891;
        double r57893 = 50;
        double r57894 = r57893 * r57876;
        double r57895 = r57894 + r57879;
        double r57896 = r57895 * r57881;
        double r57897 = 6.465079142208068e+172;
        bool r57898 = r57876 <= r57897;
        double r57899 = log(r57881);
        double r57900 = log(r57876);
        double r57901 = r57899 - r57900;
        double r57902 = r57901 / r57881;
        double r57903 = exp(r57902);
        double r57904 = r57903 - r57880;
        double r57905 = r57904 / r57882;
        double r57906 = r57879 * r57905;
        double r57907 = r57898 ? r57890 : r57906;
        double r57908 = r57892 ? r57896 : r57907;
        double r57909 = r57878 ? r57890 : r57908;
        return r57909;
}

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 r57910, r57911, r57912, r57913, r57914, r57915, r57916, r57917, r57918, r57919;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2448);
        mpfr_init_set_str(r57910, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r57911, "1", 10, MPFR_RNDN);
        mpfr_init(r57912);
        mpfr_init(r57913);
        mpfr_init(r57914);
        mpfr_init(r57915);
        mpfr_init(r57916);
        mpfr_init(r57917);
        mpfr_init(r57918);
        mpfr_init(r57919);
}

double f_im(double i, double n) {
        ;
        ;
        mpfr_set_d(r57912, i, MPFR_RNDN);
        mpfr_set_d(r57913, n, MPFR_RNDN);
        mpfr_div(r57914, r57912, r57913, MPFR_RNDN);
        mpfr_add(r57915, r57911, r57914, MPFR_RNDN);
        mpfr_pow(r57916, r57915, r57913, MPFR_RNDN);
        mpfr_sub(r57917, r57916, r57911, MPFR_RNDN);
        mpfr_div(r57918, r57917, r57914, MPFR_RNDN);
        mpfr_mul(r57919, r57910, r57918, MPFR_RNDN);
        return mpfr_get_d(r57919, MPFR_RNDN);
}

static mpfr_t r57920, r57921, r57922, r57923, r57924, r57925, r57926, r57927, r57928, r57929, r57930, r57931, r57932, r57933, r57934, r57935, r57936, r57937, r57938, r57939, r57940, r57941, r57942, r57943, r57944, r57945, r57946, r57947, r57948, r57949, r57950, r57951, r57952, r57953;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r57920);
        mpfr_init_set_str(r57921, "-0.21082488499509974", 10, MPFR_RNDN);
        mpfr_init(r57922);
        mpfr_init_set_str(r57923, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r57924, "1", 10, MPFR_RNDN);
        mpfr_init(r57925);
        mpfr_init(r57926);
        mpfr_init(r57927);
        mpfr_init(r57928);
        mpfr_init(r57929);
        mpfr_init(r57930);
        mpfr_init(r57931);
        mpfr_init(r57932);
        mpfr_init(r57933);
        mpfr_init(r57934);
        mpfr_init_set_str(r57935, "1.1209319314423736e-07", 10, MPFR_RNDN);
        mpfr_init(r57936);
        mpfr_init_set_str(r57937, "50", 10, MPFR_RNDN);
        mpfr_init(r57938);
        mpfr_init(r57939);
        mpfr_init(r57940);
        mpfr_init_set_str(r57941, "6.465079142208068e+172", 10, MPFR_RNDN);
        mpfr_init(r57942);
        mpfr_init(r57943);
        mpfr_init(r57944);
        mpfr_init(r57945);
        mpfr_init(r57946);
        mpfr_init(r57947);
        mpfr_init(r57948);
        mpfr_init(r57949);
        mpfr_init(r57950);
        mpfr_init(r57951);
        mpfr_init(r57952);
        mpfr_init(r57953);
}

double f_fm(double i, double n) {
        mpfr_set_d(r57920, i, MPFR_RNDN);
        ;
        mpfr_set_si(r57922, mpfr_cmp(r57920, r57921) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r57925, n, MPFR_RNDN);
        mpfr_div(r57926, r57920, r57925, MPFR_RNDN);
        mpfr_add(r57927, r57924, r57926, MPFR_RNDN);
        mpfr_pow(r57928, r57927, r57925, MPFR_RNDN);
        mpfr_sub(r57929, r57928, r57924, MPFR_RNDN);
        mpfr_cbrt(r57930, r57929, MPFR_RNDN);
        mpfr_mul(r57931, r57930, r57930, MPFR_RNDN);
        mpfr_mul(r57932, r57931, r57930, MPFR_RNDN);
        mpfr_div(r57933, r57932, r57926, MPFR_RNDN);
        mpfr_mul(r57934, r57923, r57933, MPFR_RNDN);
        ;
        mpfr_set_si(r57936, mpfr_cmp(r57920, r57935) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r57938, r57937, r57920, MPFR_RNDN);
        mpfr_add(r57939, r57938, r57923, MPFR_RNDN);
        mpfr_mul(r57940, r57939, r57925, MPFR_RNDN);
        ;
        mpfr_set_si(r57942, mpfr_cmp(r57920, r57941) <= 0, MPFR_RNDN);
        mpfr_log(r57943, r57925, MPFR_RNDN);
        mpfr_log(r57944, r57920, MPFR_RNDN);
        mpfr_sub(r57945, r57943, r57944, MPFR_RNDN);
        mpfr_div(r57946, r57945, r57925, MPFR_RNDN);
        mpfr_exp(r57947, r57946, MPFR_RNDN);
        mpfr_sub(r57948, r57947, r57924, MPFR_RNDN);
        mpfr_div(r57949, r57948, r57926, MPFR_RNDN);
        mpfr_mul(r57950, r57923, r57949, MPFR_RNDN);
        if (mpfr_get_si(r57942, MPFR_RNDN)) { mpfr_set(r57951, r57934, MPFR_RNDN); } else { mpfr_set(r57951, r57950, MPFR_RNDN); };
        if (mpfr_get_si(r57936, MPFR_RNDN)) { mpfr_set(r57952, r57940, MPFR_RNDN); } else { mpfr_set(r57952, r57951, MPFR_RNDN); };
        if (mpfr_get_si(r57922, MPFR_RNDN)) { mpfr_set(r57953, r57934, MPFR_RNDN); } else { mpfr_set(r57953, r57952, MPFR_RNDN); };
        return mpfr_get_d(r57953, MPFR_RNDN);
}

static mpfr_t r57954, r57955, r57956, r57957, r57958, r57959, r57960, r57961, r57962, r57963, r57964, r57965, r57966, r57967, r57968, r57969, r57970, r57971, r57972, r57973, r57974, r57975, r57976, r57977, r57978, r57979, r57980, r57981, r57982, r57983, r57984, r57985, r57986, r57987;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r57954);
        mpfr_init_set_str(r57955, "-0.21082488499509974", 10, MPFR_RNDN);
        mpfr_init(r57956);
        mpfr_init_set_str(r57957, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r57958, "1", 10, MPFR_RNDN);
        mpfr_init(r57959);
        mpfr_init(r57960);
        mpfr_init(r57961);
        mpfr_init(r57962);
        mpfr_init(r57963);
        mpfr_init(r57964);
        mpfr_init(r57965);
        mpfr_init(r57966);
        mpfr_init(r57967);
        mpfr_init(r57968);
        mpfr_init_set_str(r57969, "1.1209319314423736e-07", 10, MPFR_RNDN);
        mpfr_init(r57970);
        mpfr_init_set_str(r57971, "50", 10, MPFR_RNDN);
        mpfr_init(r57972);
        mpfr_init(r57973);
        mpfr_init(r57974);
        mpfr_init_set_str(r57975, "6.465079142208068e+172", 10, MPFR_RNDN);
        mpfr_init(r57976);
        mpfr_init(r57977);
        mpfr_init(r57978);
        mpfr_init(r57979);
        mpfr_init(r57980);
        mpfr_init(r57981);
        mpfr_init(r57982);
        mpfr_init(r57983);
        mpfr_init(r57984);
        mpfr_init(r57985);
        mpfr_init(r57986);
        mpfr_init(r57987);
}

double f_dm(double i, double n) {
        mpfr_set_d(r57954, i, MPFR_RNDN);
        ;
        mpfr_set_si(r57956, mpfr_cmp(r57954, r57955) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r57959, n, MPFR_RNDN);
        mpfr_div(r57960, r57954, r57959, MPFR_RNDN);
        mpfr_add(r57961, r57958, r57960, MPFR_RNDN);
        mpfr_pow(r57962, r57961, r57959, MPFR_RNDN);
        mpfr_sub(r57963, r57962, r57958, MPFR_RNDN);
        mpfr_cbrt(r57964, r57963, MPFR_RNDN);
        mpfr_mul(r57965, r57964, r57964, MPFR_RNDN);
        mpfr_mul(r57966, r57965, r57964, MPFR_RNDN);
        mpfr_div(r57967, r57966, r57960, MPFR_RNDN);
        mpfr_mul(r57968, r57957, r57967, MPFR_RNDN);
        ;
        mpfr_set_si(r57970, mpfr_cmp(r57954, r57969) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r57972, r57971, r57954, MPFR_RNDN);
        mpfr_add(r57973, r57972, r57957, MPFR_RNDN);
        mpfr_mul(r57974, r57973, r57959, MPFR_RNDN);
        ;
        mpfr_set_si(r57976, mpfr_cmp(r57954, r57975) <= 0, MPFR_RNDN);
        mpfr_log(r57977, r57959, MPFR_RNDN);
        mpfr_log(r57978, r57954, MPFR_RNDN);
        mpfr_sub(r57979, r57977, r57978, MPFR_RNDN);
        mpfr_div(r57980, r57979, r57959, MPFR_RNDN);
        mpfr_exp(r57981, r57980, MPFR_RNDN);
        mpfr_sub(r57982, r57981, r57958, MPFR_RNDN);
        mpfr_div(r57983, r57982, r57960, MPFR_RNDN);
        mpfr_mul(r57984, r57957, r57983, MPFR_RNDN);
        if (mpfr_get_si(r57976, MPFR_RNDN)) { mpfr_set(r57985, r57968, MPFR_RNDN); } else { mpfr_set(r57985, r57984, MPFR_RNDN); };
        if (mpfr_get_si(r57970, MPFR_RNDN)) { mpfr_set(r57986, r57974, MPFR_RNDN); } else { mpfr_set(r57986, r57985, MPFR_RNDN); };
        if (mpfr_get_si(r57956, MPFR_RNDN)) { mpfr_set(r57987, r57968, MPFR_RNDN); } else { mpfr_set(r57987, r57986, MPFR_RNDN); };
        return mpfr_get_d(r57987, MPFR_RNDN);
}

