#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 r26254 = -2;
        float r26255 = J;
        float r26256 = r26254 * r26255;
        float r26257 = K;
        float r26258 = 2;
        float r26259 = r26257 / r26258;
        float r26260 = cos(r26259);
        float r26261 = r26256 * r26260;
        float r26262 = 1;
        float r26263 = U;
        float r26264 = r26258 * r26255;
        float r26265 = r26264 * r26260;
        float r26266 = r26263 / r26265;
        float r26267 = pow(r26266, r26258);
        float r26268 = r26262 + r26267;
        float r26269 = sqrt(r26268);
        float r26270 = r26261 * r26269;
        return r26270;
}

double f_id(double J, double K, double U) {
        double r26271 = -2;
        double r26272 = J;
        double r26273 = r26271 * r26272;
        double r26274 = K;
        double r26275 = 2;
        double r26276 = r26274 / r26275;
        double r26277 = cos(r26276);
        double r26278 = r26273 * r26277;
        double r26279 = 1;
        double r26280 = U;
        double r26281 = r26275 * r26272;
        double r26282 = r26281 * r26277;
        double r26283 = r26280 / r26282;
        double r26284 = pow(r26283, r26275);
        double r26285 = r26279 + r26284;
        double r26286 = sqrt(r26285);
        double r26287 = r26278 * r26286;
        return r26287;
}


double f_of(float J, float K, float U) {
        float r26288 = J;
        float r26289 = -2;
        float r26290 = r26288 * r26289;
        float r26291 = K;
        float r26292 = 2;
        float r26293 = r26291 / r26292;
        float r26294 = cos(r26293);
        float r26295 = r26290 * r26294;
        float r26296 = 1;
        float r26297 = U;
        float r26298 = r26297 / r26292;
        float r26299 = r26298 / r26288;
        float r26300 = r26299 / r26294;
        float r26301 = hypot(r26296, r26300);
        float r26302 = r26295 * r26301;
        float r26303 = -1.7697804931480815e+308;
        bool r26304 = r26302 <= r26303;
        float r26305 = 1/2;
        float r26306 = r26305 * r26297;
        float r26307 = r26289 * r26306;
        float r26308 = 1.7763635880269709e+308;
        bool r26309 = r26302 <= r26308;
        float r26310 = r26294 * r26301;
        float r26311 = r26290 * r26310;
        float r26312 = r26309 ? r26311 : r26307;
        float r26313 = r26304 ? r26307 : r26312;
        return r26313;
}

double f_od(double J, double K, double U) {
        double r26314 = J;
        double r26315 = -2;
        double r26316 = r26314 * r26315;
        double r26317 = K;
        double r26318 = 2;
        double r26319 = r26317 / r26318;
        double r26320 = cos(r26319);
        double r26321 = r26316 * r26320;
        double r26322 = 1;
        double r26323 = U;
        double r26324 = r26323 / r26318;
        double r26325 = r26324 / r26314;
        double r26326 = r26325 / r26320;
        double r26327 = hypot(r26322, r26326);
        double r26328 = r26321 * r26327;
        double r26329 = -1.7697804931480815e+308;
        bool r26330 = r26328 <= r26329;
        double r26331 = 1/2;
        double r26332 = r26331 * r26323;
        double r26333 = r26315 * r26332;
        double r26334 = 1.7763635880269709e+308;
        bool r26335 = r26328 <= r26334;
        double r26336 = r26320 * r26327;
        double r26337 = r26316 * r26336;
        double r26338 = r26335 ? r26337 : r26333;
        double r26339 = r26330 ? r26333 : r26338;
        return r26339;
}

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 r26340, r26341, r26342, r26343, r26344, r26345, r26346, r26347, r26348, r26349, r26350, r26351, r26352, r26353, r26354, r26355, r26356;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r26340, "-2", 10, MPFR_RNDN);
        mpfr_init(r26341);
        mpfr_init(r26342);
        mpfr_init(r26343);
        mpfr_init_set_str(r26344, "2", 10, MPFR_RNDN);
        mpfr_init(r26345);
        mpfr_init(r26346);
        mpfr_init(r26347);
        mpfr_init_set_str(r26348, "1", 10, MPFR_RNDN);
        mpfr_init(r26349);
        mpfr_init(r26350);
        mpfr_init(r26351);
        mpfr_init(r26352);
        mpfr_init(r26353);
        mpfr_init(r26354);
        mpfr_init(r26355);
        mpfr_init(r26356);
}

double f_im(double J, double K, double U) {
        ;
        mpfr_set_d(r26341, J, MPFR_RNDN);
        mpfr_mul(r26342, r26340, r26341, MPFR_RNDN);
        mpfr_set_d(r26343, K, MPFR_RNDN);
        ;
        mpfr_div(r26345, r26343, r26344, MPFR_RNDN);
        mpfr_cos(r26346, r26345, MPFR_RNDN);
        mpfr_mul(r26347, r26342, r26346, MPFR_RNDN);
        ;
        mpfr_set_d(r26349, U, MPFR_RNDN);
        mpfr_mul(r26350, r26344, r26341, MPFR_RNDN);
        mpfr_mul(r26351, r26350, r26346, MPFR_RNDN);
        mpfr_div(r26352, r26349, r26351, MPFR_RNDN);
        mpfr_pow(r26353, r26352, r26344, MPFR_RNDN);
        mpfr_add(r26354, r26348, r26353, MPFR_RNDN);
        mpfr_sqrt(r26355, r26354, MPFR_RNDN);
        mpfr_mul(r26356, r26347, r26355, MPFR_RNDN);
        return mpfr_get_d(r26356, MPFR_RNDN);
}

static mpfr_t r26357, r26358, r26359, r26360, r26361, r26362, r26363, r26364, r26365, r26366, r26367, r26368, r26369, r26370, r26371, r26372, r26373, r26374, r26375, r26376, r26377, r26378, r26379, r26380, r26381, r26382;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r26357);
        mpfr_init_set_str(r26358, "-2", 10, MPFR_RNDN);
        mpfr_init(r26359);
        mpfr_init(r26360);
        mpfr_init_set_str(r26361, "2", 10, MPFR_RNDN);
        mpfr_init(r26362);
        mpfr_init(r26363);
        mpfr_init(r26364);
        mpfr_init_set_str(r26365, "1", 10, MPFR_RNDN);
        mpfr_init(r26366);
        mpfr_init(r26367);
        mpfr_init(r26368);
        mpfr_init(r26369);
        mpfr_init(r26370);
        mpfr_init(r26371);
        mpfr_init_set_str(r26372, "-1.7697804931480815e+308", 10, MPFR_RNDN);
        mpfr_init(r26373);
        mpfr_init_set_str(r26374, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26375);
        mpfr_init(r26376);
        mpfr_init_set_str(r26377, "1.7763635880269709e+308", 10, MPFR_RNDN);
        mpfr_init(r26378);
        mpfr_init(r26379);
        mpfr_init(r26380);
        mpfr_init(r26381);
        mpfr_init(r26382);
}

double f_fm(double J, double K, double U) {
        mpfr_set_d(r26357, J, MPFR_RNDN);
        ;
        mpfr_mul(r26359, r26357, r26358, MPFR_RNDN);
        mpfr_set_d(r26360, K, MPFR_RNDN);
        ;
        mpfr_div(r26362, r26360, r26361, MPFR_RNDN);
        mpfr_cos(r26363, r26362, MPFR_RNDN);
        mpfr_mul(r26364, r26359, r26363, MPFR_RNDN);
        ;
        mpfr_set_d(r26366, U, MPFR_RNDN);
        mpfr_div(r26367, r26366, r26361, MPFR_RNDN);
        mpfr_div(r26368, r26367, r26357, MPFR_RNDN);
        mpfr_div(r26369, r26368, r26363, MPFR_RNDN);
        mpfr_hypot(r26370, r26365, r26369, MPFR_RNDN);
        mpfr_mul(r26371, r26364, r26370, MPFR_RNDN);
        ;
        mpfr_set_si(r26373, mpfr_cmp(r26371, r26372) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r26375, r26374, r26366, MPFR_RNDN);
        mpfr_mul(r26376, r26358, r26375, MPFR_RNDN);
        ;
        mpfr_set_si(r26378, mpfr_cmp(r26371, r26377) <= 0, MPFR_RNDN);
        mpfr_mul(r26379, r26363, r26370, MPFR_RNDN);
        mpfr_mul(r26380, r26359, r26379, MPFR_RNDN);
        if (mpfr_get_si(r26378, MPFR_RNDN)) { mpfr_set(r26381, r26380, MPFR_RNDN); } else { mpfr_set(r26381, r26376, MPFR_RNDN); };
        if (mpfr_get_si(r26373, MPFR_RNDN)) { mpfr_set(r26382, r26376, MPFR_RNDN); } else { mpfr_set(r26382, r26381, MPFR_RNDN); };
        return mpfr_get_d(r26382, MPFR_RNDN);
}

static mpfr_t r26383, r26384, r26385, r26386, r26387, r26388, r26389, r26390, r26391, r26392, r26393, r26394, r26395, r26396, r26397, r26398, r26399, r26400, r26401, r26402, r26403, r26404, r26405, r26406, r26407, r26408;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r26383);
        mpfr_init_set_str(r26384, "-2", 10, MPFR_RNDN);
        mpfr_init(r26385);
        mpfr_init(r26386);
        mpfr_init_set_str(r26387, "2", 10, MPFR_RNDN);
        mpfr_init(r26388);
        mpfr_init(r26389);
        mpfr_init(r26390);
        mpfr_init_set_str(r26391, "1", 10, MPFR_RNDN);
        mpfr_init(r26392);
        mpfr_init(r26393);
        mpfr_init(r26394);
        mpfr_init(r26395);
        mpfr_init(r26396);
        mpfr_init(r26397);
        mpfr_init_set_str(r26398, "-1.7697804931480815e+308", 10, MPFR_RNDN);
        mpfr_init(r26399);
        mpfr_init_set_str(r26400, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26401);
        mpfr_init(r26402);
        mpfr_init_set_str(r26403, "1.7763635880269709e+308", 10, MPFR_RNDN);
        mpfr_init(r26404);
        mpfr_init(r26405);
        mpfr_init(r26406);
        mpfr_init(r26407);
        mpfr_init(r26408);
}

double f_dm(double J, double K, double U) {
        mpfr_set_d(r26383, J, MPFR_RNDN);
        ;
        mpfr_mul(r26385, r26383, r26384, MPFR_RNDN);
        mpfr_set_d(r26386, K, MPFR_RNDN);
        ;
        mpfr_div(r26388, r26386, r26387, MPFR_RNDN);
        mpfr_cos(r26389, r26388, MPFR_RNDN);
        mpfr_mul(r26390, r26385, r26389, MPFR_RNDN);
        ;
        mpfr_set_d(r26392, U, MPFR_RNDN);
        mpfr_div(r26393, r26392, r26387, MPFR_RNDN);
        mpfr_div(r26394, r26393, r26383, MPFR_RNDN);
        mpfr_div(r26395, r26394, r26389, MPFR_RNDN);
        mpfr_hypot(r26396, r26391, r26395, MPFR_RNDN);
        mpfr_mul(r26397, r26390, r26396, MPFR_RNDN);
        ;
        mpfr_set_si(r26399, mpfr_cmp(r26397, r26398) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r26401, r26400, r26392, MPFR_RNDN);
        mpfr_mul(r26402, r26384, r26401, MPFR_RNDN);
        ;
        mpfr_set_si(r26404, mpfr_cmp(r26397, r26403) <= 0, MPFR_RNDN);
        mpfr_mul(r26405, r26389, r26396, MPFR_RNDN);
        mpfr_mul(r26406, r26385, r26405, MPFR_RNDN);
        if (mpfr_get_si(r26404, MPFR_RNDN)) { mpfr_set(r26407, r26406, MPFR_RNDN); } else { mpfr_set(r26407, r26402, MPFR_RNDN); };
        if (mpfr_get_si(r26399, MPFR_RNDN)) { mpfr_set(r26408, r26402, MPFR_RNDN); } else { mpfr_set(r26408, r26407, MPFR_RNDN); };
        return mpfr_get_d(r26408, MPFR_RNDN);
}

