#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 r22392 = 100;
        float r22393 = 1;
        float r22394 = i;
        float r22395 = n;
        float r22396 = r22394 / r22395;
        float r22397 = r22393 + r22396;
        float r22398 = pow(r22397, r22395);
        float r22399 = r22398 - r22393;
        float r22400 = r22399 / r22396;
        float r22401 = r22392 * r22400;
        return r22401;
}

double f_id(double i, double n) {
        double r22402 = 100;
        double r22403 = 1;
        double r22404 = i;
        double r22405 = n;
        double r22406 = r22404 / r22405;
        double r22407 = r22403 + r22406;
        double r22408 = pow(r22407, r22405);
        double r22409 = r22408 - r22403;
        double r22410 = r22409 / r22406;
        double r22411 = r22402 * r22410;
        return r22411;
}


double f_of(float i, float n) {
        float r22412 = i;
        float r22413 = -3.7647908108250176e-06;
        bool r22414 = r22412 <= r22413;
        float r22415 = 100;
        float r22416 = n;
        float r22417 = r22415 * r22416;
        float r22418 = r22417 / r22412;
        float r22419 = r22412 / r22416;
        float r22420 = log1p(r22419);
        float r22421 = r22420 * r22416;
        float r22422 = expm1(r22421);
        float r22423 = r22418 * r22422;
        float r22424 = 1.8831286213482759;
        bool r22425 = r22412 <= r22424;
        float r22426 = 50/3;
        float r22427 = r22412 * r22412;
        float r22428 = r22416 * r22427;
        float r22429 = 50;
        float r22430 = fma(r22412, r22429, r22415);
        float r22431 = r22416 * r22430;
        float r22432 = fma(r22426, r22428, r22431);
        float r22433 = 3.189350282604906e+149;
        bool r22434 = r22412 <= r22433;
        float r22435 = log(r22416);
        float r22436 = log(r22412);
        float r22437 = r22435 - r22436;
        float r22438 = r22437 / r22416;
        float r22439 = expm1(r22438);
        float r22440 = r22418 * r22439;
        float r22441 = r22434 ? r22423 : r22440;
        float r22442 = r22425 ? r22432 : r22441;
        float r22443 = r22414 ? r22423 : r22442;
        return r22443;
}

double f_od(double i, double n) {
        double r22444 = i;
        double r22445 = -3.7647908108250176e-06;
        bool r22446 = r22444 <= r22445;
        double r22447 = 100;
        double r22448 = n;
        double r22449 = r22447 * r22448;
        double r22450 = r22449 / r22444;
        double r22451 = r22444 / r22448;
        double r22452 = log1p(r22451);
        double r22453 = r22452 * r22448;
        double r22454 = expm1(r22453);
        double r22455 = r22450 * r22454;
        double r22456 = 1.8831286213482759;
        bool r22457 = r22444 <= r22456;
        double r22458 = 50/3;
        double r22459 = r22444 * r22444;
        double r22460 = r22448 * r22459;
        double r22461 = 50;
        double r22462 = fma(r22444, r22461, r22447);
        double r22463 = r22448 * r22462;
        double r22464 = fma(r22458, r22460, r22463);
        double r22465 = 3.189350282604906e+149;
        bool r22466 = r22444 <= r22465;
        double r22467 = log(r22448);
        double r22468 = log(r22444);
        double r22469 = r22467 - r22468;
        double r22470 = r22469 / r22448;
        double r22471 = expm1(r22470);
        double r22472 = r22450 * r22471;
        double r22473 = r22466 ? r22455 : r22472;
        double r22474 = r22457 ? r22464 : r22473;
        double r22475 = r22446 ? r22455 : r22474;
        return r22475;
}

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 r22476, r22477, r22478, r22479, r22480, r22481, r22482, r22483, r22484, r22485;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3216);
        mpfr_init_set_str(r22476, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r22477, "1", 10, MPFR_RNDN);
        mpfr_init(r22478);
        mpfr_init(r22479);
        mpfr_init(r22480);
        mpfr_init(r22481);
        mpfr_init(r22482);
        mpfr_init(r22483);
        mpfr_init(r22484);
        mpfr_init(r22485);
}

double f_im(double i, double n) {
        ;
        ;
        mpfr_set_d(r22478, i, MPFR_RNDN);
        mpfr_set_d(r22479, n, MPFR_RNDN);
        mpfr_div(r22480, r22478, r22479, MPFR_RNDN);
        mpfr_add(r22481, r22477, r22480, MPFR_RNDN);
        mpfr_pow(r22482, r22481, r22479, MPFR_RNDN);
        mpfr_sub(r22483, r22482, r22477, MPFR_RNDN);
        mpfr_div(r22484, r22483, r22480, MPFR_RNDN);
        mpfr_mul(r22485, r22476, r22484, MPFR_RNDN);
        return mpfr_get_d(r22485, MPFR_RNDN);
}

static mpfr_t r22486, r22487, r22488, r22489, r22490, r22491, r22492, r22493, r22494, r22495, r22496, r22497, r22498, r22499, r22500, r22501, r22502, r22503, r22504, r22505, r22506, r22507, r22508, r22509, r22510, r22511, r22512, r22513, r22514, r22515, r22516, r22517;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r22486);
        mpfr_init_set_str(r22487, "-3.7647908108250176e-06", 10, MPFR_RNDN);
        mpfr_init(r22488);
        mpfr_init_set_str(r22489, "100", 10, MPFR_RNDN);
        mpfr_init(r22490);
        mpfr_init(r22491);
        mpfr_init(r22492);
        mpfr_init(r22493);
        mpfr_init(r22494);
        mpfr_init(r22495);
        mpfr_init(r22496);
        mpfr_init(r22497);
        mpfr_init_set_str(r22498, "1.8831286213482759", 10, MPFR_RNDN);
        mpfr_init(r22499);
        mpfr_init_set_str(r22500, "50/3", 10, MPFR_RNDN);
        mpfr_init(r22501);
        mpfr_init(r22502);
        mpfr_init_set_str(r22503, "50", 10, MPFR_RNDN);
        mpfr_init(r22504);
        mpfr_init(r22505);
        mpfr_init(r22506);
        mpfr_init_set_str(r22507, "3.189350282604906e+149", 10, MPFR_RNDN);
        mpfr_init(r22508);
        mpfr_init(r22509);
        mpfr_init(r22510);
        mpfr_init(r22511);
        mpfr_init(r22512);
        mpfr_init(r22513);
        mpfr_init(r22514);
        mpfr_init(r22515);
        mpfr_init(r22516);
        mpfr_init(r22517);
}

double f_fm(double i, double n) {
        mpfr_set_d(r22486, i, MPFR_RNDN);
        ;
        mpfr_set_si(r22488, mpfr_cmp(r22486, r22487) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r22490, n, MPFR_RNDN);
        mpfr_mul(r22491, r22489, r22490, MPFR_RNDN);
        mpfr_div(r22492, r22491, r22486, MPFR_RNDN);
        mpfr_div(r22493, r22486, r22490, MPFR_RNDN);
        mpfr_log1p(r22494, r22493, MPFR_RNDN);
        mpfr_mul(r22495, r22494, r22490, MPFR_RNDN);
        mpfr_expm1(r22496, r22495, MPFR_RNDN);
        mpfr_mul(r22497, r22492, r22496, MPFR_RNDN);
        ;
        mpfr_set_si(r22499, mpfr_cmp(r22486, r22498) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r22501, r22486, r22486, MPFR_RNDN);
        mpfr_mul(r22502, r22490, r22501, MPFR_RNDN);
        ;
        mpfr_fma(r22504, r22486, r22503, r22489, MPFR_RNDN);
        mpfr_mul(r22505, r22490, r22504, MPFR_RNDN);
        mpfr_fma(r22506, r22500, r22502, r22505, MPFR_RNDN);
        ;
        mpfr_set_si(r22508, mpfr_cmp(r22486, r22507) <= 0, MPFR_RNDN);
        mpfr_log(r22509, r22490, MPFR_RNDN);
        mpfr_log(r22510, r22486, MPFR_RNDN);
        mpfr_sub(r22511, r22509, r22510, MPFR_RNDN);
        mpfr_div(r22512, r22511, r22490, MPFR_RNDN);
        mpfr_expm1(r22513, r22512, MPFR_RNDN);
        mpfr_mul(r22514, r22492, r22513, MPFR_RNDN);
        if (mpfr_get_si(r22508, MPFR_RNDN)) { mpfr_set(r22515, r22497, MPFR_RNDN); } else { mpfr_set(r22515, r22514, MPFR_RNDN); };
        if (mpfr_get_si(r22499, MPFR_RNDN)) { mpfr_set(r22516, r22506, MPFR_RNDN); } else { mpfr_set(r22516, r22515, MPFR_RNDN); };
        if (mpfr_get_si(r22488, MPFR_RNDN)) { mpfr_set(r22517, r22497, MPFR_RNDN); } else { mpfr_set(r22517, r22516, MPFR_RNDN); };
        return mpfr_get_d(r22517, MPFR_RNDN);
}

static mpfr_t r22518, r22519, r22520, r22521, r22522, r22523, r22524, r22525, r22526, r22527, r22528, r22529, r22530, r22531, r22532, r22533, r22534, r22535, r22536, r22537, r22538, r22539, r22540, r22541, r22542, r22543, r22544, r22545, r22546, r22547, r22548, r22549;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3216);
        mpfr_init(r22518);
        mpfr_init_set_str(r22519, "-3.7647908108250176e-06", 10, MPFR_RNDN);
        mpfr_init(r22520);
        mpfr_init_set_str(r22521, "100", 10, MPFR_RNDN);
        mpfr_init(r22522);
        mpfr_init(r22523);
        mpfr_init(r22524);
        mpfr_init(r22525);
        mpfr_init(r22526);
        mpfr_init(r22527);
        mpfr_init(r22528);
        mpfr_init(r22529);
        mpfr_init_set_str(r22530, "1.8831286213482759", 10, MPFR_RNDN);
        mpfr_init(r22531);
        mpfr_init_set_str(r22532, "50/3", 10, MPFR_RNDN);
        mpfr_init(r22533);
        mpfr_init(r22534);
        mpfr_init_set_str(r22535, "50", 10, MPFR_RNDN);
        mpfr_init(r22536);
        mpfr_init(r22537);
        mpfr_init(r22538);
        mpfr_init_set_str(r22539, "3.189350282604906e+149", 10, MPFR_RNDN);
        mpfr_init(r22540);
        mpfr_init(r22541);
        mpfr_init(r22542);
        mpfr_init(r22543);
        mpfr_init(r22544);
        mpfr_init(r22545);
        mpfr_init(r22546);
        mpfr_init(r22547);
        mpfr_init(r22548);
        mpfr_init(r22549);
}

double f_dm(double i, double n) {
        mpfr_set_d(r22518, i, MPFR_RNDN);
        ;
        mpfr_set_si(r22520, mpfr_cmp(r22518, r22519) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r22522, n, MPFR_RNDN);
        mpfr_mul(r22523, r22521, r22522, MPFR_RNDN);
        mpfr_div(r22524, r22523, r22518, MPFR_RNDN);
        mpfr_div(r22525, r22518, r22522, MPFR_RNDN);
        mpfr_log1p(r22526, r22525, MPFR_RNDN);
        mpfr_mul(r22527, r22526, r22522, MPFR_RNDN);
        mpfr_expm1(r22528, r22527, MPFR_RNDN);
        mpfr_mul(r22529, r22524, r22528, MPFR_RNDN);
        ;
        mpfr_set_si(r22531, mpfr_cmp(r22518, r22530) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r22533, r22518, r22518, MPFR_RNDN);
        mpfr_mul(r22534, r22522, r22533, MPFR_RNDN);
        ;
        mpfr_fma(r22536, r22518, r22535, r22521, MPFR_RNDN);
        mpfr_mul(r22537, r22522, r22536, MPFR_RNDN);
        mpfr_fma(r22538, r22532, r22534, r22537, MPFR_RNDN);
        ;
        mpfr_set_si(r22540, mpfr_cmp(r22518, r22539) <= 0, MPFR_RNDN);
        mpfr_log(r22541, r22522, MPFR_RNDN);
        mpfr_log(r22542, r22518, MPFR_RNDN);
        mpfr_sub(r22543, r22541, r22542, MPFR_RNDN);
        mpfr_div(r22544, r22543, r22522, MPFR_RNDN);
        mpfr_expm1(r22545, r22544, MPFR_RNDN);
        mpfr_mul(r22546, r22524, r22545, MPFR_RNDN);
        if (mpfr_get_si(r22540, MPFR_RNDN)) { mpfr_set(r22547, r22529, MPFR_RNDN); } else { mpfr_set(r22547, r22546, MPFR_RNDN); };
        if (mpfr_get_si(r22531, MPFR_RNDN)) { mpfr_set(r22548, r22538, MPFR_RNDN); } else { mpfr_set(r22548, r22547, MPFR_RNDN); };
        if (mpfr_get_si(r22520, MPFR_RNDN)) { mpfr_set(r22549, r22529, MPFR_RNDN); } else { mpfr_set(r22549, r22548, MPFR_RNDN); };
        return mpfr_get_d(r22549, MPFR_RNDN);
}

