#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 r10922 = 1.0f;
        float r10923 = x;
        float r10924 = exp(r10923);
        float r10925 = r10922 + r10924;
        float r10926 = log(r10925);
        float r10927 = y;
        float r10928 = r10923 * r10927;
        float r10929 = r10926 - r10928;
        return r10929;
}

double f_id(double x, double y) {
        double r10930 = 1.0;
        double r10931 = x;
        double r10932 = exp(r10931);
        double r10933 = r10930 + r10932;
        double r10934 = log(r10933);
        double r10935 = y;
        double r10936 = r10931 * r10935;
        double r10937 = r10934 - r10936;
        return r10937;
}


double f_of(float x, float y) {
        float r10938 = 1.0f;
        float r10939 = x;
        float r10940 = exp(r10939);
        float r10941 = r10938 + r10940;
        float r10942 = log(r10941);
        float r10943 = y;
        float r10944 = r10943 * r10939;
        float r10945 = r10942 - r10944;
        return r10945;
}

double f_od(double x, double y) {
        double r10946 = 1.0;
        double r10947 = x;
        double r10948 = exp(r10947);
        double r10949 = r10946 + r10948;
        double r10950 = log(r10949);
        double r10951 = y;
        double r10952 = r10951 * r10947;
        double r10953 = r10950 - r10952;
        return r10953;
}

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 r10954, r10955, r10956, r10957, r10958, r10959, r10960, r10961;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(848);
        mpfr_init_set_str(r10954, "1", 10, MPFR_RNDN);
        mpfr_init(r10955);
        mpfr_init(r10956);
        mpfr_init(r10957);
        mpfr_init(r10958);
        mpfr_init(r10959);
        mpfr_init(r10960);
        mpfr_init(r10961);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r10955, x, MPFR_RNDN);
        mpfr_exp(r10956, r10955, MPFR_RNDN);
        mpfr_add(r10957, r10954, r10956, MPFR_RNDN);
        mpfr_log(r10958, r10957, MPFR_RNDN);
        mpfr_set_d(r10959, y, MPFR_RNDN);
        mpfr_mul(r10960, r10955, r10959, MPFR_RNDN);
        mpfr_sub(r10961, r10958, r10960, MPFR_RNDN);
        return mpfr_get_d(r10961, MPFR_RNDN);
}

static mpfr_t r10962, r10963, r10964, r10965, r10966, r10967, r10968, r10969;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(848);
        mpfr_init_set_str(r10962, "1", 10, MPFR_RNDN);
        mpfr_init(r10963);
        mpfr_init(r10964);
        mpfr_init(r10965);
        mpfr_init(r10966);
        mpfr_init(r10967);
        mpfr_init(r10968);
        mpfr_init(r10969);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r10963, x, MPFR_RNDN);
        mpfr_exp(r10964, r10963, MPFR_RNDN);
        mpfr_add(r10965, r10962, r10964, MPFR_RNDN);
        mpfr_log(r10966, r10965, MPFR_RNDN);
        mpfr_set_d(r10967, y, MPFR_RNDN);
        mpfr_mul(r10968, r10967, r10963, MPFR_RNDN);
        mpfr_sub(r10969, r10966, r10968, MPFR_RNDN);
        return mpfr_get_d(r10969, MPFR_RNDN);
}

static mpfr_t r10970, r10971, r10972, r10973, r10974, r10975, r10976, r10977;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(848);
        mpfr_init_set_str(r10970, "1", 10, MPFR_RNDN);
        mpfr_init(r10971);
        mpfr_init(r10972);
        mpfr_init(r10973);
        mpfr_init(r10974);
        mpfr_init(r10975);
        mpfr_init(r10976);
        mpfr_init(r10977);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r10971, x, MPFR_RNDN);
        mpfr_exp(r10972, r10971, MPFR_RNDN);
        mpfr_add(r10973, r10970, r10972, MPFR_RNDN);
        mpfr_log(r10974, r10973, MPFR_RNDN);
        mpfr_set_d(r10975, y, MPFR_RNDN);
        mpfr_mul(r10976, r10975, r10971, MPFR_RNDN);
        mpfr_sub(r10977, r10974, r10976, MPFR_RNDN);
        return mpfr_get_d(r10977, MPFR_RNDN);
}

