#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 r46071 = 1;
        float r46072 = x;
        float r46073 = exp(r46072);
        float r46074 = r46071 + r46073;
        float r46075 = log(r46074);
        float r46076 = y;
        float r46077 = r46072 * r46076;
        float r46078 = r46075 - r46077;
        return r46078;
}

double f_id(double x, double y) {
        double r46079 = 1;
        double r46080 = x;
        double r46081 = exp(r46080);
        double r46082 = r46079 + r46081;
        double r46083 = log(r46082);
        double r46084 = y;
        double r46085 = r46080 * r46084;
        double r46086 = r46083 - r46085;
        return r46086;
}


double f_of(float x, float y) {
        float r46087 = 1;
        float r46088 = x;
        float r46089 = exp(r46088);
        float r46090 = 3;
        float r46091 = pow(r46089, r46090);
        float r46092 = r46087 + r46091;
        float r46093 = r46088 + r46088;
        float r46094 = exp(r46093);
        float r46095 = r46087 - r46089;
        float r46096 = r46094 + r46095;
        float r46097 = r46092 / r46096;
        float r46098 = log(r46097);
        float r46099 = y;
        float r46100 = r46088 * r46099;
        float r46101 = r46098 - r46100;
        return r46101;
}

double f_od(double x, double y) {
        double r46102 = 1;
        double r46103 = x;
        double r46104 = exp(r46103);
        double r46105 = 3;
        double r46106 = pow(r46104, r46105);
        double r46107 = r46102 + r46106;
        double r46108 = r46103 + r46103;
        double r46109 = exp(r46108);
        double r46110 = r46102 - r46104;
        double r46111 = r46109 + r46110;
        double r46112 = r46107 / r46111;
        double r46113 = log(r46112);
        double r46114 = y;
        double r46115 = r46103 * r46114;
        double r46116 = r46113 - r46115;
        return r46116;
}

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 r46117, r46118, r46119, r46120, r46121, r46122, r46123, r46124;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r46117, "1", 10, MPFR_RNDN);
        mpfr_init(r46118);
        mpfr_init(r46119);
        mpfr_init(r46120);
        mpfr_init(r46121);
        mpfr_init(r46122);
        mpfr_init(r46123);
        mpfr_init(r46124);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r46118, x, MPFR_RNDN);
        mpfr_exp(r46119, r46118, MPFR_RNDN);
        mpfr_add(r46120, r46117, r46119, MPFR_RNDN);
        mpfr_log(r46121, r46120, MPFR_RNDN);
        mpfr_set_d(r46122, y, MPFR_RNDN);
        mpfr_mul(r46123, r46118, r46122, MPFR_RNDN);
        mpfr_sub(r46124, r46121, r46123, MPFR_RNDN);
        return mpfr_get_d(r46124, MPFR_RNDN);
}

static mpfr_t r46125, r46126, r46127, r46128, r46129, r46130, r46131, r46132, r46133, r46134, r46135, r46136, r46137, r46138, r46139;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r46125, "1", 10, MPFR_RNDN);
        mpfr_init(r46126);
        mpfr_init(r46127);
        mpfr_init_set_str(r46128, "3", 10, MPFR_RNDN);
        mpfr_init(r46129);
        mpfr_init(r46130);
        mpfr_init(r46131);
        mpfr_init(r46132);
        mpfr_init(r46133);
        mpfr_init(r46134);
        mpfr_init(r46135);
        mpfr_init(r46136);
        mpfr_init(r46137);
        mpfr_init(r46138);
        mpfr_init(r46139);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r46126, x, MPFR_RNDN);
        mpfr_exp(r46127, r46126, MPFR_RNDN);
        ;
        mpfr_pow(r46129, r46127, r46128, MPFR_RNDN);
        mpfr_add(r46130, r46125, r46129, MPFR_RNDN);
        mpfr_add(r46131, r46126, r46126, MPFR_RNDN);
        mpfr_exp(r46132, r46131, MPFR_RNDN);
        mpfr_sub(r46133, r46125, r46127, MPFR_RNDN);
        mpfr_add(r46134, r46132, r46133, MPFR_RNDN);
        mpfr_div(r46135, r46130, r46134, MPFR_RNDN);
        mpfr_log(r46136, r46135, MPFR_RNDN);
        mpfr_set_d(r46137, y, MPFR_RNDN);
        mpfr_mul(r46138, r46126, r46137, MPFR_RNDN);
        mpfr_sub(r46139, r46136, r46138, MPFR_RNDN);
        return mpfr_get_d(r46139, MPFR_RNDN);
}

static mpfr_t r46140, r46141, r46142, r46143, r46144, r46145, r46146, r46147, r46148, r46149, r46150, r46151, r46152, r46153, r46154;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r46140, "1", 10, MPFR_RNDN);
        mpfr_init(r46141);
        mpfr_init(r46142);
        mpfr_init_set_str(r46143, "3", 10, MPFR_RNDN);
        mpfr_init(r46144);
        mpfr_init(r46145);
        mpfr_init(r46146);
        mpfr_init(r46147);
        mpfr_init(r46148);
        mpfr_init(r46149);
        mpfr_init(r46150);
        mpfr_init(r46151);
        mpfr_init(r46152);
        mpfr_init(r46153);
        mpfr_init(r46154);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r46141, x, MPFR_RNDN);
        mpfr_exp(r46142, r46141, MPFR_RNDN);
        ;
        mpfr_pow(r46144, r46142, r46143, MPFR_RNDN);
        mpfr_add(r46145, r46140, r46144, MPFR_RNDN);
        mpfr_add(r46146, r46141, r46141, MPFR_RNDN);
        mpfr_exp(r46147, r46146, MPFR_RNDN);
        mpfr_sub(r46148, r46140, r46142, MPFR_RNDN);
        mpfr_add(r46149, r46147, r46148, MPFR_RNDN);
        mpfr_div(r46150, r46145, r46149, MPFR_RNDN);
        mpfr_log(r46151, r46150, MPFR_RNDN);
        mpfr_set_d(r46152, y, MPFR_RNDN);
        mpfr_mul(r46153, r46141, r46152, MPFR_RNDN);
        mpfr_sub(r46154, r46151, r46153, MPFR_RNDN);
        return mpfr_get_d(r46154, MPFR_RNDN);
}

