#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 r11234 = 1;
        float r11235 = x;
        float r11236 = exp(r11235);
        float r11237 = r11234 + r11236;
        float r11238 = log(r11237);
        float r11239 = y;
        float r11240 = r11235 * r11239;
        float r11241 = r11238 - r11240;
        return r11241;
}

double f_id(double x, double y) {
        double r11242 = 1;
        double r11243 = x;
        double r11244 = exp(r11243);
        double r11245 = r11242 + r11244;
        double r11246 = log(r11245);
        double r11247 = y;
        double r11248 = r11243 * r11247;
        double r11249 = r11246 - r11248;
        return r11249;
}


double f_of(float x, float y) {
        float r11250 = 1;
        float r11251 = x;
        float r11252 = exp(r11251);
        float r11253 = r11250 + r11252;
        float r11254 = log(r11253);
        float r11255 = y;
        float r11256 = r11251 * r11255;
        float r11257 = r11254 - r11256;
        return r11257;
}

double f_od(double x, double y) {
        double r11258 = 1;
        double r11259 = x;
        double r11260 = exp(r11259);
        double r11261 = r11258 + r11260;
        double r11262 = log(r11261);
        double r11263 = y;
        double r11264 = r11259 * r11263;
        double r11265 = r11262 - r11264;
        return r11265;
}

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 r11266, r11267, r11268, r11269, r11270, r11271, r11272, r11273;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11266, "1", 10, MPFR_RNDN);
        mpfr_init(r11267);
        mpfr_init(r11268);
        mpfr_init(r11269);
        mpfr_init(r11270);
        mpfr_init(r11271);
        mpfr_init(r11272);
        mpfr_init(r11273);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r11267, x, MPFR_RNDN);
        mpfr_exp(r11268, r11267, MPFR_RNDN);
        mpfr_add(r11269, r11266, r11268, MPFR_RNDN);
        mpfr_log(r11270, r11269, MPFR_RNDN);
        mpfr_set_d(r11271, y, MPFR_RNDN);
        mpfr_mul(r11272, r11267, r11271, MPFR_RNDN);
        mpfr_sub(r11273, r11270, r11272, MPFR_RNDN);
        return mpfr_get_d(r11273, MPFR_RNDN);
}

static mpfr_t r11274, r11275, r11276, r11277, r11278, r11279, r11280, r11281;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11274, "1", 10, MPFR_RNDN);
        mpfr_init(r11275);
        mpfr_init(r11276);
        mpfr_init(r11277);
        mpfr_init(r11278);
        mpfr_init(r11279);
        mpfr_init(r11280);
        mpfr_init(r11281);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r11275, x, MPFR_RNDN);
        mpfr_exp(r11276, r11275, MPFR_RNDN);
        mpfr_add(r11277, r11274, r11276, MPFR_RNDN);
        mpfr_log(r11278, r11277, MPFR_RNDN);
        mpfr_set_d(r11279, y, MPFR_RNDN);
        mpfr_mul(r11280, r11275, r11279, MPFR_RNDN);
        mpfr_sub(r11281, r11278, r11280, MPFR_RNDN);
        return mpfr_get_d(r11281, MPFR_RNDN);
}

static mpfr_t r11282, r11283, r11284, r11285, r11286, r11287, r11288, r11289;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r11282, "1", 10, MPFR_RNDN);
        mpfr_init(r11283);
        mpfr_init(r11284);
        mpfr_init(r11285);
        mpfr_init(r11286);
        mpfr_init(r11287);
        mpfr_init(r11288);
        mpfr_init(r11289);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r11283, x, MPFR_RNDN);
        mpfr_exp(r11284, r11283, MPFR_RNDN);
        mpfr_add(r11285, r11282, r11284, MPFR_RNDN);
        mpfr_log(r11286, r11285, MPFR_RNDN);
        mpfr_set_d(r11287, y, MPFR_RNDN);
        mpfr_mul(r11288, r11283, r11287, MPFR_RNDN);
        mpfr_sub(r11289, r11286, r11288, MPFR_RNDN);
        return mpfr_get_d(r11289, MPFR_RNDN);
}

