#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 r11033 = 1.0f;
        float r11034 = x;
        float r11035 = exp(r11034);
        float r11036 = r11033 + r11035;
        float r11037 = log(r11036);
        float r11038 = y;
        float r11039 = r11034 * r11038;
        float r11040 = r11037 - r11039;
        return r11040;
}

double f_id(double x, double y) {
        double r11041 = 1.0;
        double r11042 = x;
        double r11043 = exp(r11042);
        double r11044 = r11041 + r11043;
        double r11045 = log(r11044);
        double r11046 = y;
        double r11047 = r11042 * r11046;
        double r11048 = r11045 - r11047;
        return r11048;
}


double f_of(float x, float y) {
        float r11049 = 1.0f;
        float r11050 = x;
        float r11051 = exp(r11050);
        float r11052 = r11049 + r11051;
        float r11053 = log(r11052);
        float r11054 = y;
        float r11055 = r11054 * r11050;
        float r11056 = r11053 - r11055;
        return r11056;
}

double f_od(double x, double y) {
        double r11057 = 1.0;
        double r11058 = x;
        double r11059 = exp(r11058);
        double r11060 = r11057 + r11059;
        double r11061 = log(r11060);
        double r11062 = y;
        double r11063 = r11062 * r11058;
        double r11064 = r11061 - r11063;
        return r11064;
}

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 r11065, r11066, r11067, r11068, r11069, r11070, r11071, r11072;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(848);
        mpfr_init_set_str(r11065, "1", 10, MPFR_RNDN);
        mpfr_init(r11066);
        mpfr_init(r11067);
        mpfr_init(r11068);
        mpfr_init(r11069);
        mpfr_init(r11070);
        mpfr_init(r11071);
        mpfr_init(r11072);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r11066, x, MPFR_RNDN);
        mpfr_exp(r11067, r11066, MPFR_RNDN);
        mpfr_add(r11068, r11065, r11067, MPFR_RNDN);
        mpfr_log(r11069, r11068, MPFR_RNDN);
        mpfr_set_d(r11070, y, MPFR_RNDN);
        mpfr_mul(r11071, r11066, r11070, MPFR_RNDN);
        mpfr_sub(r11072, r11069, r11071, MPFR_RNDN);
        return mpfr_get_d(r11072, MPFR_RNDN);
}

static mpfr_t r11073, r11074, r11075, r11076, r11077, r11078, r11079, r11080;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(848);
        mpfr_init_set_str(r11073, "1", 10, MPFR_RNDN);
        mpfr_init(r11074);
        mpfr_init(r11075);
        mpfr_init(r11076);
        mpfr_init(r11077);
        mpfr_init(r11078);
        mpfr_init(r11079);
        mpfr_init(r11080);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r11074, x, MPFR_RNDN);
        mpfr_exp(r11075, r11074, MPFR_RNDN);
        mpfr_add(r11076, r11073, r11075, MPFR_RNDN);
        mpfr_log(r11077, r11076, MPFR_RNDN);
        mpfr_set_d(r11078, y, MPFR_RNDN);
        mpfr_mul(r11079, r11078, r11074, MPFR_RNDN);
        mpfr_sub(r11080, r11077, r11079, MPFR_RNDN);
        return mpfr_get_d(r11080, MPFR_RNDN);
}

static mpfr_t r11081, r11082, r11083, r11084, r11085, r11086, r11087, r11088;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(848);
        mpfr_init_set_str(r11081, "1", 10, MPFR_RNDN);
        mpfr_init(r11082);
        mpfr_init(r11083);
        mpfr_init(r11084);
        mpfr_init(r11085);
        mpfr_init(r11086);
        mpfr_init(r11087);
        mpfr_init(r11088);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r11082, x, MPFR_RNDN);
        mpfr_exp(r11083, r11082, MPFR_RNDN);
        mpfr_add(r11084, r11081, r11083, MPFR_RNDN);
        mpfr_log(r11085, r11084, MPFR_RNDN);
        mpfr_set_d(r11086, y, MPFR_RNDN);
        mpfr_mul(r11087, r11086, r11082, MPFR_RNDN);
        mpfr_sub(r11088, r11085, r11087, MPFR_RNDN);
        return mpfr_get_d(r11088, MPFR_RNDN);
}

