#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 r26026 = 100;
        float r26027 = 1;
        float r26028 = i;
        float r26029 = n;
        float r26030 = r26028 / r26029;
        float r26031 = r26027 + r26030;
        float r26032 = pow(r26031, r26029);
        float r26033 = r26032 - r26027;
        float r26034 = r26033 / r26030;
        float r26035 = r26026 * r26034;
        return r26035;
}

double f_id(double i, double n) {
        double r26036 = 100;
        double r26037 = 1;
        double r26038 = i;
        double r26039 = n;
        double r26040 = r26038 / r26039;
        double r26041 = r26037 + r26040;
        double r26042 = pow(r26041, r26039);
        double r26043 = r26042 - r26037;
        double r26044 = r26043 / r26040;
        double r26045 = r26036 * r26044;
        return r26045;
}


double f_of(float i, float n) {
        float r26046 = 1/2;
        float r26047 = i;
        float r26048 = 1;
        float r26049 = fma(r26046, r26047, r26048);
        float r26050 = 0.9999999879064155;
        bool r26051 = r26049 <= r26050;
        float r26052 = n;
        float r26053 = r26047 / r26052;
        float r26054 = log1p(r26053);
        float r26055 = r26054 * r26052;
        float r26056 = exp(r26055);
        float r26057 = r26056 - r26048;
        float r26058 = r26057 / r26053;
        float r26059 = 100;
        float r26060 = r26058 * r26059;
        float r26061 = 42954578076.05249;
        bool r26062 = r26049 <= r26061;
        float r26063 = r26049 * r26059;
        float r26064 = r26063 * r26052;
        float r26065 = 3.6661174704394984e+204;
        bool r26066 = r26049 <= r26065;
        float r26067 = r26059 / r26047;
        float r26068 = r26052 * r26067;
        float r26069 = pow(r26047, r26052);
        float r26070 = pow(r26052, r26052);
        float r26071 = r26069 / r26070;
        float r26072 = r26071 - r26048;
        float r26073 = r26068 * r26072;
        float r26074 = r26053 + r26048;
        float r26075 = pow(r26074, r26052);
        float r26076 = r26075 - r26048;
        float r26077 = r26048 / r26052;
        float r26078 = r26076 / r26077;
        float r26079 = r26067 * r26078;
        float r26080 = r26066 ? r26073 : r26079;
        float r26081 = r26062 ? r26064 : r26080;
        float r26082 = r26051 ? r26060 : r26081;
        return r26082;
}

double f_od(double i, double n) {
        double r26083 = 1/2;
        double r26084 = i;
        double r26085 = 1;
        double r26086 = fma(r26083, r26084, r26085);
        double r26087 = 0.9999999879064155;
        bool r26088 = r26086 <= r26087;
        double r26089 = n;
        double r26090 = r26084 / r26089;
        double r26091 = log1p(r26090);
        double r26092 = r26091 * r26089;
        double r26093 = exp(r26092);
        double r26094 = r26093 - r26085;
        double r26095 = r26094 / r26090;
        double r26096 = 100;
        double r26097 = r26095 * r26096;
        double r26098 = 42954578076.05249;
        bool r26099 = r26086 <= r26098;
        double r26100 = r26086 * r26096;
        double r26101 = r26100 * r26089;
        double r26102 = 3.6661174704394984e+204;
        bool r26103 = r26086 <= r26102;
        double r26104 = r26096 / r26084;
        double r26105 = r26089 * r26104;
        double r26106 = pow(r26084, r26089);
        double r26107 = pow(r26089, r26089);
        double r26108 = r26106 / r26107;
        double r26109 = r26108 - r26085;
        double r26110 = r26105 * r26109;
        double r26111 = r26090 + r26085;
        double r26112 = pow(r26111, r26089);
        double r26113 = r26112 - r26085;
        double r26114 = r26085 / r26089;
        double r26115 = r26113 / r26114;
        double r26116 = r26104 * r26115;
        double r26117 = r26103 ? r26110 : r26116;
        double r26118 = r26099 ? r26101 : r26117;
        double r26119 = r26088 ? r26097 : r26118;
        return r26119;
}

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 r26120, r26121, r26122, r26123, r26124, r26125, r26126, r26127, r26128, r26129;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r26120, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r26121, "1", 10, MPFR_RNDN);
        mpfr_init(r26122);
        mpfr_init(r26123);
        mpfr_init(r26124);
        mpfr_init(r26125);
        mpfr_init(r26126);
        mpfr_init(r26127);
        mpfr_init(r26128);
        mpfr_init(r26129);
}

double f_im(double i, double n) {
        ;
        ;
        mpfr_set_d(r26122, i, MPFR_RNDN);
        mpfr_set_d(r26123, n, MPFR_RNDN);
        mpfr_div(r26124, r26122, r26123, MPFR_RNDN);
        mpfr_add(r26125, r26121, r26124, MPFR_RNDN);
        mpfr_pow(r26126, r26125, r26123, MPFR_RNDN);
        mpfr_sub(r26127, r26126, r26121, MPFR_RNDN);
        mpfr_div(r26128, r26127, r26124, MPFR_RNDN);
        mpfr_mul(r26129, r26120, r26128, MPFR_RNDN);
        return mpfr_get_d(r26129, MPFR_RNDN);
}

static mpfr_t r26130, r26131, r26132, r26133, r26134, r26135, r26136, r26137, r26138, r26139, r26140, r26141, r26142, r26143, r26144, r26145, r26146, r26147, r26148, r26149, r26150, r26151, r26152, r26153, r26154, r26155, r26156, r26157, r26158, r26159, r26160, r26161, r26162, r26163, r26164, r26165, r26166;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r26130, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26131);
        mpfr_init_set_str(r26132, "1", 10, MPFR_RNDN);
        mpfr_init(r26133);
        mpfr_init_set_str(r26134, "0.9999999879064155", 10, MPFR_RNDN);
        mpfr_init(r26135);
        mpfr_init(r26136);
        mpfr_init(r26137);
        mpfr_init(r26138);
        mpfr_init(r26139);
        mpfr_init(r26140);
        mpfr_init(r26141);
        mpfr_init(r26142);
        mpfr_init_set_str(r26143, "100", 10, MPFR_RNDN);
        mpfr_init(r26144);
        mpfr_init_set_str(r26145, "42954578076.05249", 10, MPFR_RNDN);
        mpfr_init(r26146);
        mpfr_init(r26147);
        mpfr_init(r26148);
        mpfr_init_set_str(r26149, "3.6661174704394984e+204", 10, MPFR_RNDN);
        mpfr_init(r26150);
        mpfr_init(r26151);
        mpfr_init(r26152);
        mpfr_init(r26153);
        mpfr_init(r26154);
        mpfr_init(r26155);
        mpfr_init(r26156);
        mpfr_init(r26157);
        mpfr_init(r26158);
        mpfr_init(r26159);
        mpfr_init(r26160);
        mpfr_init(r26161);
        mpfr_init(r26162);
        mpfr_init(r26163);
        mpfr_init(r26164);
        mpfr_init(r26165);
        mpfr_init(r26166);
}

double f_fm(double i, double n) {
        ;
        mpfr_set_d(r26131, i, MPFR_RNDN);
        ;
        mpfr_fma(r26133, r26130, r26131, r26132, MPFR_RNDN);
        ;
        mpfr_set_si(r26135, mpfr_cmp(r26133, r26134) <= 0, MPFR_RNDN);
        mpfr_set_d(r26136, n, MPFR_RNDN);
        mpfr_div(r26137, r26131, r26136, MPFR_RNDN);
        mpfr_log1p(r26138, r26137, MPFR_RNDN);
        mpfr_mul(r26139, r26138, r26136, MPFR_RNDN);
        mpfr_exp(r26140, r26139, MPFR_RNDN);
        mpfr_sub(r26141, r26140, r26132, MPFR_RNDN);
        mpfr_div(r26142, r26141, r26137, MPFR_RNDN);
        ;
        mpfr_mul(r26144, r26142, r26143, MPFR_RNDN);
        ;
        mpfr_set_si(r26146, mpfr_cmp(r26133, r26145) <= 0, MPFR_RNDN);
        mpfr_mul(r26147, r26133, r26143, MPFR_RNDN);
        mpfr_mul(r26148, r26147, r26136, MPFR_RNDN);
        ;
        mpfr_set_si(r26150, mpfr_cmp(r26133, r26149) <= 0, MPFR_RNDN);
        mpfr_div(r26151, r26143, r26131, MPFR_RNDN);
        mpfr_mul(r26152, r26136, r26151, MPFR_RNDN);
        mpfr_pow(r26153, r26131, r26136, MPFR_RNDN);
        mpfr_pow(r26154, r26136, r26136, MPFR_RNDN);
        mpfr_div(r26155, r26153, r26154, MPFR_RNDN);
        mpfr_sub(r26156, r26155, r26132, MPFR_RNDN);
        mpfr_mul(r26157, r26152, r26156, MPFR_RNDN);
        mpfr_add(r26158, r26137, r26132, MPFR_RNDN);
        mpfr_pow(r26159, r26158, r26136, MPFR_RNDN);
        mpfr_sub(r26160, r26159, r26132, MPFR_RNDN);
        mpfr_div(r26161, r26132, r26136, MPFR_RNDN);
        mpfr_div(r26162, r26160, r26161, MPFR_RNDN);
        mpfr_mul(r26163, r26151, r26162, MPFR_RNDN);
        if (mpfr_get_si(r26150, MPFR_RNDN)) { mpfr_set(r26164, r26157, MPFR_RNDN); } else { mpfr_set(r26164, r26163, MPFR_RNDN); };
        if (mpfr_get_si(r26146, MPFR_RNDN)) { mpfr_set(r26165, r26148, MPFR_RNDN); } else { mpfr_set(r26165, r26164, MPFR_RNDN); };
        if (mpfr_get_si(r26135, MPFR_RNDN)) { mpfr_set(r26166, r26144, MPFR_RNDN); } else { mpfr_set(r26166, r26165, MPFR_RNDN); };
        return mpfr_get_d(r26166, MPFR_RNDN);
}

static mpfr_t r26167, r26168, r26169, r26170, r26171, r26172, r26173, r26174, r26175, r26176, r26177, r26178, r26179, r26180, r26181, r26182, r26183, r26184, r26185, r26186, r26187, r26188, r26189, r26190, r26191, r26192, r26193, r26194, r26195, r26196, r26197, r26198, r26199, r26200, r26201, r26202, r26203;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r26167, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26168);
        mpfr_init_set_str(r26169, "1", 10, MPFR_RNDN);
        mpfr_init(r26170);
        mpfr_init_set_str(r26171, "0.9999999879064155", 10, MPFR_RNDN);
        mpfr_init(r26172);
        mpfr_init(r26173);
        mpfr_init(r26174);
        mpfr_init(r26175);
        mpfr_init(r26176);
        mpfr_init(r26177);
        mpfr_init(r26178);
        mpfr_init(r26179);
        mpfr_init_set_str(r26180, "100", 10, MPFR_RNDN);
        mpfr_init(r26181);
        mpfr_init_set_str(r26182, "42954578076.05249", 10, MPFR_RNDN);
        mpfr_init(r26183);
        mpfr_init(r26184);
        mpfr_init(r26185);
        mpfr_init_set_str(r26186, "3.6661174704394984e+204", 10, MPFR_RNDN);
        mpfr_init(r26187);
        mpfr_init(r26188);
        mpfr_init(r26189);
        mpfr_init(r26190);
        mpfr_init(r26191);
        mpfr_init(r26192);
        mpfr_init(r26193);
        mpfr_init(r26194);
        mpfr_init(r26195);
        mpfr_init(r26196);
        mpfr_init(r26197);
        mpfr_init(r26198);
        mpfr_init(r26199);
        mpfr_init(r26200);
        mpfr_init(r26201);
        mpfr_init(r26202);
        mpfr_init(r26203);
}

double f_dm(double i, double n) {
        ;
        mpfr_set_d(r26168, i, MPFR_RNDN);
        ;
        mpfr_fma(r26170, r26167, r26168, r26169, MPFR_RNDN);
        ;
        mpfr_set_si(r26172, mpfr_cmp(r26170, r26171) <= 0, MPFR_RNDN);
        mpfr_set_d(r26173, n, MPFR_RNDN);
        mpfr_div(r26174, r26168, r26173, MPFR_RNDN);
        mpfr_log1p(r26175, r26174, MPFR_RNDN);
        mpfr_mul(r26176, r26175, r26173, MPFR_RNDN);
        mpfr_exp(r26177, r26176, MPFR_RNDN);
        mpfr_sub(r26178, r26177, r26169, MPFR_RNDN);
        mpfr_div(r26179, r26178, r26174, MPFR_RNDN);
        ;
        mpfr_mul(r26181, r26179, r26180, MPFR_RNDN);
        ;
        mpfr_set_si(r26183, mpfr_cmp(r26170, r26182) <= 0, MPFR_RNDN);
        mpfr_mul(r26184, r26170, r26180, MPFR_RNDN);
        mpfr_mul(r26185, r26184, r26173, MPFR_RNDN);
        ;
        mpfr_set_si(r26187, mpfr_cmp(r26170, r26186) <= 0, MPFR_RNDN);
        mpfr_div(r26188, r26180, r26168, MPFR_RNDN);
        mpfr_mul(r26189, r26173, r26188, MPFR_RNDN);
        mpfr_pow(r26190, r26168, r26173, MPFR_RNDN);
        mpfr_pow(r26191, r26173, r26173, MPFR_RNDN);
        mpfr_div(r26192, r26190, r26191, MPFR_RNDN);
        mpfr_sub(r26193, r26192, r26169, MPFR_RNDN);
        mpfr_mul(r26194, r26189, r26193, MPFR_RNDN);
        mpfr_add(r26195, r26174, r26169, MPFR_RNDN);
        mpfr_pow(r26196, r26195, r26173, MPFR_RNDN);
        mpfr_sub(r26197, r26196, r26169, MPFR_RNDN);
        mpfr_div(r26198, r26169, r26173, MPFR_RNDN);
        mpfr_div(r26199, r26197, r26198, MPFR_RNDN);
        mpfr_mul(r26200, r26188, r26199, MPFR_RNDN);
        if (mpfr_get_si(r26187, MPFR_RNDN)) { mpfr_set(r26201, r26194, MPFR_RNDN); } else { mpfr_set(r26201, r26200, MPFR_RNDN); };
        if (mpfr_get_si(r26183, MPFR_RNDN)) { mpfr_set(r26202, r26185, MPFR_RNDN); } else { mpfr_set(r26202, r26201, MPFR_RNDN); };
        if (mpfr_get_si(r26172, MPFR_RNDN)) { mpfr_set(r26203, r26181, MPFR_RNDN); } else { mpfr_set(r26203, r26202, MPFR_RNDN); };
        return mpfr_get_d(r26203, MPFR_RNDN);
}

