#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 r26301 = 100;
        float r26302 = 1;
        float r26303 = i;
        float r26304 = n;
        float r26305 = r26303 / r26304;
        float r26306 = r26302 + r26305;
        float r26307 = pow(r26306, r26304);
        float r26308 = r26307 - r26302;
        float r26309 = r26308 / r26305;
        float r26310 = r26301 * r26309;
        return r26310;
}

double f_id(double i, double n) {
        double r26311 = 100;
        double r26312 = 1;
        double r26313 = i;
        double r26314 = n;
        double r26315 = r26313 / r26314;
        double r26316 = r26312 + r26315;
        double r26317 = pow(r26316, r26314);
        double r26318 = r26317 - r26312;
        double r26319 = r26318 / r26315;
        double r26320 = r26311 * r26319;
        return r26320;
}


double f_of(float i, float n) {
        float r26321 = n;
        float r26322 = 1;
        float r26323 = i;
        float r26324 = 1/2;
        float r26325 = r26323 * r26324;
        float r26326 = r26322 + r26325;
        float r26327 = 1/3;
        float r26328 = pow(r26326, r26327);
        float r26329 = r26321 * r26328;
        float r26330 = 100;
        float r26331 = cbrt(r26326);
        float r26332 = r26330 * r26331;
        float r26333 = r26328 * r26332;
        float r26334 = r26329 * r26333;
        float r26335 = -1.413853159982469e+295;
        bool r26336 = r26334 <= r26335;
        float r26337 = r26323 / r26321;
        float r26338 = r26337 + r26322;
        float r26339 = pow(r26338, r26321);
        float r26340 = r26339 - r26322;
        float r26341 = exp(r26340);
        float r26342 = log(r26341);
        float r26343 = r26342 / r26337;
        float r26344 = r26343 * r26330;
        float r26345 = -2.2073205140269853e-221;
        bool r26346 = r26334 <= r26345;
        float r26347 = 5.85399269516402e-256;
        bool r26348 = r26334 <= r26347;
        float r26349 = r26321 * r26330;
        float r26350 = r26349 * r26326;
        float r26351 = exp(r26350);
        float r26352 = log(r26351);
        float r26353 = 7.657727310247747e+33;
        bool r26354 = r26334 <= r26353;
        float r26355 = 2.9476671514468694e+284;
        bool r26356 = r26334 <= r26355;
        bool r26357 = r26354 || r26356;
        float r26358 = r26330 * r26340;
        float r26359 = r26358 / r26337;
        float r26360 = r26357 ? r26334 : r26359;
        float r26361 = r26348 ? r26352 : r26360;
        float r26362 = r26346 ? r26334 : r26361;
        float r26363 = r26336 ? r26344 : r26362;
        return r26363;
}

double f_od(double i, double n) {
        double r26364 = n;
        double r26365 = 1;
        double r26366 = i;
        double r26367 = 1/2;
        double r26368 = r26366 * r26367;
        double r26369 = r26365 + r26368;
        double r26370 = 1/3;
        double r26371 = pow(r26369, r26370);
        double r26372 = r26364 * r26371;
        double r26373 = 100;
        double r26374 = cbrt(r26369);
        double r26375 = r26373 * r26374;
        double r26376 = r26371 * r26375;
        double r26377 = r26372 * r26376;
        double r26378 = -1.413853159982469e+295;
        bool r26379 = r26377 <= r26378;
        double r26380 = r26366 / r26364;
        double r26381 = r26380 + r26365;
        double r26382 = pow(r26381, r26364);
        double r26383 = r26382 - r26365;
        double r26384 = exp(r26383);
        double r26385 = log(r26384);
        double r26386 = r26385 / r26380;
        double r26387 = r26386 * r26373;
        double r26388 = -2.2073205140269853e-221;
        bool r26389 = r26377 <= r26388;
        double r26390 = 5.85399269516402e-256;
        bool r26391 = r26377 <= r26390;
        double r26392 = r26364 * r26373;
        double r26393 = r26392 * r26369;
        double r26394 = exp(r26393);
        double r26395 = log(r26394);
        double r26396 = 7.657727310247747e+33;
        bool r26397 = r26377 <= r26396;
        double r26398 = 2.9476671514468694e+284;
        bool r26399 = r26377 <= r26398;
        bool r26400 = r26397 || r26399;
        double r26401 = r26373 * r26383;
        double r26402 = r26401 / r26380;
        double r26403 = r26400 ? r26377 : r26402;
        double r26404 = r26391 ? r26395 : r26403;
        double r26405 = r26389 ? r26377 : r26404;
        double r26406 = r26379 ? r26387 : r26405;
        return r26406;
}

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 r26407, r26408, r26409, r26410, r26411, r26412, r26413, r26414, r26415, r26416;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2896);
        mpfr_init_set_str(r26407, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r26408, "1", 10, MPFR_RNDN);
        mpfr_init(r26409);
        mpfr_init(r26410);
        mpfr_init(r26411);
        mpfr_init(r26412);
        mpfr_init(r26413);
        mpfr_init(r26414);
        mpfr_init(r26415);
        mpfr_init(r26416);
}

double f_im(double i, double n) {
        ;
        ;
        mpfr_set_d(r26409, i, MPFR_RNDN);
        mpfr_set_d(r26410, n, MPFR_RNDN);
        mpfr_div(r26411, r26409, r26410, MPFR_RNDN);
        mpfr_add(r26412, r26408, r26411, MPFR_RNDN);
        mpfr_pow(r26413, r26412, r26410, MPFR_RNDN);
        mpfr_sub(r26414, r26413, r26408, MPFR_RNDN);
        mpfr_div(r26415, r26414, r26411, MPFR_RNDN);
        mpfr_mul(r26416, r26407, r26415, MPFR_RNDN);
        return mpfr_get_d(r26416, MPFR_RNDN);
}

static mpfr_t r26417, r26418, r26419, r26420, r26421, r26422, r26423, r26424, r26425, r26426, r26427, r26428, r26429, r26430, r26431, r26432, r26433, r26434, r26435, r26436, r26437, r26438, r26439, r26440, r26441, r26442, r26443, r26444, r26445, r26446, r26447, r26448, r26449, r26450, r26451, r26452, r26453, r26454, r26455, r26456, r26457, r26458, r26459;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2896);
        mpfr_init(r26417);
        mpfr_init_set_str(r26418, "1", 10, MPFR_RNDN);
        mpfr_init(r26419);
        mpfr_init_set_str(r26420, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26421);
        mpfr_init(r26422);
        mpfr_init_set_str(r26423, "1/3", 10, MPFR_RNDN);
        mpfr_init(r26424);
        mpfr_init(r26425);
        mpfr_init_set_str(r26426, "100", 10, MPFR_RNDN);
        mpfr_init(r26427);
        mpfr_init(r26428);
        mpfr_init(r26429);
        mpfr_init(r26430);
        mpfr_init_set_str(r26431, "-1.413853159982469e+295", 10, MPFR_RNDN);
        mpfr_init(r26432);
        mpfr_init(r26433);
        mpfr_init(r26434);
        mpfr_init(r26435);
        mpfr_init(r26436);
        mpfr_init(r26437);
        mpfr_init(r26438);
        mpfr_init(r26439);
        mpfr_init(r26440);
        mpfr_init_set_str(r26441, "-2.2073205140269853e-221", 10, MPFR_RNDN);
        mpfr_init(r26442);
        mpfr_init_set_str(r26443, "5.85399269516402e-256", 10, MPFR_RNDN);
        mpfr_init(r26444);
        mpfr_init(r26445);
        mpfr_init(r26446);
        mpfr_init(r26447);
        mpfr_init(r26448);
        mpfr_init_set_str(r26449, "7.657727310247747e+33", 10, MPFR_RNDN);
        mpfr_init(r26450);
        mpfr_init_set_str(r26451, "2.9476671514468694e+284", 10, MPFR_RNDN);
        mpfr_init(r26452);
        mpfr_init(r26453);
        mpfr_init(r26454);
        mpfr_init(r26455);
        mpfr_init(r26456);
        mpfr_init(r26457);
        mpfr_init(r26458);
        mpfr_init(r26459);
}

double f_fm(double i, double n) {
        mpfr_set_d(r26417, n, MPFR_RNDN);
        ;
        mpfr_set_d(r26419, i, MPFR_RNDN);
        ;
        mpfr_mul(r26421, r26419, r26420, MPFR_RNDN);
        mpfr_add(r26422, r26418, r26421, MPFR_RNDN);
        ;
        mpfr_pow(r26424, r26422, r26423, MPFR_RNDN);
        mpfr_mul(r26425, r26417, r26424, MPFR_RNDN);
        ;
        mpfr_cbrt(r26427, r26422, MPFR_RNDN);
        mpfr_mul(r26428, r26426, r26427, MPFR_RNDN);
        mpfr_mul(r26429, r26424, r26428, MPFR_RNDN);
        mpfr_mul(r26430, r26425, r26429, MPFR_RNDN);
        ;
        mpfr_set_si(r26432, mpfr_cmp(r26430, r26431) <= 0, MPFR_RNDN);
        mpfr_div(r26433, r26419, r26417, MPFR_RNDN);
        mpfr_add(r26434, r26433, r26418, MPFR_RNDN);
        mpfr_pow(r26435, r26434, r26417, MPFR_RNDN);
        mpfr_sub(r26436, r26435, r26418, MPFR_RNDN);
        mpfr_exp(r26437, r26436, MPFR_RNDN);
        mpfr_log(r26438, r26437, MPFR_RNDN);
        mpfr_div(r26439, r26438, r26433, MPFR_RNDN);
        mpfr_mul(r26440, r26439, r26426, MPFR_RNDN);
        ;
        mpfr_set_si(r26442, mpfr_cmp(r26430, r26441) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26444, mpfr_cmp(r26430, r26443) <= 0, MPFR_RNDN);
        mpfr_mul(r26445, r26417, r26426, MPFR_RNDN);
        mpfr_mul(r26446, r26445, r26422, MPFR_RNDN);
        mpfr_exp(r26447, r26446, MPFR_RNDN);
        mpfr_log(r26448, r26447, MPFR_RNDN);
        ;
        mpfr_set_si(r26450, mpfr_cmp(r26430, r26449) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26452, mpfr_cmp(r26430, r26451) <= 0, MPFR_RNDN);
        mpfr_set_si(r26453, mpfr_get_si(r26450, MPFR_RNDN) || mpfr_get_si(r26452, MPFR_RNDN), MPFR_RNDN);
        mpfr_mul(r26454, r26426, r26436, MPFR_RNDN);
        mpfr_div(r26455, r26454, r26433, MPFR_RNDN);
        if (mpfr_get_si(r26453, MPFR_RNDN)) { mpfr_set(r26456, r26430, MPFR_RNDN); } else { mpfr_set(r26456, r26455, MPFR_RNDN); };
        if (mpfr_get_si(r26444, MPFR_RNDN)) { mpfr_set(r26457, r26448, MPFR_RNDN); } else { mpfr_set(r26457, r26456, MPFR_RNDN); };
        if (mpfr_get_si(r26442, MPFR_RNDN)) { mpfr_set(r26458, r26430, MPFR_RNDN); } else { mpfr_set(r26458, r26457, MPFR_RNDN); };
        if (mpfr_get_si(r26432, MPFR_RNDN)) { mpfr_set(r26459, r26440, MPFR_RNDN); } else { mpfr_set(r26459, r26458, MPFR_RNDN); };
        return mpfr_get_d(r26459, MPFR_RNDN);
}

static mpfr_t r26460, r26461, r26462, r26463, r26464, r26465, r26466, r26467, r26468, r26469, r26470, r26471, r26472, r26473, r26474, r26475, r26476, r26477, r26478, r26479, r26480, r26481, r26482, r26483, r26484, r26485, r26486, r26487, r26488, r26489, r26490, r26491, r26492, r26493, r26494, r26495, r26496, r26497, r26498, r26499, r26500, r26501, r26502;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2896);
        mpfr_init(r26460);
        mpfr_init_set_str(r26461, "1", 10, MPFR_RNDN);
        mpfr_init(r26462);
        mpfr_init_set_str(r26463, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26464);
        mpfr_init(r26465);
        mpfr_init_set_str(r26466, "1/3", 10, MPFR_RNDN);
        mpfr_init(r26467);
        mpfr_init(r26468);
        mpfr_init_set_str(r26469, "100", 10, MPFR_RNDN);
        mpfr_init(r26470);
        mpfr_init(r26471);
        mpfr_init(r26472);
        mpfr_init(r26473);
        mpfr_init_set_str(r26474, "-1.413853159982469e+295", 10, MPFR_RNDN);
        mpfr_init(r26475);
        mpfr_init(r26476);
        mpfr_init(r26477);
        mpfr_init(r26478);
        mpfr_init(r26479);
        mpfr_init(r26480);
        mpfr_init(r26481);
        mpfr_init(r26482);
        mpfr_init(r26483);
        mpfr_init_set_str(r26484, "-2.2073205140269853e-221", 10, MPFR_RNDN);
        mpfr_init(r26485);
        mpfr_init_set_str(r26486, "5.85399269516402e-256", 10, MPFR_RNDN);
        mpfr_init(r26487);
        mpfr_init(r26488);
        mpfr_init(r26489);
        mpfr_init(r26490);
        mpfr_init(r26491);
        mpfr_init_set_str(r26492, "7.657727310247747e+33", 10, MPFR_RNDN);
        mpfr_init(r26493);
        mpfr_init_set_str(r26494, "2.9476671514468694e+284", 10, MPFR_RNDN);
        mpfr_init(r26495);
        mpfr_init(r26496);
        mpfr_init(r26497);
        mpfr_init(r26498);
        mpfr_init(r26499);
        mpfr_init(r26500);
        mpfr_init(r26501);
        mpfr_init(r26502);
}

double f_dm(double i, double n) {
        mpfr_set_d(r26460, n, MPFR_RNDN);
        ;
        mpfr_set_d(r26462, i, MPFR_RNDN);
        ;
        mpfr_mul(r26464, r26462, r26463, MPFR_RNDN);
        mpfr_add(r26465, r26461, r26464, MPFR_RNDN);
        ;
        mpfr_pow(r26467, r26465, r26466, MPFR_RNDN);
        mpfr_mul(r26468, r26460, r26467, MPFR_RNDN);
        ;
        mpfr_cbrt(r26470, r26465, MPFR_RNDN);
        mpfr_mul(r26471, r26469, r26470, MPFR_RNDN);
        mpfr_mul(r26472, r26467, r26471, MPFR_RNDN);
        mpfr_mul(r26473, r26468, r26472, MPFR_RNDN);
        ;
        mpfr_set_si(r26475, mpfr_cmp(r26473, r26474) <= 0, MPFR_RNDN);
        mpfr_div(r26476, r26462, r26460, MPFR_RNDN);
        mpfr_add(r26477, r26476, r26461, MPFR_RNDN);
        mpfr_pow(r26478, r26477, r26460, MPFR_RNDN);
        mpfr_sub(r26479, r26478, r26461, MPFR_RNDN);
        mpfr_exp(r26480, r26479, MPFR_RNDN);
        mpfr_log(r26481, r26480, MPFR_RNDN);
        mpfr_div(r26482, r26481, r26476, MPFR_RNDN);
        mpfr_mul(r26483, r26482, r26469, MPFR_RNDN);
        ;
        mpfr_set_si(r26485, mpfr_cmp(r26473, r26484) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26487, mpfr_cmp(r26473, r26486) <= 0, MPFR_RNDN);
        mpfr_mul(r26488, r26460, r26469, MPFR_RNDN);
        mpfr_mul(r26489, r26488, r26465, MPFR_RNDN);
        mpfr_exp(r26490, r26489, MPFR_RNDN);
        mpfr_log(r26491, r26490, MPFR_RNDN);
        ;
        mpfr_set_si(r26493, mpfr_cmp(r26473, r26492) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26495, mpfr_cmp(r26473, r26494) <= 0, MPFR_RNDN);
        mpfr_set_si(r26496, mpfr_get_si(r26493, MPFR_RNDN) || mpfr_get_si(r26495, MPFR_RNDN), MPFR_RNDN);
        mpfr_mul(r26497, r26469, r26479, MPFR_RNDN);
        mpfr_div(r26498, r26497, r26476, MPFR_RNDN);
        if (mpfr_get_si(r26496, MPFR_RNDN)) { mpfr_set(r26499, r26473, MPFR_RNDN); } else { mpfr_set(r26499, r26498, MPFR_RNDN); };
        if (mpfr_get_si(r26487, MPFR_RNDN)) { mpfr_set(r26500, r26491, MPFR_RNDN); } else { mpfr_set(r26500, r26499, MPFR_RNDN); };
        if (mpfr_get_si(r26485, MPFR_RNDN)) { mpfr_set(r26501, r26473, MPFR_RNDN); } else { mpfr_set(r26501, r26500, MPFR_RNDN); };
        if (mpfr_get_si(r26475, MPFR_RNDN)) { mpfr_set(r26502, r26483, MPFR_RNDN); } else { mpfr_set(r26502, r26501, MPFR_RNDN); };
        return mpfr_get_d(r26502, MPFR_RNDN);
}

