#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 r26231 = 100;
        float r26232 = 1;
        float r26233 = i;
        float r26234 = n;
        float r26235 = r26233 / r26234;
        float r26236 = r26232 + r26235;
        float r26237 = pow(r26236, r26234);
        float r26238 = r26237 - r26232;
        float r26239 = r26238 / r26235;
        float r26240 = r26231 * r26239;
        return r26240;
}

double f_id(double i, double n) {
        double r26241 = 100;
        double r26242 = 1;
        double r26243 = i;
        double r26244 = n;
        double r26245 = r26243 / r26244;
        double r26246 = r26242 + r26245;
        double r26247 = pow(r26246, r26244);
        double r26248 = r26247 - r26242;
        double r26249 = r26248 / r26245;
        double r26250 = r26241 * r26249;
        return r26250;
}


double f_of(float i, float n) {
        float r26251 = i;
        float r26252 = 1/2;
        float r26253 = r26251 * r26252;
        float r26254 = 1;
        float r26255 = r26253 + r26254;
        float r26256 = 0.9999999999999787;
        bool r26257 = r26255 <= r26256;
        float r26258 = 100;
        float r26259 = n;
        float r26260 = r26251 / r26259;
        float r26261 = r26254 + r26260;
        float r26262 = pow(r26261, r26259);
        float r26263 = r26262 - r26254;
        float r26264 = cbrt(r26263);
        float r26265 = r26264 * r26264;
        float r26266 = r26265 * r26264;
        float r26267 = r26266 / r26260;
        float r26268 = r26258 * r26267;
        float r26269 = 5.156473555252393e+23;
        bool r26270 = r26255 <= r26269;
        float r26271 = r26252 * r26251;
        float r26272 = r26254 + r26271;
        float r26273 = cbrt(r26272);
        float r26274 = r26273 * r26258;
        float r26275 = r26274 * r26273;
        float r26276 = r26273 * r26259;
        float r26277 = r26275 * r26276;
        float r26278 = r26254 / r26259;
        float r26279 = r26278 / r26258;
        float r26280 = exp(r26279);
        float r26281 = log(r26280);
        float r26282 = r26255 / r26281;
        float r26283 = r26270 ? r26277 : r26282;
        float r26284 = r26257 ? r26268 : r26283;
        return r26284;
}

double f_od(double i, double n) {
        double r26285 = i;
        double r26286 = 1/2;
        double r26287 = r26285 * r26286;
        double r26288 = 1;
        double r26289 = r26287 + r26288;
        double r26290 = 0.9999999999999787;
        bool r26291 = r26289 <= r26290;
        double r26292 = 100;
        double r26293 = n;
        double r26294 = r26285 / r26293;
        double r26295 = r26288 + r26294;
        double r26296 = pow(r26295, r26293);
        double r26297 = r26296 - r26288;
        double r26298 = cbrt(r26297);
        double r26299 = r26298 * r26298;
        double r26300 = r26299 * r26298;
        double r26301 = r26300 / r26294;
        double r26302 = r26292 * r26301;
        double r26303 = 5.156473555252393e+23;
        bool r26304 = r26289 <= r26303;
        double r26305 = r26286 * r26285;
        double r26306 = r26288 + r26305;
        double r26307 = cbrt(r26306);
        double r26308 = r26307 * r26292;
        double r26309 = r26308 * r26307;
        double r26310 = r26307 * r26293;
        double r26311 = r26309 * r26310;
        double r26312 = r26288 / r26293;
        double r26313 = r26312 / r26292;
        double r26314 = exp(r26313);
        double r26315 = log(r26314);
        double r26316 = r26289 / r26315;
        double r26317 = r26304 ? r26311 : r26316;
        double r26318 = r26291 ? r26302 : r26317;
        return r26318;
}

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 r26319, r26320, r26321, r26322, r26323, r26324, r26325, r26326, r26327, r26328;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3152);
        mpfr_init_set_str(r26319, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r26320, "1", 10, MPFR_RNDN);
        mpfr_init(r26321);
        mpfr_init(r26322);
        mpfr_init(r26323);
        mpfr_init(r26324);
        mpfr_init(r26325);
        mpfr_init(r26326);
        mpfr_init(r26327);
        mpfr_init(r26328);
}

double f_im(double i, double n) {
        ;
        ;
        mpfr_set_d(r26321, i, MPFR_RNDN);
        mpfr_set_d(r26322, n, MPFR_RNDN);
        mpfr_div(r26323, r26321, r26322, MPFR_RNDN);
        mpfr_add(r26324, r26320, r26323, MPFR_RNDN);
        mpfr_pow(r26325, r26324, r26322, MPFR_RNDN);
        mpfr_sub(r26326, r26325, r26320, MPFR_RNDN);
        mpfr_div(r26327, r26326, r26323, MPFR_RNDN);
        mpfr_mul(r26328, r26319, r26327, MPFR_RNDN);
        return mpfr_get_d(r26328, MPFR_RNDN);
}

static mpfr_t r26329, r26330, r26331, r26332, r26333, r26334, r26335, r26336, r26337, r26338, r26339, r26340, r26341, r26342, r26343, r26344, r26345, r26346, r26347, r26348, r26349, r26350, r26351, r26352, r26353, r26354, r26355, r26356, r26357, r26358, r26359, r26360, r26361, r26362;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r26329);
        mpfr_init_set_str(r26330, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26331);
        mpfr_init_set_str(r26332, "1", 10, MPFR_RNDN);
        mpfr_init(r26333);
        mpfr_init_set_str(r26334, "0.9999999999999787", 10, MPFR_RNDN);
        mpfr_init(r26335);
        mpfr_init_set_str(r26336, "100", 10, MPFR_RNDN);
        mpfr_init(r26337);
        mpfr_init(r26338);
        mpfr_init(r26339);
        mpfr_init(r26340);
        mpfr_init(r26341);
        mpfr_init(r26342);
        mpfr_init(r26343);
        mpfr_init(r26344);
        mpfr_init(r26345);
        mpfr_init(r26346);
        mpfr_init_set_str(r26347, "5.156473555252393e+23", 10, MPFR_RNDN);
        mpfr_init(r26348);
        mpfr_init(r26349);
        mpfr_init(r26350);
        mpfr_init(r26351);
        mpfr_init(r26352);
        mpfr_init(r26353);
        mpfr_init(r26354);
        mpfr_init(r26355);
        mpfr_init(r26356);
        mpfr_init(r26357);
        mpfr_init(r26358);
        mpfr_init(r26359);
        mpfr_init(r26360);
        mpfr_init(r26361);
        mpfr_init(r26362);
}

double f_fm(double i, double n) {
        mpfr_set_d(r26329, i, MPFR_RNDN);
        ;
        mpfr_mul(r26331, r26329, r26330, MPFR_RNDN);
        ;
        mpfr_add(r26333, r26331, r26332, MPFR_RNDN);
        ;
        mpfr_set_si(r26335, mpfr_cmp(r26333, r26334) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r26337, n, MPFR_RNDN);
        mpfr_div(r26338, r26329, r26337, MPFR_RNDN);
        mpfr_add(r26339, r26332, r26338, MPFR_RNDN);
        mpfr_pow(r26340, r26339, r26337, MPFR_RNDN);
        mpfr_sub(r26341, r26340, r26332, MPFR_RNDN);
        mpfr_cbrt(r26342, r26341, MPFR_RNDN);
        mpfr_mul(r26343, r26342, r26342, MPFR_RNDN);
        mpfr_mul(r26344, r26343, r26342, MPFR_RNDN);
        mpfr_div(r26345, r26344, r26338, MPFR_RNDN);
        mpfr_mul(r26346, r26336, r26345, MPFR_RNDN);
        ;
        mpfr_set_si(r26348, mpfr_cmp(r26333, r26347) <= 0, MPFR_RNDN);
        mpfr_mul(r26349, r26330, r26329, MPFR_RNDN);
        mpfr_add(r26350, r26332, r26349, MPFR_RNDN);
        mpfr_cbrt(r26351, r26350, MPFR_RNDN);
        mpfr_mul(r26352, r26351, r26336, MPFR_RNDN);
        mpfr_mul(r26353, r26352, r26351, MPFR_RNDN);
        mpfr_mul(r26354, r26351, r26337, MPFR_RNDN);
        mpfr_mul(r26355, r26353, r26354, MPFR_RNDN);
        mpfr_div(r26356, r26332, r26337, MPFR_RNDN);
        mpfr_div(r26357, r26356, r26336, MPFR_RNDN);
        mpfr_exp(r26358, r26357, MPFR_RNDN);
        mpfr_log(r26359, r26358, MPFR_RNDN);
        mpfr_div(r26360, r26333, r26359, MPFR_RNDN);
        if (mpfr_get_si(r26348, MPFR_RNDN)) { mpfr_set(r26361, r26355, MPFR_RNDN); } else { mpfr_set(r26361, r26360, MPFR_RNDN); };
        if (mpfr_get_si(r26335, MPFR_RNDN)) { mpfr_set(r26362, r26346, MPFR_RNDN); } else { mpfr_set(r26362, r26361, MPFR_RNDN); };
        return mpfr_get_d(r26362, MPFR_RNDN);
}

static mpfr_t r26363, r26364, r26365, r26366, r26367, r26368, r26369, r26370, r26371, r26372, r26373, r26374, r26375, r26376, r26377, r26378, r26379, r26380, r26381, r26382, r26383, r26384, r26385, r26386, r26387, r26388, r26389, r26390, r26391, r26392, r26393, r26394, r26395, r26396;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3152);
        mpfr_init(r26363);
        mpfr_init_set_str(r26364, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26365);
        mpfr_init_set_str(r26366, "1", 10, MPFR_RNDN);
        mpfr_init(r26367);
        mpfr_init_set_str(r26368, "0.9999999999999787", 10, MPFR_RNDN);
        mpfr_init(r26369);
        mpfr_init_set_str(r26370, "100", 10, MPFR_RNDN);
        mpfr_init(r26371);
        mpfr_init(r26372);
        mpfr_init(r26373);
        mpfr_init(r26374);
        mpfr_init(r26375);
        mpfr_init(r26376);
        mpfr_init(r26377);
        mpfr_init(r26378);
        mpfr_init(r26379);
        mpfr_init(r26380);
        mpfr_init_set_str(r26381, "5.156473555252393e+23", 10, MPFR_RNDN);
        mpfr_init(r26382);
        mpfr_init(r26383);
        mpfr_init(r26384);
        mpfr_init(r26385);
        mpfr_init(r26386);
        mpfr_init(r26387);
        mpfr_init(r26388);
        mpfr_init(r26389);
        mpfr_init(r26390);
        mpfr_init(r26391);
        mpfr_init(r26392);
        mpfr_init(r26393);
        mpfr_init(r26394);
        mpfr_init(r26395);
        mpfr_init(r26396);
}

double f_dm(double i, double n) {
        mpfr_set_d(r26363, i, MPFR_RNDN);
        ;
        mpfr_mul(r26365, r26363, r26364, MPFR_RNDN);
        ;
        mpfr_add(r26367, r26365, r26366, MPFR_RNDN);
        ;
        mpfr_set_si(r26369, mpfr_cmp(r26367, r26368) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r26371, n, MPFR_RNDN);
        mpfr_div(r26372, r26363, r26371, MPFR_RNDN);
        mpfr_add(r26373, r26366, r26372, MPFR_RNDN);
        mpfr_pow(r26374, r26373, r26371, MPFR_RNDN);
        mpfr_sub(r26375, r26374, r26366, MPFR_RNDN);
        mpfr_cbrt(r26376, r26375, MPFR_RNDN);
        mpfr_mul(r26377, r26376, r26376, MPFR_RNDN);
        mpfr_mul(r26378, r26377, r26376, MPFR_RNDN);
        mpfr_div(r26379, r26378, r26372, MPFR_RNDN);
        mpfr_mul(r26380, r26370, r26379, MPFR_RNDN);
        ;
        mpfr_set_si(r26382, mpfr_cmp(r26367, r26381) <= 0, MPFR_RNDN);
        mpfr_mul(r26383, r26364, r26363, MPFR_RNDN);
        mpfr_add(r26384, r26366, r26383, MPFR_RNDN);
        mpfr_cbrt(r26385, r26384, MPFR_RNDN);
        mpfr_mul(r26386, r26385, r26370, MPFR_RNDN);
        mpfr_mul(r26387, r26386, r26385, MPFR_RNDN);
        mpfr_mul(r26388, r26385, r26371, MPFR_RNDN);
        mpfr_mul(r26389, r26387, r26388, MPFR_RNDN);
        mpfr_div(r26390, r26366, r26371, MPFR_RNDN);
        mpfr_div(r26391, r26390, r26370, MPFR_RNDN);
        mpfr_exp(r26392, r26391, MPFR_RNDN);
        mpfr_log(r26393, r26392, MPFR_RNDN);
        mpfr_div(r26394, r26367, r26393, MPFR_RNDN);
        if (mpfr_get_si(r26382, MPFR_RNDN)) { mpfr_set(r26395, r26389, MPFR_RNDN); } else { mpfr_set(r26395, r26394, MPFR_RNDN); };
        if (mpfr_get_si(r26369, MPFR_RNDN)) { mpfr_set(r26396, r26380, MPFR_RNDN); } else { mpfr_set(r26396, r26395, MPFR_RNDN); };
        return mpfr_get_d(r26396, MPFR_RNDN);
}

