#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 r27396 = 1;
        float r27397 = x;
        float r27398 = exp(r27397);
        float r27399 = r27396 + r27398;
        float r27400 = log(r27399);
        float r27401 = y;
        float r27402 = r27397 * r27401;
        float r27403 = r27400 - r27402;
        return r27403;
}

double f_id(double x, double y) {
        double r27404 = 1;
        double r27405 = x;
        double r27406 = exp(r27405);
        double r27407 = r27404 + r27406;
        double r27408 = log(r27407);
        double r27409 = y;
        double r27410 = r27405 * r27409;
        double r27411 = r27408 - r27410;
        return r27411;
}


double f_of(float x, float y) {
        float r27412 = 1;
        float r27413 = x;
        float r27414 = exp(r27413);
        float r27415 = r27412 + r27414;
        float r27416 = log(r27415);
        float r27417 = y;
        float r27418 = r27413 * r27417;
        float r27419 = r27416 - r27418;
        return r27419;
}

double f_od(double x, double y) {
        double r27420 = 1;
        double r27421 = x;
        double r27422 = exp(r27421);
        double r27423 = r27420 + r27422;
        double r27424 = log(r27423);
        double r27425 = y;
        double r27426 = r27421 * r27425;
        double r27427 = r27424 - r27426;
        return r27427;
}

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 r27428, r27429, r27430, r27431, r27432, r27433, r27434, r27435;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r27428, "1", 10, MPFR_RNDN);
        mpfr_init(r27429);
        mpfr_init(r27430);
        mpfr_init(r27431);
        mpfr_init(r27432);
        mpfr_init(r27433);
        mpfr_init(r27434);
        mpfr_init(r27435);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r27429, x, MPFR_RNDN);
        mpfr_exp(r27430, r27429, MPFR_RNDN);
        mpfr_add(r27431, r27428, r27430, MPFR_RNDN);
        mpfr_log(r27432, r27431, MPFR_RNDN);
        mpfr_set_d(r27433, y, MPFR_RNDN);
        mpfr_mul(r27434, r27429, r27433, MPFR_RNDN);
        mpfr_sub(r27435, r27432, r27434, MPFR_RNDN);
        return mpfr_get_d(r27435, MPFR_RNDN);
}

static mpfr_t r27436, r27437, r27438, r27439, r27440, r27441, r27442, r27443;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r27436, "1", 10, MPFR_RNDN);
        mpfr_init(r27437);
        mpfr_init(r27438);
        mpfr_init(r27439);
        mpfr_init(r27440);
        mpfr_init(r27441);
        mpfr_init(r27442);
        mpfr_init(r27443);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r27437, x, MPFR_RNDN);
        mpfr_exp(r27438, r27437, MPFR_RNDN);
        mpfr_add(r27439, r27436, r27438, MPFR_RNDN);
        mpfr_log(r27440, r27439, MPFR_RNDN);
        mpfr_set_d(r27441, y, MPFR_RNDN);
        mpfr_mul(r27442, r27437, r27441, MPFR_RNDN);
        mpfr_sub(r27443, r27440, r27442, MPFR_RNDN);
        return mpfr_get_d(r27443, MPFR_RNDN);
}

static mpfr_t r27444, r27445, r27446, r27447, r27448, r27449, r27450, r27451;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r27444, "1", 10, MPFR_RNDN);
        mpfr_init(r27445);
        mpfr_init(r27446);
        mpfr_init(r27447);
        mpfr_init(r27448);
        mpfr_init(r27449);
        mpfr_init(r27450);
        mpfr_init(r27451);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r27445, x, MPFR_RNDN);
        mpfr_exp(r27446, r27445, MPFR_RNDN);
        mpfr_add(r27447, r27444, r27446, MPFR_RNDN);
        mpfr_log(r27448, r27447, MPFR_RNDN);
        mpfr_set_d(r27449, y, MPFR_RNDN);
        mpfr_mul(r27450, r27445, r27449, MPFR_RNDN);
        mpfr_sub(r27451, r27448, r27450, MPFR_RNDN);
        return mpfr_get_d(r27451, MPFR_RNDN);
}

