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

char *name = "Logistic regression 2";

double f_if(float x, float y) {
        float r46573 = 1;
        float r46574 = x;
        float r46575 = exp(r46574);
        float r46576 = r46573 + r46575;
        float r46577 = log(r46576);
        float r46578 = y;
        float r46579 = r46574 * r46578;
        float r46580 = r46577 - r46579;
        return r46580;
}

double f_id(double x, double y) {
        double r46581 = 1;
        double r46582 = x;
        double r46583 = exp(r46582);
        double r46584 = r46581 + r46583;
        double r46585 = log(r46584);
        double r46586 = y;
        double r46587 = r46582 * r46586;
        double r46588 = r46585 - r46587;
        return r46588;
}


double f_of(float x, float y) {
        float r46589 = 1;
        float r46590 = x;
        float r46591 = exp(r46590);
        float r46592 = 3;
        float r46593 = pow(r46591, r46592);
        float r46594 = r46589 + r46593;
        float r46595 = r46590 + r46590;
        float r46596 = exp(r46595);
        float r46597 = r46589 - r46591;
        float r46598 = r46596 + r46597;
        float r46599 = r46594 / r46598;
        float r46600 = log(r46599);
        float r46601 = y;
        float r46602 = r46590 * r46601;
        float r46603 = r46600 - r46602;
        return r46603;
}

double f_od(double x, double y) {
        double r46604 = 1;
        double r46605 = x;
        double r46606 = exp(r46605);
        double r46607 = 3;
        double r46608 = pow(r46606, r46607);
        double r46609 = r46604 + r46608;
        double r46610 = r46605 + r46605;
        double r46611 = exp(r46610);
        double r46612 = r46604 - r46606;
        double r46613 = r46611 + r46612;
        double r46614 = r46609 / r46613;
        double r46615 = log(r46614);
        double r46616 = y;
        double r46617 = r46605 * r46616;
        double r46618 = r46615 - r46617;
        return r46618;
}

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 r46619, r46620, r46621, r46622, r46623, r46624, r46625, r46626;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r46619, "1", 10, MPFR_RNDN);
        mpfr_init(r46620);
        mpfr_init(r46621);
        mpfr_init(r46622);
        mpfr_init(r46623);
        mpfr_init(r46624);
        mpfr_init(r46625);
        mpfr_init(r46626);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r46620, x, MPFR_RNDN);
        mpfr_exp(r46621, r46620, MPFR_RNDN);
        mpfr_add(r46622, r46619, r46621, MPFR_RNDN);
        mpfr_log(r46623, r46622, MPFR_RNDN);
        mpfr_set_d(r46624, y, MPFR_RNDN);
        mpfr_mul(r46625, r46620, r46624, MPFR_RNDN);
        mpfr_sub(r46626, r46623, r46625, MPFR_RNDN);
        return mpfr_get_d(r46626, MPFR_RNDN);
}

static mpfr_t r46627, r46628, r46629, r46630, r46631, r46632, r46633, r46634, r46635, r46636, r46637, r46638, r46639, r46640, r46641;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r46627, "1", 10, MPFR_RNDN);
        mpfr_init(r46628);
        mpfr_init(r46629);
        mpfr_init_set_str(r46630, "3", 10, MPFR_RNDN);
        mpfr_init(r46631);
        mpfr_init(r46632);
        mpfr_init(r46633);
        mpfr_init(r46634);
        mpfr_init(r46635);
        mpfr_init(r46636);
        mpfr_init(r46637);
        mpfr_init(r46638);
        mpfr_init(r46639);
        mpfr_init(r46640);
        mpfr_init(r46641);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r46628, x, MPFR_RNDN);
        mpfr_exp(r46629, r46628, MPFR_RNDN);
        ;
        mpfr_pow(r46631, r46629, r46630, MPFR_RNDN);
        mpfr_add(r46632, r46627, r46631, MPFR_RNDN);
        mpfr_add(r46633, r46628, r46628, MPFR_RNDN);
        mpfr_exp(r46634, r46633, MPFR_RNDN);
        mpfr_sub(r46635, r46627, r46629, MPFR_RNDN);
        mpfr_add(r46636, r46634, r46635, MPFR_RNDN);
        mpfr_div(r46637, r46632, r46636, MPFR_RNDN);
        mpfr_log(r46638, r46637, MPFR_RNDN);
        mpfr_set_d(r46639, y, MPFR_RNDN);
        mpfr_mul(r46640, r46628, r46639, MPFR_RNDN);
        mpfr_sub(r46641, r46638, r46640, MPFR_RNDN);
        return mpfr_get_d(r46641, MPFR_RNDN);
}

static mpfr_t r46642, r46643, r46644, r46645, r46646, r46647, r46648, r46649, r46650, r46651, r46652, r46653, r46654, r46655, r46656;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r46642, "1", 10, MPFR_RNDN);
        mpfr_init(r46643);
        mpfr_init(r46644);
        mpfr_init_set_str(r46645, "3", 10, MPFR_RNDN);
        mpfr_init(r46646);
        mpfr_init(r46647);
        mpfr_init(r46648);
        mpfr_init(r46649);
        mpfr_init(r46650);
        mpfr_init(r46651);
        mpfr_init(r46652);
        mpfr_init(r46653);
        mpfr_init(r46654);
        mpfr_init(r46655);
        mpfr_init(r46656);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r46643, x, MPFR_RNDN);
        mpfr_exp(r46644, r46643, MPFR_RNDN);
        ;
        mpfr_pow(r46646, r46644, r46645, MPFR_RNDN);
        mpfr_add(r46647, r46642, r46646, MPFR_RNDN);
        mpfr_add(r46648, r46643, r46643, MPFR_RNDN);
        mpfr_exp(r46649, r46648, MPFR_RNDN);
        mpfr_sub(r46650, r46642, r46644, MPFR_RNDN);
        mpfr_add(r46651, r46649, r46650, MPFR_RNDN);
        mpfr_div(r46652, r46647, r46651, MPFR_RNDN);
        mpfr_log(r46653, r46652, MPFR_RNDN);
        mpfr_set_d(r46654, y, MPFR_RNDN);
        mpfr_mul(r46655, r46643, r46654, MPFR_RNDN);
        mpfr_sub(r46656, r46653, r46655, MPFR_RNDN);
        return mpfr_get_d(r46656, MPFR_RNDN);
}

