#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Maksimov and Kolovsky, Equation (3)";

double f_if(float J, float K, float U) {
        float r9662 = -2;
        float r9663 = J;
        float r9664 = r9662 * r9663;
        float r9665 = K;
        float r9666 = 2;
        float r9667 = r9665 / r9666;
        float r9668 = cos(r9667);
        float r9669 = r9664 * r9668;
        float r9670 = 1;
        float r9671 = U;
        float r9672 = r9666 * r9663;
        float r9673 = r9672 * r9668;
        float r9674 = r9671 / r9673;
        float r9675 = pow(r9674, r9666);
        float r9676 = r9670 + r9675;
        float r9677 = sqrt(r9676);
        float r9678 = r9669 * r9677;
        return r9678;
}

double f_id(double J, double K, double U) {
        double r9679 = -2;
        double r9680 = J;
        double r9681 = r9679 * r9680;
        double r9682 = K;
        double r9683 = 2;
        double r9684 = r9682 / r9683;
        double r9685 = cos(r9684);
        double r9686 = r9681 * r9685;
        double r9687 = 1;
        double r9688 = U;
        double r9689 = r9683 * r9680;
        double r9690 = r9689 * r9685;
        double r9691 = r9688 / r9690;
        double r9692 = pow(r9691, r9683);
        double r9693 = r9687 + r9692;
        double r9694 = sqrt(r9693);
        double r9695 = r9686 * r9694;
        return r9695;
}


double f_of(float J, float K, float U) {
        float r9696 = 1;
        float r9697 = U;
        float r9698 = 2;
        float r9699 = r9697 / r9698;
        float r9700 = J;
        float r9701 = r9699 / r9700;
        float r9702 = K;
        float r9703 = r9702 / r9698;
        float r9704 = cos(r9703);
        float r9705 = r9701 / r9704;
        float r9706 = hypot(r9696, r9705);
        float r9707 = -2;
        float r9708 = r9707 * r9700;
        float r9709 = r9704 * r9708;
        float r9710 = r9706 * r9709;
        float r9711 = -1.7790011333102042e+308;
        bool r9712 = r9710 <= r9711;
        float r9713 = -r9697;
        float r9714 = 1.779430907530268e+308;
        bool r9715 = r9710 <= r9714;
        float r9716 = r9706 * r9704;
        float r9717 = r9716 * r9708;
        float r9718 = r9715 ? r9717 : r9713;
        float r9719 = r9712 ? r9713 : r9718;
        return r9719;
}

double f_od(double J, double K, double U) {
        double r9720 = 1;
        double r9721 = U;
        double r9722 = 2;
        double r9723 = r9721 / r9722;
        double r9724 = J;
        double r9725 = r9723 / r9724;
        double r9726 = K;
        double r9727 = r9726 / r9722;
        double r9728 = cos(r9727);
        double r9729 = r9725 / r9728;
        double r9730 = hypot(r9720, r9729);
        double r9731 = -2;
        double r9732 = r9731 * r9724;
        double r9733 = r9728 * r9732;
        double r9734 = r9730 * r9733;
        double r9735 = -1.7790011333102042e+308;
        bool r9736 = r9734 <= r9735;
        double r9737 = -r9721;
        double r9738 = 1.779430907530268e+308;
        bool r9739 = r9734 <= r9738;
        double r9740 = r9730 * r9728;
        double r9741 = r9740 * r9732;
        double r9742 = r9739 ? r9741 : r9737;
        double r9743 = r9736 ? r9737 : r9742;
        return r9743;
}

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 r9744, r9745, r9746, r9747, r9748, r9749, r9750, r9751, r9752, r9753, r9754, r9755, r9756, r9757, r9758, r9759, r9760;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r9744, "-2", 10, MPFR_RNDN);
        mpfr_init(r9745);
        mpfr_init(r9746);
        mpfr_init(r9747);
        mpfr_init_set_str(r9748, "2", 10, MPFR_RNDN);
        mpfr_init(r9749);
        mpfr_init(r9750);
        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);
}

double f_im(double J, double K, double U) {
        ;
        mpfr_set_d(r9745, J, MPFR_RNDN);
        mpfr_mul(r9746, r9744, r9745, MPFR_RNDN);
        mpfr_set_d(r9747, K, MPFR_RNDN);
        ;
        mpfr_div(r9749, r9747, r9748, MPFR_RNDN);
        mpfr_cos(r9750, r9749, MPFR_RNDN);
        mpfr_mul(r9751, r9746, r9750, MPFR_RNDN);
        ;
        mpfr_set_d(r9753, U, MPFR_RNDN);
        mpfr_mul(r9754, r9748, r9745, MPFR_RNDN);
        mpfr_mul(r9755, r9754, r9750, MPFR_RNDN);
        mpfr_div(r9756, r9753, r9755, MPFR_RNDN);
        mpfr_pow(r9757, r9756, r9748, MPFR_RNDN);
        mpfr_add(r9758, r9752, r9757, MPFR_RNDN);
        mpfr_sqrt(r9759, r9758, MPFR_RNDN);
        mpfr_mul(r9760, r9751, r9759, MPFR_RNDN);
        return mpfr_get_d(r9760, MPFR_RNDN);
}

static mpfr_t r9761, r9762, r9763, r9764, r9765, r9766, r9767, r9768, r9769, r9770, r9771, r9772, r9773, r9774, r9775, r9776, r9777, r9778, r9779, r9780, r9781, r9782, r9783, r9784;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r9761, "1", 10, MPFR_RNDN);
        mpfr_init(r9762);
        mpfr_init_set_str(r9763, "2", 10, MPFR_RNDN);
        mpfr_init(r9764);
        mpfr_init(r9765);
        mpfr_init(r9766);
        mpfr_init(r9767);
        mpfr_init(r9768);
        mpfr_init(r9769);
        mpfr_init(r9770);
        mpfr_init(r9771);
        mpfr_init_set_str(r9772, "-2", 10, MPFR_RNDN);
        mpfr_init(r9773);
        mpfr_init(r9774);
        mpfr_init(r9775);
        mpfr_init_set_str(r9776, "-1.7790011333102042e+308", 10, MPFR_RNDN);
        mpfr_init(r9777);
        mpfr_init(r9778);
        mpfr_init_set_str(r9779, "1.779430907530268e+308", 10, MPFR_RNDN);
        mpfr_init(r9780);
        mpfr_init(r9781);
        mpfr_init(r9782);
        mpfr_init(r9783);
        mpfr_init(r9784);
}

double f_fm(double J, double K, double U) {
        ;
        mpfr_set_d(r9762, U, MPFR_RNDN);
        ;
        mpfr_div(r9764, r9762, r9763, MPFR_RNDN);
        mpfr_set_d(r9765, J, MPFR_RNDN);
        mpfr_div(r9766, r9764, r9765, MPFR_RNDN);
        mpfr_set_d(r9767, K, MPFR_RNDN);
        mpfr_div(r9768, r9767, r9763, MPFR_RNDN);
        mpfr_cos(r9769, r9768, MPFR_RNDN);
        mpfr_div(r9770, r9766, r9769, MPFR_RNDN);
        mpfr_hypot(r9771, r9761, r9770, MPFR_RNDN);
        ;
        mpfr_mul(r9773, r9772, r9765, MPFR_RNDN);
        mpfr_mul(r9774, r9769, r9773, MPFR_RNDN);
        mpfr_mul(r9775, r9771, r9774, MPFR_RNDN);
        ;
        mpfr_set_si(r9777, mpfr_cmp(r9775, r9776) <= 0, MPFR_RNDN);
        mpfr_neg(r9778, r9762, MPFR_RNDN);
        ;
        mpfr_set_si(r9780, mpfr_cmp(r9775, r9779) <= 0, MPFR_RNDN);
        mpfr_mul(r9781, r9771, r9769, MPFR_RNDN);
        mpfr_mul(r9782, r9781, r9773, MPFR_RNDN);
        if (mpfr_get_si(r9780, MPFR_RNDN)) { mpfr_set(r9783, r9782, MPFR_RNDN); } else { mpfr_set(r9783, r9778, MPFR_RNDN); };
        if (mpfr_get_si(r9777, MPFR_RNDN)) { mpfr_set(r9784, r9778, MPFR_RNDN); } else { mpfr_set(r9784, r9783, MPFR_RNDN); };
        return mpfr_get_d(r9784, MPFR_RNDN);
}

static mpfr_t r9785, r9786, r9787, r9788, r9789, r9790, r9791, r9792, r9793, r9794, r9795, r9796, r9797, r9798, r9799, r9800, r9801, r9802, r9803, r9804, r9805, r9806, r9807, r9808;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r9785, "1", 10, MPFR_RNDN);
        mpfr_init(r9786);
        mpfr_init_set_str(r9787, "2", 10, MPFR_RNDN);
        mpfr_init(r9788);
        mpfr_init(r9789);
        mpfr_init(r9790);
        mpfr_init(r9791);
        mpfr_init(r9792);
        mpfr_init(r9793);
        mpfr_init(r9794);
        mpfr_init(r9795);
        mpfr_init_set_str(r9796, "-2", 10, MPFR_RNDN);
        mpfr_init(r9797);
        mpfr_init(r9798);
        mpfr_init(r9799);
        mpfr_init_set_str(r9800, "-1.7790011333102042e+308", 10, MPFR_RNDN);
        mpfr_init(r9801);
        mpfr_init(r9802);
        mpfr_init_set_str(r9803, "1.779430907530268e+308", 10, MPFR_RNDN);
        mpfr_init(r9804);
        mpfr_init(r9805);
        mpfr_init(r9806);
        mpfr_init(r9807);
        mpfr_init(r9808);
}

double f_dm(double J, double K, double U) {
        ;
        mpfr_set_d(r9786, U, MPFR_RNDN);
        ;
        mpfr_div(r9788, r9786, r9787, MPFR_RNDN);
        mpfr_set_d(r9789, J, MPFR_RNDN);
        mpfr_div(r9790, r9788, r9789, MPFR_RNDN);
        mpfr_set_d(r9791, K, MPFR_RNDN);
        mpfr_div(r9792, r9791, r9787, MPFR_RNDN);
        mpfr_cos(r9793, r9792, MPFR_RNDN);
        mpfr_div(r9794, r9790, r9793, MPFR_RNDN);
        mpfr_hypot(r9795, r9785, r9794, MPFR_RNDN);
        ;
        mpfr_mul(r9797, r9796, r9789, MPFR_RNDN);
        mpfr_mul(r9798, r9793, r9797, MPFR_RNDN);
        mpfr_mul(r9799, r9795, r9798, MPFR_RNDN);
        ;
        mpfr_set_si(r9801, mpfr_cmp(r9799, r9800) <= 0, MPFR_RNDN);
        mpfr_neg(r9802, r9786, MPFR_RNDN);
        ;
        mpfr_set_si(r9804, mpfr_cmp(r9799, r9803) <= 0, MPFR_RNDN);
        mpfr_mul(r9805, r9795, r9793, MPFR_RNDN);
        mpfr_mul(r9806, r9805, r9797, MPFR_RNDN);
        if (mpfr_get_si(r9804, MPFR_RNDN)) { mpfr_set(r9807, r9806, MPFR_RNDN); } else { mpfr_set(r9807, r9802, MPFR_RNDN); };
        if (mpfr_get_si(r9801, MPFR_RNDN)) { mpfr_set(r9808, r9802, MPFR_RNDN); } else { mpfr_set(r9808, r9807, MPFR_RNDN); };
        return mpfr_get_d(r9808, MPFR_RNDN);
}

