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

char *name = "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5";

double f_if(float x, float y) {
        float r33356 = 2.0;
        float r33357 = sqrt(r33356);
        float r33358 = x;
        float r33359 = sin(r33358);
        float r33360 = y;
        float r33361 = sin(r33360);
        float r33362 = 16.0;
        float r33363 = r33361 / r33362;
        float r33364 = r33359 - r33363;
        float r33365 = r33357 * r33364;
        float r33366 = r33359 / r33362;
        float r33367 = r33361 - r33366;
        float r33368 = r33365 * r33367;
        float r33369 = cos(r33358);
        float r33370 = cos(r33360);
        float r33371 = r33369 - r33370;
        float r33372 = r33368 * r33371;
        float r33373 = r33356 + r33372;
        float r33374 = 3.0;
        float r33375 = 1.0;
        float r33376 = 5.0;
        float r33377 = sqrt(r33376);
        float r33378 = r33377 - r33375;
        float r33379 = r33378 / r33356;
        float r33380 = r33379 * r33369;
        float r33381 = r33375 + r33380;
        float r33382 = r33374 - r33377;
        float r33383 = r33382 / r33356;
        float r33384 = r33383 * r33370;
        float r33385 = r33381 + r33384;
        float r33386 = r33374 * r33385;
        float r33387 = r33373 / r33386;
        return r33387;
}

double f_id(double x, double y) {
        double r33388 = 2.0;
        double r33389 = sqrt(r33388);
        double r33390 = x;
        double r33391 = sin(r33390);
        double r33392 = y;
        double r33393 = sin(r33392);
        double r33394 = 16.0;
        double r33395 = r33393 / r33394;
        double r33396 = r33391 - r33395;
        double r33397 = r33389 * r33396;
        double r33398 = r33391 / r33394;
        double r33399 = r33393 - r33398;
        double r33400 = r33397 * r33399;
        double r33401 = cos(r33390);
        double r33402 = cos(r33392);
        double r33403 = r33401 - r33402;
        double r33404 = r33400 * r33403;
        double r33405 = r33388 + r33404;
        double r33406 = 3.0;
        double r33407 = 1.0;
        double r33408 = 5.0;
        double r33409 = sqrt(r33408);
        double r33410 = r33409 - r33407;
        double r33411 = r33410 / r33388;
        double r33412 = r33411 * r33401;
        double r33413 = r33407 + r33412;
        double r33414 = r33406 - r33409;
        double r33415 = r33414 / r33388;
        double r33416 = r33415 * r33402;
        double r33417 = r33413 + r33416;
        double r33418 = r33406 * r33417;
        double r33419 = r33405 / r33418;
        return r33419;
}


double f_of(float x, float y) {
        float r33420 = 2.0;
        float r33421 = sqrt(r33420);
        float r33422 = x;
        float r33423 = sin(r33422);
        float r33424 = y;
        float r33425 = sin(r33424);
        float r33426 = 16.0;
        float r33427 = r33425 / r33426;
        float r33428 = r33423 - r33427;
        float r33429 = r33421 * r33428;
        float r33430 = cbrt(r33429);
        float r33431 = r33430 * r33430;
        float r33432 = r33431 * r33430;
        float r33433 = exp(r33432);
        float r33434 = log(r33433);
        float r33435 = r33423 / r33426;
        float r33436 = r33425 - r33435;
        float r33437 = r33434 * r33436;
        float r33438 = cos(r33422);
        float r33439 = cos(r33424);
        float r33440 = r33438 - r33439;
        float r33441 = r33437 * r33440;
        float r33442 = r33420 + r33441;
        float r33443 = 3.0;
        float r33444 = 1.0;
        float r33445 = 5.0;
        float r33446 = sqrt(r33445);
        float r33447 = r33446 - r33444;
        float r33448 = r33447 / r33420;
        float r33449 = r33448 * r33438;
        float r33450 = r33444 + r33449;
        float r33451 = r33443 * r33443;
        float r33452 = r33451 - r33445;
        float r33453 = r33443 + r33446;
        float r33454 = r33452 / r33453;
        float r33455 = r33454 / r33420;
        float r33456 = r33455 * r33439;
        float r33457 = r33450 + r33456;
        float r33458 = r33443 * r33457;
        float r33459 = r33442 / r33458;
        return r33459;
}

double f_od(double x, double y) {
        double r33460 = 2.0;
        double r33461 = sqrt(r33460);
        double r33462 = x;
        double r33463 = sin(r33462);
        double r33464 = y;
        double r33465 = sin(r33464);
        double r33466 = 16.0;
        double r33467 = r33465 / r33466;
        double r33468 = r33463 - r33467;
        double r33469 = r33461 * r33468;
        double r33470 = cbrt(r33469);
        double r33471 = r33470 * r33470;
        double r33472 = r33471 * r33470;
        double r33473 = exp(r33472);
        double r33474 = log(r33473);
        double r33475 = r33463 / r33466;
        double r33476 = r33465 - r33475;
        double r33477 = r33474 * r33476;
        double r33478 = cos(r33462);
        double r33479 = cos(r33464);
        double r33480 = r33478 - r33479;
        double r33481 = r33477 * r33480;
        double r33482 = r33460 + r33481;
        double r33483 = 3.0;
        double r33484 = 1.0;
        double r33485 = 5.0;
        double r33486 = sqrt(r33485);
        double r33487 = r33486 - r33484;
        double r33488 = r33487 / r33460;
        double r33489 = r33488 * r33478;
        double r33490 = r33484 + r33489;
        double r33491 = r33483 * r33483;
        double r33492 = r33491 - r33485;
        double r33493 = r33483 + r33486;
        double r33494 = r33492 / r33493;
        double r33495 = r33494 / r33460;
        double r33496 = r33495 * r33479;
        double r33497 = r33490 + r33496;
        double r33498 = r33483 * r33497;
        double r33499 = r33482 / r33498;
        return r33499;
}

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 r33500, r33501, r33502, r33503, r33504, r33505, r33506, r33507, r33508, r33509, r33510, r33511, r33512, r33513, r33514, r33515, r33516, r33517, r33518, r33519, r33520, r33521, r33522, r33523, r33524, r33525, r33526, r33527, r33528, r33529, r33530, r33531;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33500, "2.0", 10, MPFR_RNDN);
        mpfr_init(r33501);
        mpfr_init(r33502);
        mpfr_init(r33503);
        mpfr_init(r33504);
        mpfr_init(r33505);
        mpfr_init_set_str(r33506, "16.0", 10, MPFR_RNDN);
        mpfr_init(r33507);
        mpfr_init(r33508);
        mpfr_init(r33509);
        mpfr_init(r33510);
        mpfr_init(r33511);
        mpfr_init(r33512);
        mpfr_init(r33513);
        mpfr_init(r33514);
        mpfr_init(r33515);
        mpfr_init(r33516);
        mpfr_init(r33517);
        mpfr_init_set_str(r33518, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r33519, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r33520, "5.0", 10, MPFR_RNDN);
        mpfr_init(r33521);
        mpfr_init(r33522);
        mpfr_init(r33523);
        mpfr_init(r33524);
        mpfr_init(r33525);
        mpfr_init(r33526);
        mpfr_init(r33527);
        mpfr_init(r33528);
        mpfr_init(r33529);
        mpfr_init(r33530);
        mpfr_init(r33531);
}

double f_im(double x, double y) {
        ;
        mpfr_sqrt(r33501, r33500, MPFR_RNDN);
        mpfr_set_d(r33502, x, MPFR_RNDN);
        mpfr_sin(r33503, r33502, MPFR_RNDN);
        mpfr_set_d(r33504, y, MPFR_RNDN);
        mpfr_sin(r33505, r33504, MPFR_RNDN);
        ;
        mpfr_div(r33507, r33505, r33506, MPFR_RNDN);
        mpfr_sub(r33508, r33503, r33507, MPFR_RNDN);
        mpfr_mul(r33509, r33501, r33508, MPFR_RNDN);
        mpfr_div(r33510, r33503, r33506, MPFR_RNDN);
        mpfr_sub(r33511, r33505, r33510, MPFR_RNDN);
        mpfr_mul(r33512, r33509, r33511, MPFR_RNDN);
        mpfr_cos(r33513, r33502, MPFR_RNDN);
        mpfr_cos(r33514, r33504, MPFR_RNDN);
        mpfr_sub(r33515, r33513, r33514, MPFR_RNDN);
        mpfr_mul(r33516, r33512, r33515, MPFR_RNDN);
        mpfr_add(r33517, r33500, r33516, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sqrt(r33521, r33520, MPFR_RNDN);
        mpfr_sub(r33522, r33521, r33519, MPFR_RNDN);
        mpfr_div(r33523, r33522, r33500, MPFR_RNDN);
        mpfr_mul(r33524, r33523, r33513, MPFR_RNDN);
        mpfr_add(r33525, r33519, r33524, MPFR_RNDN);
        mpfr_sub(r33526, r33518, r33521, MPFR_RNDN);
        mpfr_div(r33527, r33526, r33500, MPFR_RNDN);
        mpfr_mul(r33528, r33527, r33514, MPFR_RNDN);
        mpfr_add(r33529, r33525, r33528, MPFR_RNDN);
        mpfr_mul(r33530, r33518, r33529, MPFR_RNDN);
        mpfr_div(r33531, r33517, r33530, MPFR_RNDN);
        return mpfr_get_d(r33531, MPFR_RNDN);
}

static mpfr_t r33532, r33533, r33534, r33535, r33536, r33537, r33538, r33539, r33540, r33541, r33542, r33543, r33544, r33545, r33546, r33547, r33548, r33549, r33550, r33551, r33552, r33553, r33554, r33555, r33556, r33557, r33558, r33559, r33560, r33561, r33562, r33563, r33564, r33565, r33566, r33567, r33568, r33569, r33570, r33571;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33532, "2.0", 10, MPFR_RNDN);
        mpfr_init(r33533);
        mpfr_init(r33534);
        mpfr_init(r33535);
        mpfr_init(r33536);
        mpfr_init(r33537);
        mpfr_init_set_str(r33538, "16.0", 10, MPFR_RNDN);
        mpfr_init(r33539);
        mpfr_init(r33540);
        mpfr_init(r33541);
        mpfr_init(r33542);
        mpfr_init(r33543);
        mpfr_init(r33544);
        mpfr_init(r33545);
        mpfr_init(r33546);
        mpfr_init(r33547);
        mpfr_init(r33548);
        mpfr_init(r33549);
        mpfr_init(r33550);
        mpfr_init(r33551);
        mpfr_init(r33552);
        mpfr_init(r33553);
        mpfr_init(r33554);
        mpfr_init_set_str(r33555, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r33556, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r33557, "5.0", 10, MPFR_RNDN);
        mpfr_init(r33558);
        mpfr_init(r33559);
        mpfr_init(r33560);
        mpfr_init(r33561);
        mpfr_init(r33562);
        mpfr_init(r33563);
        mpfr_init(r33564);
        mpfr_init(r33565);
        mpfr_init(r33566);
        mpfr_init(r33567);
        mpfr_init(r33568);
        mpfr_init(r33569);
        mpfr_init(r33570);
        mpfr_init(r33571);
}

double f_fm(double x, double y) {
        ;
        mpfr_sqrt(r33533, r33532, MPFR_RNDN);
        mpfr_set_d(r33534, x, MPFR_RNDN);
        mpfr_sin(r33535, r33534, MPFR_RNDN);
        mpfr_set_d(r33536, y, MPFR_RNDN);
        mpfr_sin(r33537, r33536, MPFR_RNDN);
        ;
        mpfr_div(r33539, r33537, r33538, MPFR_RNDN);
        mpfr_sub(r33540, r33535, r33539, MPFR_RNDN);
        mpfr_mul(r33541, r33533, r33540, MPFR_RNDN);
        mpfr_cbrt(r33542, r33541, MPFR_RNDN);
        mpfr_mul(r33543, r33542, r33542, MPFR_RNDN);
        mpfr_mul(r33544, r33543, r33542, MPFR_RNDN);
        mpfr_exp(r33545, r33544, MPFR_RNDN);
        mpfr_log(r33546, r33545, MPFR_RNDN);
        mpfr_div(r33547, r33535, r33538, MPFR_RNDN);
        mpfr_sub(r33548, r33537, r33547, MPFR_RNDN);
        mpfr_mul(r33549, r33546, r33548, MPFR_RNDN);
        mpfr_cos(r33550, r33534, MPFR_RNDN);
        mpfr_cos(r33551, r33536, MPFR_RNDN);
        mpfr_sub(r33552, r33550, r33551, MPFR_RNDN);
        mpfr_mul(r33553, r33549, r33552, MPFR_RNDN);
        mpfr_add(r33554, r33532, r33553, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sqrt(r33558, r33557, MPFR_RNDN);
        mpfr_sub(r33559, r33558, r33556, MPFR_RNDN);
        mpfr_div(r33560, r33559, r33532, MPFR_RNDN);
        mpfr_mul(r33561, r33560, r33550, MPFR_RNDN);
        mpfr_add(r33562, r33556, r33561, MPFR_RNDN);
        mpfr_mul(r33563, r33555, r33555, MPFR_RNDN);
        mpfr_sub(r33564, r33563, r33557, MPFR_RNDN);
        mpfr_add(r33565, r33555, r33558, MPFR_RNDN);
        mpfr_div(r33566, r33564, r33565, MPFR_RNDN);
        mpfr_div(r33567, r33566, r33532, MPFR_RNDN);
        mpfr_mul(r33568, r33567, r33551, MPFR_RNDN);
        mpfr_add(r33569, r33562, r33568, MPFR_RNDN);
        mpfr_mul(r33570, r33555, r33569, MPFR_RNDN);
        mpfr_div(r33571, r33554, r33570, MPFR_RNDN);
        return mpfr_get_d(r33571, MPFR_RNDN);
}

static mpfr_t r33572, r33573, r33574, r33575, r33576, r33577, r33578, r33579, r33580, r33581, r33582, r33583, r33584, r33585, r33586, r33587, r33588, r33589, r33590, r33591, r33592, r33593, r33594, r33595, r33596, r33597, r33598, r33599, r33600, r33601, r33602, r33603, r33604, r33605, r33606, r33607, r33608, r33609, r33610, r33611;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33572, "2.0", 10, MPFR_RNDN);
        mpfr_init(r33573);
        mpfr_init(r33574);
        mpfr_init(r33575);
        mpfr_init(r33576);
        mpfr_init(r33577);
        mpfr_init_set_str(r33578, "16.0", 10, MPFR_RNDN);
        mpfr_init(r33579);
        mpfr_init(r33580);
        mpfr_init(r33581);
        mpfr_init(r33582);
        mpfr_init(r33583);
        mpfr_init(r33584);
        mpfr_init(r33585);
        mpfr_init(r33586);
        mpfr_init(r33587);
        mpfr_init(r33588);
        mpfr_init(r33589);
        mpfr_init(r33590);
        mpfr_init(r33591);
        mpfr_init(r33592);
        mpfr_init(r33593);
        mpfr_init(r33594);
        mpfr_init_set_str(r33595, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r33596, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r33597, "5.0", 10, MPFR_RNDN);
        mpfr_init(r33598);
        mpfr_init(r33599);
        mpfr_init(r33600);
        mpfr_init(r33601);
        mpfr_init(r33602);
        mpfr_init(r33603);
        mpfr_init(r33604);
        mpfr_init(r33605);
        mpfr_init(r33606);
        mpfr_init(r33607);
        mpfr_init(r33608);
        mpfr_init(r33609);
        mpfr_init(r33610);
        mpfr_init(r33611);
}

double f_dm(double x, double y) {
        ;
        mpfr_sqrt(r33573, r33572, MPFR_RNDN);
        mpfr_set_d(r33574, x, MPFR_RNDN);
        mpfr_sin(r33575, r33574, MPFR_RNDN);
        mpfr_set_d(r33576, y, MPFR_RNDN);
        mpfr_sin(r33577, r33576, MPFR_RNDN);
        ;
        mpfr_div(r33579, r33577, r33578, MPFR_RNDN);
        mpfr_sub(r33580, r33575, r33579, MPFR_RNDN);
        mpfr_mul(r33581, r33573, r33580, MPFR_RNDN);
        mpfr_cbrt(r33582, r33581, MPFR_RNDN);
        mpfr_mul(r33583, r33582, r33582, MPFR_RNDN);
        mpfr_mul(r33584, r33583, r33582, MPFR_RNDN);
        mpfr_exp(r33585, r33584, MPFR_RNDN);
        mpfr_log(r33586, r33585, MPFR_RNDN);
        mpfr_div(r33587, r33575, r33578, MPFR_RNDN);
        mpfr_sub(r33588, r33577, r33587, MPFR_RNDN);
        mpfr_mul(r33589, r33586, r33588, MPFR_RNDN);
        mpfr_cos(r33590, r33574, MPFR_RNDN);
        mpfr_cos(r33591, r33576, MPFR_RNDN);
        mpfr_sub(r33592, r33590, r33591, MPFR_RNDN);
        mpfr_mul(r33593, r33589, r33592, MPFR_RNDN);
        mpfr_add(r33594, r33572, r33593, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_sqrt(r33598, r33597, MPFR_RNDN);
        mpfr_sub(r33599, r33598, r33596, MPFR_RNDN);
        mpfr_div(r33600, r33599, r33572, MPFR_RNDN);
        mpfr_mul(r33601, r33600, r33590, MPFR_RNDN);
        mpfr_add(r33602, r33596, r33601, MPFR_RNDN);
        mpfr_mul(r33603, r33595, r33595, MPFR_RNDN);
        mpfr_sub(r33604, r33603, r33597, MPFR_RNDN);
        mpfr_add(r33605, r33595, r33598, MPFR_RNDN);
        mpfr_div(r33606, r33604, r33605, MPFR_RNDN);
        mpfr_div(r33607, r33606, r33572, MPFR_RNDN);
        mpfr_mul(r33608, r33607, r33591, MPFR_RNDN);
        mpfr_add(r33609, r33602, r33608, MPFR_RNDN);
        mpfr_mul(r33610, r33595, r33609, MPFR_RNDN);
        mpfr_div(r33611, r33594, r33610, MPFR_RNDN);
        return mpfr_get_d(r33611, MPFR_RNDN);
}

