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

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

double f_if(float K, float m, float n, float M, float l) {
        float r9539 = K;
        float r9540 = m;
        float r9541 = n;
        float r9542 = r9540 + r9541;
        float r9543 = r9539 * r9542;
        float r9544 = 2;
        float r9545 = r9543 / r9544;
        float r9546 = M;
        float r9547 = r9545 - r9546;
        float r9548 = cos(r9547);
        float r9549 = r9542 / r9544;
        float r9550 = r9549 - r9546;
        float r9551 = pow(r9550, r9544);
        float r9552 = -r9551;
        float r9553 = l;
        float r9554 = r9540 - r9541;
        float r9555 = fabs(r9554);
        float r9556 = r9553 - r9555;
        float r9557 = r9552 - r9556;
        float r9558 = exp(r9557);
        float r9559 = r9548 * r9558;
        return r9559;
}

double f_id(double K, double m, double n, double M, double l) {
        double r9560 = K;
        double r9561 = m;
        double r9562 = n;
        double r9563 = r9561 + r9562;
        double r9564 = r9560 * r9563;
        double r9565 = 2;
        double r9566 = r9564 / r9565;
        double r9567 = M;
        double r9568 = r9566 - r9567;
        double r9569 = cos(r9568);
        double r9570 = r9563 / r9565;
        double r9571 = r9570 - r9567;
        double r9572 = pow(r9571, r9565);
        double r9573 = -r9572;
        double r9574 = l;
        double r9575 = r9561 - r9562;
        double r9576 = fabs(r9575);
        double r9577 = r9574 - r9576;
        double r9578 = r9573 - r9577;
        double r9579 = exp(r9578);
        double r9580 = r9569 * r9579;
        return r9580;
}


double f_of(float __attribute__((unused)) K, float m, float n, float M, float l) {
        float r9581 = m;
        float r9582 = n;
        float r9583 = r9581 + r9582;
        float r9584 = 2;
        float r9585 = r9583 / r9584;
        float r9586 = M;
        float r9587 = r9585 - r9586;
        float r9588 = pow(r9587, r9584);
        float r9589 = -r9588;
        float r9590 = l;
        float r9591 = r9581 - r9582;
        float r9592 = fabs(r9591);
        float r9593 = r9590 - r9592;
        float r9594 = r9589 - r9593;
        float r9595 = exp(r9594);
        return r9595;
}

double f_od(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r9596 = m;
        double r9597 = n;
        double r9598 = r9596 + r9597;
        double r9599 = 2;
        double r9600 = r9598 / r9599;
        double r9601 = M;
        double r9602 = r9600 - r9601;
        double r9603 = pow(r9602, r9599);
        double r9604 = -r9603;
        double r9605 = l;
        double r9606 = r9596 - r9597;
        double r9607 = fabs(r9606);
        double r9608 = r9605 - r9607;
        double r9609 = r9604 - r9608;
        double r9610 = exp(r9609);
        return r9610;
}

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 r9611, r9612, r9613, r9614, r9615, r9616, r9617, r9618, r9619, r9620, r9621, r9622, r9623, r9624, r9625, r9626, r9627, r9628, r9629, r9630, r9631;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9611);
        mpfr_init(r9612);
        mpfr_init(r9613);
        mpfr_init(r9614);
        mpfr_init(r9615);
        mpfr_init_set_str(r9616, "2", 10, MPFR_RNDN);
        mpfr_init(r9617);
        mpfr_init(r9618);
        mpfr_init(r9619);
        mpfr_init(r9620);
        mpfr_init(r9621);
        mpfr_init(r9622);
        mpfr_init(r9623);
        mpfr_init(r9624);
        mpfr_init(r9625);
        mpfr_init(r9626);
        mpfr_init(r9627);
        mpfr_init(r9628);
        mpfr_init(r9629);
        mpfr_init(r9630);
        mpfr_init(r9631);
}

double f_im(double K, double m, double n, double M, double l) {
        mpfr_set_d(r9611, K, MPFR_RNDN);
        mpfr_set_d(r9612, m, MPFR_RNDN);
        mpfr_set_d(r9613, n, MPFR_RNDN);
        mpfr_add(r9614, r9612, r9613, MPFR_RNDN);
        mpfr_mul(r9615, r9611, r9614, MPFR_RNDN);
        ;
        mpfr_div(r9617, r9615, r9616, MPFR_RNDN);
        mpfr_set_d(r9618, M, MPFR_RNDN);
        mpfr_sub(r9619, r9617, r9618, MPFR_RNDN);
        mpfr_cos(r9620, r9619, MPFR_RNDN);
        mpfr_div(r9621, r9614, r9616, MPFR_RNDN);
        mpfr_sub(r9622, r9621, r9618, MPFR_RNDN);
        mpfr_pow(r9623, r9622, r9616, MPFR_RNDN);
        mpfr_neg(r9624, r9623, MPFR_RNDN);
        mpfr_set_d(r9625, l, MPFR_RNDN);
        mpfr_sub(r9626, r9612, r9613, MPFR_RNDN);
        mpfr_abs(r9627, r9626, MPFR_RNDN);
        mpfr_sub(r9628, r9625, r9627, MPFR_RNDN);
        mpfr_sub(r9629, r9624, r9628, MPFR_RNDN);
        mpfr_exp(r9630, r9629, MPFR_RNDN);
        mpfr_mul(r9631, r9620, r9630, MPFR_RNDN);
        return mpfr_get_d(r9631, MPFR_RNDN);
}

static mpfr_t r9632, r9633, r9634, r9635, r9636, r9637, r9638, r9639, r9640, r9641, r9642, r9643, r9644, r9645, r9646;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9632);
        mpfr_init(r9633);
        mpfr_init(r9634);
        mpfr_init_set_str(r9635, "2", 10, MPFR_RNDN);
        mpfr_init(r9636);
        mpfr_init(r9637);
        mpfr_init(r9638);
        mpfr_init(r9639);
        mpfr_init(r9640);
        mpfr_init(r9641);
        mpfr_init(r9642);
        mpfr_init(r9643);
        mpfr_init(r9644);
        mpfr_init(r9645);
        mpfr_init(r9646);
}

double f_fm(double __attribute__((unused)) K, double m, double n, double M, double l) {
        mpfr_set_d(r9632, m, MPFR_RNDN);
        mpfr_set_d(r9633, n, MPFR_RNDN);
        mpfr_add(r9634, r9632, r9633, MPFR_RNDN);
        ;
        mpfr_div(r9636, r9634, r9635, MPFR_RNDN);
        mpfr_set_d(r9637, M, MPFR_RNDN);
        mpfr_sub(r9638, r9636, r9637, MPFR_RNDN);
        mpfr_pow(r9639, r9638, r9635, MPFR_RNDN);
        mpfr_neg(r9640, r9639, MPFR_RNDN);
        mpfr_set_d(r9641, l, MPFR_RNDN);
        mpfr_sub(r9642, r9632, r9633, MPFR_RNDN);
        mpfr_abs(r9643, r9642, MPFR_RNDN);
        mpfr_sub(r9644, r9641, r9643, MPFR_RNDN);
        mpfr_sub(r9645, r9640, r9644, MPFR_RNDN);
        mpfr_exp(r9646, r9645, MPFR_RNDN);
        return mpfr_get_d(r9646, MPFR_RNDN);
}

static mpfr_t r9647, r9648, r9649, r9650, r9651, r9652, r9653, r9654, r9655, r9656, r9657, r9658, r9659, r9660, r9661;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9647);
        mpfr_init(r9648);
        mpfr_init(r9649);
        mpfr_init_set_str(r9650, "2", 10, MPFR_RNDN);
        mpfr_init(r9651);
        mpfr_init(r9652);
        mpfr_init(r9653);
        mpfr_init(r9654);
        mpfr_init(r9655);
        mpfr_init(r9656);
        mpfr_init(r9657);
        mpfr_init(r9658);
        mpfr_init(r9659);
        mpfr_init(r9660);
        mpfr_init(r9661);
}

double f_dm(double __attribute__((unused)) K, double m, double n, double M, double l) {
        mpfr_set_d(r9647, m, MPFR_RNDN);
        mpfr_set_d(r9648, n, MPFR_RNDN);
        mpfr_add(r9649, r9647, r9648, MPFR_RNDN);
        ;
        mpfr_div(r9651, r9649, r9650, MPFR_RNDN);
        mpfr_set_d(r9652, M, MPFR_RNDN);
        mpfr_sub(r9653, r9651, r9652, MPFR_RNDN);
        mpfr_pow(r9654, r9653, r9650, MPFR_RNDN);
        mpfr_neg(r9655, r9654, MPFR_RNDN);
        mpfr_set_d(r9656, l, MPFR_RNDN);
        mpfr_sub(r9657, r9647, r9648, MPFR_RNDN);
        mpfr_abs(r9658, r9657, MPFR_RNDN);
        mpfr_sub(r9659, r9656, r9658, MPFR_RNDN);
        mpfr_sub(r9660, r9655, r9659, MPFR_RNDN);
        mpfr_exp(r9661, r9660, MPFR_RNDN);
        return mpfr_get_d(r9661, MPFR_RNDN);
}

