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

char *name = "Logistic function from Lakshay Garg";

double f_if(float x, float __attribute__((unused)) y) {
        float r21442 = 2;
        float r21443 = 1;
        float r21444 = -2;
        float r21445 = x;
        float r21446 = r21444 * r21445;
        float r21447 = exp(r21446);
        float r21448 = r21443 + r21447;
        float r21449 = r21442 / r21448;
        float r21450 = r21449 - r21443;
        return r21450;
}

double f_id(double x, double __attribute__((unused)) y) {
        double r21451 = 2;
        double r21452 = 1;
        double r21453 = -2;
        double r21454 = x;
        double r21455 = r21453 * r21454;
        double r21456 = exp(r21455);
        double r21457 = r21452 + r21456;
        double r21458 = r21451 / r21457;
        double r21459 = r21458 - r21452;
        return r21459;
}


double f_of(float x, float __attribute__((unused)) y) {
        float r21460 = 2;
        float r21461 = 1;
        float r21462 = -2;
        float r21463 = x;
        float r21464 = r21462 * r21463;
        float r21465 = exp(r21464);
        float r21466 = r21461 + r21465;
        float r21467 = r21460 / r21466;
        float r21468 = r21467 - r21461;
        float r21469 = -2.8464216759924333e-06;
        bool r21470 = r21468 <= r21469;
        float r21471 = sqrt(r21466);
        float r21472 = r21460 / r21471;
        float r21473 = r21472 / r21471;
        float r21474 = r21473 - r21461;
        float r21475 = 0.06250000001760946;
        bool r21476 = r21468 <= r21475;
        float r21477 = 2/15;
        float r21478 = 5;
        float r21479 = pow(r21463, r21478);
        float r21480 = r21477 * r21479;
        float r21481 = r21480 + r21463;
        float r21482 = 1/3;
        float r21483 = 3;
        float r21484 = pow(r21463, r21483);
        float r21485 = r21482 * r21484;
        float r21486 = r21481 - r21485;
        float r21487 = r21476 ? r21486 : r21474;
        float r21488 = r21470 ? r21474 : r21487;
        return r21488;
}

double f_od(double x, double __attribute__((unused)) y) {
        double r21489 = 2;
        double r21490 = 1;
        double r21491 = -2;
        double r21492 = x;
        double r21493 = r21491 * r21492;
        double r21494 = exp(r21493);
        double r21495 = r21490 + r21494;
        double r21496 = r21489 / r21495;
        double r21497 = r21496 - r21490;
        double r21498 = -2.8464216759924333e-06;
        bool r21499 = r21497 <= r21498;
        double r21500 = sqrt(r21495);
        double r21501 = r21489 / r21500;
        double r21502 = r21501 / r21500;
        double r21503 = r21502 - r21490;
        double r21504 = 0.06250000001760946;
        bool r21505 = r21497 <= r21504;
        double r21506 = 2/15;
        double r21507 = 5;
        double r21508 = pow(r21492, r21507);
        double r21509 = r21506 * r21508;
        double r21510 = r21509 + r21492;
        double r21511 = 1/3;
        double r21512 = 3;
        double r21513 = pow(r21492, r21512);
        double r21514 = r21511 * r21513;
        double r21515 = r21510 - r21514;
        double r21516 = r21505 ? r21515 : r21503;
        double r21517 = r21499 ? r21503 : r21516;
        return r21517;
}

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 r21518, r21519, r21520, r21521, r21522, r21523, r21524, r21525, r21526;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r21518, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r21519, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r21520, "-2", 10, MPFR_RNDN);
        mpfr_init(r21521);
        mpfr_init(r21522);
        mpfr_init(r21523);
        mpfr_init(r21524);
        mpfr_init(r21525);
        mpfr_init(r21526);
}

double f_im(double x, double __attribute__((unused)) y) {
        ;
        ;
        ;
        mpfr_set_d(r21521, x, MPFR_RNDN);
        mpfr_mul(r21522, r21520, r21521, MPFR_RNDN);
        mpfr_exp(r21523, r21522, MPFR_RNDN);
        mpfr_add(r21524, r21519, r21523, MPFR_RNDN);
        mpfr_div(r21525, r21518, r21524, MPFR_RNDN);
        mpfr_sub(r21526, r21525, r21519, MPFR_RNDN);
        return mpfr_get_d(r21526, MPFR_RNDN);
}

static mpfr_t r21527, r21528, r21529, r21530, r21531, r21532, r21533, r21534, r21535, r21536, r21537, r21538, r21539, r21540, r21541, r21542, r21543, r21544, r21545, r21546, r21547, r21548, r21549, r21550, r21551, r21552, r21553, r21554, r21555;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r21527, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r21528, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r21529, "-2", 10, MPFR_RNDN);
        mpfr_init(r21530);
        mpfr_init(r21531);
        mpfr_init(r21532);
        mpfr_init(r21533);
        mpfr_init(r21534);
        mpfr_init(r21535);
        mpfr_init_set_str(r21536, "-2.8464216759924333e-06", 10, MPFR_RNDN);
        mpfr_init(r21537);
        mpfr_init(r21538);
        mpfr_init(r21539);
        mpfr_init(r21540);
        mpfr_init(r21541);
        mpfr_init_set_str(r21542, "0.06250000001760946", 10, MPFR_RNDN);
        mpfr_init(r21543);
        mpfr_init_set_str(r21544, "2/15", 10, MPFR_RNDN);
        mpfr_init_set_str(r21545, "5", 10, MPFR_RNDN);
        mpfr_init(r21546);
        mpfr_init(r21547);
        mpfr_init(r21548);
        mpfr_init_set_str(r21549, "1/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r21550, "3", 10, MPFR_RNDN);
        mpfr_init(r21551);
        mpfr_init(r21552);
        mpfr_init(r21553);
        mpfr_init(r21554);
        mpfr_init(r21555);
}

double f_fm(double x, double __attribute__((unused)) y) {
        ;
        ;
        ;
        mpfr_set_d(r21530, x, MPFR_RNDN);
        mpfr_mul(r21531, r21529, r21530, MPFR_RNDN);
        mpfr_exp(r21532, r21531, MPFR_RNDN);
        mpfr_add(r21533, r21528, r21532, MPFR_RNDN);
        mpfr_div(r21534, r21527, r21533, MPFR_RNDN);
        mpfr_sub(r21535, r21534, r21528, MPFR_RNDN);
        ;
        mpfr_set_si(r21537, mpfr_cmp(r21535, r21536) <= 0, MPFR_RNDN);
        mpfr_sqrt(r21538, r21533, MPFR_RNDN);
        mpfr_div(r21539, r21527, r21538, MPFR_RNDN);
        mpfr_div(r21540, r21539, r21538, MPFR_RNDN);
        mpfr_sub(r21541, r21540, r21528, MPFR_RNDN);
        ;
        mpfr_set_si(r21543, mpfr_cmp(r21535, r21542) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r21546, r21530, r21545, MPFR_RNDN);
        mpfr_mul(r21547, r21544, r21546, MPFR_RNDN);
        mpfr_add(r21548, r21547, r21530, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r21551, r21530, r21550, MPFR_RNDN);
        mpfr_mul(r21552, r21549, r21551, MPFR_RNDN);
        mpfr_sub(r21553, r21548, r21552, MPFR_RNDN);
        if (mpfr_get_si(r21543, MPFR_RNDN)) { mpfr_set(r21554, r21553, MPFR_RNDN); } else { mpfr_set(r21554, r21541, MPFR_RNDN); };
        if (mpfr_get_si(r21537, MPFR_RNDN)) { mpfr_set(r21555, r21541, MPFR_RNDN); } else { mpfr_set(r21555, r21554, MPFR_RNDN); };
        return mpfr_get_d(r21555, MPFR_RNDN);
}

static mpfr_t r21556, r21557, r21558, r21559, r21560, r21561, r21562, r21563, r21564, r21565, r21566, r21567, r21568, r21569, r21570, r21571, r21572, r21573, r21574, r21575, r21576, r21577, r21578, r21579, r21580, r21581, r21582, r21583, r21584;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r21556, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r21557, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r21558, "-2", 10, MPFR_RNDN);
        mpfr_init(r21559);
        mpfr_init(r21560);
        mpfr_init(r21561);
        mpfr_init(r21562);
        mpfr_init(r21563);
        mpfr_init(r21564);
        mpfr_init_set_str(r21565, "-2.8464216759924333e-06", 10, MPFR_RNDN);
        mpfr_init(r21566);
        mpfr_init(r21567);
        mpfr_init(r21568);
        mpfr_init(r21569);
        mpfr_init(r21570);
        mpfr_init_set_str(r21571, "0.06250000001760946", 10, MPFR_RNDN);
        mpfr_init(r21572);
        mpfr_init_set_str(r21573, "2/15", 10, MPFR_RNDN);
        mpfr_init_set_str(r21574, "5", 10, MPFR_RNDN);
        mpfr_init(r21575);
        mpfr_init(r21576);
        mpfr_init(r21577);
        mpfr_init_set_str(r21578, "1/3", 10, MPFR_RNDN);
        mpfr_init_set_str(r21579, "3", 10, MPFR_RNDN);
        mpfr_init(r21580);
        mpfr_init(r21581);
        mpfr_init(r21582);
        mpfr_init(r21583);
        mpfr_init(r21584);
}

double f_dm(double x, double __attribute__((unused)) y) {
        ;
        ;
        ;
        mpfr_set_d(r21559, x, MPFR_RNDN);
        mpfr_mul(r21560, r21558, r21559, MPFR_RNDN);
        mpfr_exp(r21561, r21560, MPFR_RNDN);
        mpfr_add(r21562, r21557, r21561, MPFR_RNDN);
        mpfr_div(r21563, r21556, r21562, MPFR_RNDN);
        mpfr_sub(r21564, r21563, r21557, MPFR_RNDN);
        ;
        mpfr_set_si(r21566, mpfr_cmp(r21564, r21565) <= 0, MPFR_RNDN);
        mpfr_sqrt(r21567, r21562, MPFR_RNDN);
        mpfr_div(r21568, r21556, r21567, MPFR_RNDN);
        mpfr_div(r21569, r21568, r21567, MPFR_RNDN);
        mpfr_sub(r21570, r21569, r21557, MPFR_RNDN);
        ;
        mpfr_set_si(r21572, mpfr_cmp(r21564, r21571) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r21575, r21559, r21574, MPFR_RNDN);
        mpfr_mul(r21576, r21573, r21575, MPFR_RNDN);
        mpfr_add(r21577, r21576, r21559, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r21580, r21559, r21579, MPFR_RNDN);
        mpfr_mul(r21581, r21578, r21580, MPFR_RNDN);
        mpfr_sub(r21582, r21577, r21581, MPFR_RNDN);
        if (mpfr_get_si(r21572, MPFR_RNDN)) { mpfr_set(r21583, r21582, MPFR_RNDN); } else { mpfr_set(r21583, r21570, MPFR_RNDN); };
        if (mpfr_get_si(r21566, MPFR_RNDN)) { mpfr_set(r21584, r21570, MPFR_RNDN); } else { mpfr_set(r21584, r21583, MPFR_RNDN); };
        return mpfr_get_d(r21584, MPFR_RNDN);
}

