#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 r9610 = 100.0f;
        float r9611 = 1.0f;
        float r9612 = i;
        float r9613 = n;
        float r9614 = r9612 / r9613;
        float r9615 = r9611 + r9614;
        float r9616 = pow(r9615, r9613);
        float r9617 = r9616 - r9611;
        float r9618 = r9617 / r9614;
        float r9619 = r9610 * r9618;
        return r9619;
}

double f_id(double i, double n) {
        double r9620 = 100.0;
        double r9621 = 1.0;
        double r9622 = i;
        double r9623 = n;
        double r9624 = r9622 / r9623;
        double r9625 = r9621 + r9624;
        double r9626 = pow(r9625, r9623);
        double r9627 = r9626 - r9621;
        double r9628 = r9627 / r9624;
        double r9629 = r9620 * r9628;
        return r9629;
}


double f_of(float i, float n) {
        float r9630 = 0.5f;
        float r9631 = 0.16666666666666666f;
        float r9632 = i;
        float r9633 = r9631 * r9632;
        float r9634 = r9630 + r9633;
        float r9635 = r9632 * r9632;
        float r9636 = r9634 * r9635;
        float r9637 = r9636 + r9632;
        float r9638 = cbrt(r9637);
        float r9639 = exp(r9638);
        float r9640 = log(r9639);
        float r9641 = r9640 * r9638;
        float r9642 = r9641 / r9632;
        float r9643 = n;
        float r9644 = r9643 * r9638;
        float r9645 = r9642 * r9644;
        float r9646 = 100.0f;
        float r9647 = r9645 * r9646;
        float r9648 = -7.876677038040007e+303f;
        bool r9649 = r9647 <= r9648;
        float r9650 = 1.0f;
        float r9651 = r9632 / r9643;
        float r9652 = r9650 + r9651;
        float r9653 = pow(r9652, r9643);
        float r9654 = r9653 - r9650;
        float r9655 = exp(r9654);
        float r9656 = log(r9655);
        float r9657 = r9656 / r9651;
        float r9658 = r9657 * r9646;
        float r9659 = 1.7737416257178375e+308f;
        bool r9660 = r9647 <= r9659;
        float r9661 = r9646 * r9643;
        float r9662 = 50.0f;
        float r9663 = 16.666666666666668f;
        float r9664 = r9663 * r9632;
        float r9665 = r9662 + r9664;
        float r9666 = r9632 * r9643;
        float r9667 = r9665 * r9666;
        float r9668 = r9661 + r9667;
        float r9669 = pow(r9651, r9643);
        float r9670 = r9669 - r9650;
        float r9671 = r9646 / r9632;
        float r9672 = r9643 * r9671;
        float r9673 = r9670 * r9672;
        float r9674 = r9660 ? r9668 : r9673;
        float r9675 = r9649 ? r9658 : r9674;
        return r9675;
}

double f_od(double i, double n) {
        double r9676 = 0.5;
        double r9677 = 0.16666666666666666;
        double r9678 = i;
        double r9679 = r9677 * r9678;
        double r9680 = r9676 + r9679;
        double r9681 = r9678 * r9678;
        double r9682 = r9680 * r9681;
        double r9683 = r9682 + r9678;
        double r9684 = cbrt(r9683);
        double r9685 = exp(r9684);
        double r9686 = log(r9685);
        double r9687 = r9686 * r9684;
        double r9688 = r9687 / r9678;
        double r9689 = n;
        double r9690 = r9689 * r9684;
        double r9691 = r9688 * r9690;
        double r9692 = 100.0;
        double r9693 = r9691 * r9692;
        double r9694 = -7.876677038040007e+303;
        bool r9695 = r9693 <= r9694;
        double r9696 = 1.0;
        double r9697 = r9678 / r9689;
        double r9698 = r9696 + r9697;
        double r9699 = pow(r9698, r9689);
        double r9700 = r9699 - r9696;
        double r9701 = exp(r9700);
        double r9702 = log(r9701);
        double r9703 = r9702 / r9697;
        double r9704 = r9703 * r9692;
        double r9705 = 1.7737416257178375e+308;
        bool r9706 = r9693 <= r9705;
        double r9707 = r9692 * r9689;
        double r9708 = 50.0;
        double r9709 = 16.666666666666668;
        double r9710 = r9709 * r9678;
        double r9711 = r9708 + r9710;
        double r9712 = r9678 * r9689;
        double r9713 = r9711 * r9712;
        double r9714 = r9707 + r9713;
        double r9715 = pow(r9697, r9689);
        double r9716 = r9715 - r9696;
        double r9717 = r9692 / r9678;
        double r9718 = r9689 * r9717;
        double r9719 = r9716 * r9718;
        double r9720 = r9706 ? r9714 : r9719;
        double r9721 = r9695 ? r9704 : r9720;
        return r9721;
}

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 r9722, r9723, r9724, r9725, r9726, r9727, r9728, r9729, r9730, r9731;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r9722, "100", 10, MPFR_RNDN);
        mpfr_init_set_str(r9723, "1", 10, MPFR_RNDN);
        mpfr_init(r9724);
        mpfr_init(r9725);
        mpfr_init(r9726);
        mpfr_init(r9727);
        mpfr_init(r9728);
        mpfr_init(r9729);
        mpfr_init(r9730);
        mpfr_init(r9731);
}

double f_im(double i, double n) {
        ;
        ;
        mpfr_set_d(r9724, i, MPFR_RNDN);
        mpfr_set_d(r9725, n, MPFR_RNDN);
        mpfr_div(r9726, r9724, r9725, MPFR_RNDN);
        mpfr_add(r9727, r9723, r9726, MPFR_RNDN);
        mpfr_pow(r9728, r9727, r9725, MPFR_RNDN);
        mpfr_sub(r9729, r9728, r9723, MPFR_RNDN);
        mpfr_div(r9730, r9729, r9726, MPFR_RNDN);
        mpfr_mul(r9731, r9722, r9730, MPFR_RNDN);
        return mpfr_get_d(r9731, MPFR_RNDN);
}

static mpfr_t r9732, r9733, r9734, r9735, r9736, r9737, r9738, r9739, r9740, r9741, r9742, r9743, r9744, r9745, r9746, r9747, r9748, r9749, r9750, r9751, r9752, r9753, r9754, r9755, r9756, r9757, r9758, r9759, r9760, r9761, r9762, r9763, r9764, r9765, r9766, r9767, r9768, r9769, r9770, r9771, r9772, r9773, r9774, r9775, r9776, r9777;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r9732, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r9733, "1/6", 10, MPFR_RNDN);
        mpfr_init(r9734);
        mpfr_init(r9735);
        mpfr_init(r9736);
        mpfr_init(r9737);
        mpfr_init(r9738);
        mpfr_init(r9739);
        mpfr_init(r9740);
        mpfr_init(r9741);
        mpfr_init(r9742);
        mpfr_init(r9743);
        mpfr_init(r9744);
        mpfr_init(r9745);
        mpfr_init(r9746);
        mpfr_init(r9747);
        mpfr_init_set_str(r9748, "100", 10, MPFR_RNDN);
        mpfr_init(r9749);
        mpfr_init_set_str(r9750, "-7.876677038040007e+303", 10, MPFR_RNDN);
        mpfr_init(r9751);
        mpfr_init_set_str(r9752, "1", 10, MPFR_RNDN);
        mpfr_init(r9753);
        mpfr_init(r9754);
        mpfr_init(r9755);
        mpfr_init(r9756);
        mpfr_init(r9757);
        mpfr_init(r9758);
        mpfr_init(r9759);
        mpfr_init(r9760);
        mpfr_init_set_str(r9761, "1.7737416257178375e+308", 10, MPFR_RNDN);
        mpfr_init(r9762);
        mpfr_init(r9763);
        mpfr_init_set_str(r9764, "50", 10, MPFR_RNDN);
        mpfr_init_set_str(r9765, "50/3", 10, MPFR_RNDN);
        mpfr_init(r9766);
        mpfr_init(r9767);
        mpfr_init(r9768);
        mpfr_init(r9769);
        mpfr_init(r9770);
        mpfr_init(r9771);
        mpfr_init(r9772);
        mpfr_init(r9773);
        mpfr_init(r9774);
        mpfr_init(r9775);
        mpfr_init(r9776);
        mpfr_init(r9777);
}

double f_fm(double i, double n) {
        ;
        ;
        mpfr_set_d(r9734, i, MPFR_RNDN);
        mpfr_mul(r9735, r9733, r9734, MPFR_RNDN);
        mpfr_add(r9736, r9732, r9735, MPFR_RNDN);
        mpfr_mul(r9737, r9734, r9734, MPFR_RNDN);
        mpfr_mul(r9738, r9736, r9737, MPFR_RNDN);
        mpfr_add(r9739, r9738, r9734, MPFR_RNDN);
        mpfr_cbrt(r9740, r9739, MPFR_RNDN);
        mpfr_exp(r9741, r9740, MPFR_RNDN);
        mpfr_log(r9742, r9741, MPFR_RNDN);
        mpfr_mul(r9743, r9742, r9740, MPFR_RNDN);
        mpfr_div(r9744, r9743, r9734, MPFR_RNDN);
        mpfr_set_d(r9745, n, MPFR_RNDN);
        mpfr_mul(r9746, r9745, r9740, MPFR_RNDN);
        mpfr_mul(r9747, r9744, r9746, MPFR_RNDN);
        ;
        mpfr_mul(r9749, r9747, r9748, MPFR_RNDN);
        ;
        mpfr_set_si(r9751, mpfr_cmp(r9749, r9750) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r9753, r9734, r9745, MPFR_RNDN);
        mpfr_add(r9754, r9752, r9753, MPFR_RNDN);
        mpfr_pow(r9755, r9754, r9745, MPFR_RNDN);
        mpfr_sub(r9756, r9755, r9752, MPFR_RNDN);
        mpfr_exp(r9757, r9756, MPFR_RNDN);
        mpfr_log(r9758, r9757, MPFR_RNDN);
        mpfr_div(r9759, r9758, r9753, MPFR_RNDN);
        mpfr_mul(r9760, r9759, r9748, MPFR_RNDN);
        ;
        mpfr_set_si(r9762, mpfr_cmp(r9749, r9761) <= 0, MPFR_RNDN);
        mpfr_mul(r9763, r9748, r9745, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9766, r9765, r9734, MPFR_RNDN);
        mpfr_add(r9767, r9764, r9766, MPFR_RNDN);
        mpfr_mul(r9768, r9734, r9745, MPFR_RNDN);
        mpfr_mul(r9769, r9767, r9768, MPFR_RNDN);
        mpfr_add(r9770, r9763, r9769, MPFR_RNDN);
        mpfr_pow(r9771, r9753, r9745, MPFR_RNDN);
        mpfr_sub(r9772, r9771, r9752, MPFR_RNDN);
        mpfr_div(r9773, r9748, r9734, MPFR_RNDN);
        mpfr_mul(r9774, r9745, r9773, MPFR_RNDN);
        mpfr_mul(r9775, r9772, r9774, MPFR_RNDN);
        if (mpfr_get_si(r9762, MPFR_RNDN)) { mpfr_set(r9776, r9770, MPFR_RNDN); } else { mpfr_set(r9776, r9775, MPFR_RNDN); };
        if (mpfr_get_si(r9751, MPFR_RNDN)) { mpfr_set(r9777, r9760, MPFR_RNDN); } else { mpfr_set(r9777, r9776, MPFR_RNDN); };
        return mpfr_get_d(r9777, MPFR_RNDN);
}

static mpfr_t r9778, r9779, r9780, r9781, r9782, r9783, r9784, r9785, r9786, r9787, r9788, r9789, r9790, r9791, r9792, r9793, r9794, r9795, r9796, r9797, r9798, r9799, r9800, r9801, r9802, r9803, r9804, r9805, r9806, r9807, r9808, r9809, r9810, r9811, r9812, r9813, r9814, r9815, r9816, r9817, r9818, r9819, r9820, r9821, r9822, r9823;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r9778, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r9779, "1/6", 10, MPFR_RNDN);
        mpfr_init(r9780);
        mpfr_init(r9781);
        mpfr_init(r9782);
        mpfr_init(r9783);
        mpfr_init(r9784);
        mpfr_init(r9785);
        mpfr_init(r9786);
        mpfr_init(r9787);
        mpfr_init(r9788);
        mpfr_init(r9789);
        mpfr_init(r9790);
        mpfr_init(r9791);
        mpfr_init(r9792);
        mpfr_init(r9793);
        mpfr_init_set_str(r9794, "100", 10, MPFR_RNDN);
        mpfr_init(r9795);
        mpfr_init_set_str(r9796, "-7.876677038040007e+303", 10, MPFR_RNDN);
        mpfr_init(r9797);
        mpfr_init_set_str(r9798, "1", 10, MPFR_RNDN);
        mpfr_init(r9799);
        mpfr_init(r9800);
        mpfr_init(r9801);
        mpfr_init(r9802);
        mpfr_init(r9803);
        mpfr_init(r9804);
        mpfr_init(r9805);
        mpfr_init(r9806);
        mpfr_init_set_str(r9807, "1.7737416257178375e+308", 10, MPFR_RNDN);
        mpfr_init(r9808);
        mpfr_init(r9809);
        mpfr_init_set_str(r9810, "50", 10, MPFR_RNDN);
        mpfr_init_set_str(r9811, "50/3", 10, MPFR_RNDN);
        mpfr_init(r9812);
        mpfr_init(r9813);
        mpfr_init(r9814);
        mpfr_init(r9815);
        mpfr_init(r9816);
        mpfr_init(r9817);
        mpfr_init(r9818);
        mpfr_init(r9819);
        mpfr_init(r9820);
        mpfr_init(r9821);
        mpfr_init(r9822);
        mpfr_init(r9823);
}

double f_dm(double i, double n) {
        ;
        ;
        mpfr_set_d(r9780, i, MPFR_RNDN);
        mpfr_mul(r9781, r9779, r9780, MPFR_RNDN);
        mpfr_add(r9782, r9778, r9781, MPFR_RNDN);
        mpfr_mul(r9783, r9780, r9780, MPFR_RNDN);
        mpfr_mul(r9784, r9782, r9783, MPFR_RNDN);
        mpfr_add(r9785, r9784, r9780, MPFR_RNDN);
        mpfr_cbrt(r9786, r9785, MPFR_RNDN);
        mpfr_exp(r9787, r9786, MPFR_RNDN);
        mpfr_log(r9788, r9787, MPFR_RNDN);
        mpfr_mul(r9789, r9788, r9786, MPFR_RNDN);
        mpfr_div(r9790, r9789, r9780, MPFR_RNDN);
        mpfr_set_d(r9791, n, MPFR_RNDN);
        mpfr_mul(r9792, r9791, r9786, MPFR_RNDN);
        mpfr_mul(r9793, r9790, r9792, MPFR_RNDN);
        ;
        mpfr_mul(r9795, r9793, r9794, MPFR_RNDN);
        ;
        mpfr_set_si(r9797, mpfr_cmp(r9795, r9796) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r9799, r9780, r9791, MPFR_RNDN);
        mpfr_add(r9800, r9798, r9799, MPFR_RNDN);
        mpfr_pow(r9801, r9800, r9791, MPFR_RNDN);
        mpfr_sub(r9802, r9801, r9798, MPFR_RNDN);
        mpfr_exp(r9803, r9802, MPFR_RNDN);
        mpfr_log(r9804, r9803, MPFR_RNDN);
        mpfr_div(r9805, r9804, r9799, MPFR_RNDN);
        mpfr_mul(r9806, r9805, r9794, MPFR_RNDN);
        ;
        mpfr_set_si(r9808, mpfr_cmp(r9795, r9807) <= 0, MPFR_RNDN);
        mpfr_mul(r9809, r9794, r9791, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r9812, r9811, r9780, MPFR_RNDN);
        mpfr_add(r9813, r9810, r9812, MPFR_RNDN);
        mpfr_mul(r9814, r9780, r9791, MPFR_RNDN);
        mpfr_mul(r9815, r9813, r9814, MPFR_RNDN);
        mpfr_add(r9816, r9809, r9815, MPFR_RNDN);
        mpfr_pow(r9817, r9799, r9791, MPFR_RNDN);
        mpfr_sub(r9818, r9817, r9798, MPFR_RNDN);
        mpfr_div(r9819, r9794, r9780, MPFR_RNDN);
        mpfr_mul(r9820, r9791, r9819, MPFR_RNDN);
        mpfr_mul(r9821, r9818, r9820, MPFR_RNDN);
        if (mpfr_get_si(r9808, MPFR_RNDN)) { mpfr_set(r9822, r9816, MPFR_RNDN); } else { mpfr_set(r9822, r9821, MPFR_RNDN); };
        if (mpfr_get_si(r9797, MPFR_RNDN)) { mpfr_set(r9823, r9806, MPFR_RNDN); } else { mpfr_set(r9823, r9822, MPFR_RNDN); };
        return mpfr_get_d(r9823, MPFR_RNDN);
}

