#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 r46753 = 1;
        float r46754 = x;
        float r46755 = exp(r46754);
        float r46756 = r46753 + r46755;
        float r46757 = log(r46756);
        float r46758 = y;
        float r46759 = r46754 * r46758;
        float r46760 = r46757 - r46759;
        return r46760;
}

double f_id(double x, double y) {
        double r46761 = 1;
        double r46762 = x;
        double r46763 = exp(r46762);
        double r46764 = r46761 + r46763;
        double r46765 = log(r46764);
        double r46766 = y;
        double r46767 = r46762 * r46766;
        double r46768 = r46765 - r46767;
        return r46768;
}


double f_of(float x, float y) {
        float r46769 = 1;
        float r46770 = x;
        float r46771 = exp(r46770);
        float r46772 = r46769 + r46771;
        float r46773 = log(r46772);
        float r46774 = y;
        float r46775 = r46770 * r46774;
        float r46776 = r46773 - r46775;
        float r46777 = 0.6921301683303508;
        bool r46778 = r46776 <= r46777;
        float r46779 = cbrt(r46773);
        float r46780 = r46779 * r46779;
        float r46781 = 3;
        float r46782 = pow(r46771, r46781);
        float r46783 = r46769 + r46782;
        float r46784 = log(r46783);
        float r46785 = r46769 - r46771;
        float r46786 = r46770 + r46770;
        float r46787 = exp(r46786);
        float r46788 = r46785 + r46787;
        float r46789 = log(r46788);
        float r46790 = r46784 - r46789;
        float r46791 = cbrt(r46790);
        float r46792 = r46780 * r46791;
        float r46793 = r46792 - r46775;
        float r46794 = 141.36163919317698;
        bool r46795 = r46776 <= r46794;
        float r46796 = exp(r46775);
        float r46797 = r46772 / r46796;
        float r46798 = log(r46797);
        float r46799 = r46795 ? r46798 : r46793;
        float r46800 = r46778 ? r46793 : r46799;
        return r46800;
}

double f_od(double x, double y) {
        double r46801 = 1;
        double r46802 = x;
        double r46803 = exp(r46802);
        double r46804 = r46801 + r46803;
        double r46805 = log(r46804);
        double r46806 = y;
        double r46807 = r46802 * r46806;
        double r46808 = r46805 - r46807;
        double r46809 = 0.6921301683303508;
        bool r46810 = r46808 <= r46809;
        double r46811 = cbrt(r46805);
        double r46812 = r46811 * r46811;
        double r46813 = 3;
        double r46814 = pow(r46803, r46813);
        double r46815 = r46801 + r46814;
        double r46816 = log(r46815);
        double r46817 = r46801 - r46803;
        double r46818 = r46802 + r46802;
        double r46819 = exp(r46818);
        double r46820 = r46817 + r46819;
        double r46821 = log(r46820);
        double r46822 = r46816 - r46821;
        double r46823 = cbrt(r46822);
        double r46824 = r46812 * r46823;
        double r46825 = r46824 - r46807;
        double r46826 = 141.36163919317698;
        bool r46827 = r46808 <= r46826;
        double r46828 = exp(r46807);
        double r46829 = r46804 / r46828;
        double r46830 = log(r46829);
        double r46831 = r46827 ? r46830 : r46825;
        double r46832 = r46810 ? r46825 : r46831;
        return r46832;
}

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 r46833, r46834, r46835, r46836, r46837, r46838, r46839, r46840;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r46833, "1", 10, MPFR_RNDN);
        mpfr_init(r46834);
        mpfr_init(r46835);
        mpfr_init(r46836);
        mpfr_init(r46837);
        mpfr_init(r46838);
        mpfr_init(r46839);
        mpfr_init(r46840);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r46834, x, MPFR_RNDN);
        mpfr_exp(r46835, r46834, MPFR_RNDN);
        mpfr_add(r46836, r46833, r46835, MPFR_RNDN);
        mpfr_log(r46837, r46836, MPFR_RNDN);
        mpfr_set_d(r46838, y, MPFR_RNDN);
        mpfr_mul(r46839, r46834, r46838, MPFR_RNDN);
        mpfr_sub(r46840, r46837, r46839, MPFR_RNDN);
        return mpfr_get_d(r46840, MPFR_RNDN);
}

static mpfr_t r46841, r46842, r46843, r46844, r46845, r46846, r46847, r46848, r46849, r46850, r46851, r46852, r46853, r46854, r46855, r46856, r46857, r46858, r46859, r46860, r46861, r46862, r46863, r46864, r46865, r46866, r46867, r46868, r46869, r46870, r46871, r46872;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r46841, "1", 10, MPFR_RNDN);
        mpfr_init(r46842);
        mpfr_init(r46843);
        mpfr_init(r46844);
        mpfr_init(r46845);
        mpfr_init(r46846);
        mpfr_init(r46847);
        mpfr_init(r46848);
        mpfr_init_set_str(r46849, "0.6921301683303508", 10, MPFR_RNDN);
        mpfr_init(r46850);
        mpfr_init(r46851);
        mpfr_init(r46852);
        mpfr_init_set_str(r46853, "3", 10, MPFR_RNDN);
        mpfr_init(r46854);
        mpfr_init(r46855);
        mpfr_init(r46856);
        mpfr_init(r46857);
        mpfr_init(r46858);
        mpfr_init(r46859);
        mpfr_init(r46860);
        mpfr_init(r46861);
        mpfr_init(r46862);
        mpfr_init(r46863);
        mpfr_init(r46864);
        mpfr_init(r46865);
        mpfr_init_set_str(r46866, "141.36163919317698", 10, MPFR_RNDN);
        mpfr_init(r46867);
        mpfr_init(r46868);
        mpfr_init(r46869);
        mpfr_init(r46870);
        mpfr_init(r46871);
        mpfr_init(r46872);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r46842, x, MPFR_RNDN);
        mpfr_exp(r46843, r46842, MPFR_RNDN);
        mpfr_add(r46844, r46841, r46843, MPFR_RNDN);
        mpfr_log(r46845, r46844, MPFR_RNDN);
        mpfr_set_d(r46846, y, MPFR_RNDN);
        mpfr_mul(r46847, r46842, r46846, MPFR_RNDN);
        mpfr_sub(r46848, r46845, r46847, MPFR_RNDN);
        ;
        mpfr_set_si(r46850, mpfr_cmp(r46848, r46849) <= 0, MPFR_RNDN);
        mpfr_cbrt(r46851, r46845, MPFR_RNDN);
        mpfr_mul(r46852, r46851, r46851, MPFR_RNDN);
        ;
        mpfr_pow(r46854, r46843, r46853, MPFR_RNDN);
        mpfr_add(r46855, r46841, r46854, MPFR_RNDN);
        mpfr_log(r46856, r46855, MPFR_RNDN);
        mpfr_sub(r46857, r46841, r46843, MPFR_RNDN);
        mpfr_add(r46858, r46842, r46842, MPFR_RNDN);
        mpfr_exp(r46859, r46858, MPFR_RNDN);
        mpfr_add(r46860, r46857, r46859, MPFR_RNDN);
        mpfr_log(r46861, r46860, MPFR_RNDN);
        mpfr_sub(r46862, r46856, r46861, MPFR_RNDN);
        mpfr_cbrt(r46863, r46862, MPFR_RNDN);
        mpfr_mul(r46864, r46852, r46863, MPFR_RNDN);
        mpfr_sub(r46865, r46864, r46847, MPFR_RNDN);
        ;
        mpfr_set_si(r46867, mpfr_cmp(r46848, r46866) <= 0, MPFR_RNDN);
        mpfr_exp(r46868, r46847, MPFR_RNDN);
        mpfr_div(r46869, r46844, r46868, MPFR_RNDN);
        mpfr_log(r46870, r46869, MPFR_RNDN);
        if (mpfr_get_si(r46867, MPFR_RNDN)) { mpfr_set(r46871, r46870, MPFR_RNDN); } else { mpfr_set(r46871, r46865, MPFR_RNDN); };
        if (mpfr_get_si(r46850, MPFR_RNDN)) { mpfr_set(r46872, r46865, MPFR_RNDN); } else { mpfr_set(r46872, r46871, MPFR_RNDN); };
        return mpfr_get_d(r46872, MPFR_RNDN);
}

static mpfr_t r46873, r46874, r46875, r46876, r46877, r46878, r46879, r46880, r46881, r46882, r46883, r46884, r46885, r46886, r46887, r46888, r46889, r46890, r46891, r46892, r46893, r46894, r46895, r46896, r46897, r46898, r46899, r46900, r46901, r46902, r46903, r46904;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init_set_str(r46873, "1", 10, MPFR_RNDN);
        mpfr_init(r46874);
        mpfr_init(r46875);
        mpfr_init(r46876);
        mpfr_init(r46877);
        mpfr_init(r46878);
        mpfr_init(r46879);
        mpfr_init(r46880);
        mpfr_init_set_str(r46881, "0.6921301683303508", 10, MPFR_RNDN);
        mpfr_init(r46882);
        mpfr_init(r46883);
        mpfr_init(r46884);
        mpfr_init_set_str(r46885, "3", 10, MPFR_RNDN);
        mpfr_init(r46886);
        mpfr_init(r46887);
        mpfr_init(r46888);
        mpfr_init(r46889);
        mpfr_init(r46890);
        mpfr_init(r46891);
        mpfr_init(r46892);
        mpfr_init(r46893);
        mpfr_init(r46894);
        mpfr_init(r46895);
        mpfr_init(r46896);
        mpfr_init(r46897);
        mpfr_init_set_str(r46898, "141.36163919317698", 10, MPFR_RNDN);
        mpfr_init(r46899);
        mpfr_init(r46900);
        mpfr_init(r46901);
        mpfr_init(r46902);
        mpfr_init(r46903);
        mpfr_init(r46904);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r46874, x, MPFR_RNDN);
        mpfr_exp(r46875, r46874, MPFR_RNDN);
        mpfr_add(r46876, r46873, r46875, MPFR_RNDN);
        mpfr_log(r46877, r46876, MPFR_RNDN);
        mpfr_set_d(r46878, y, MPFR_RNDN);
        mpfr_mul(r46879, r46874, r46878, MPFR_RNDN);
        mpfr_sub(r46880, r46877, r46879, MPFR_RNDN);
        ;
        mpfr_set_si(r46882, mpfr_cmp(r46880, r46881) <= 0, MPFR_RNDN);
        mpfr_cbrt(r46883, r46877, MPFR_RNDN);
        mpfr_mul(r46884, r46883, r46883, MPFR_RNDN);
        ;
        mpfr_pow(r46886, r46875, r46885, MPFR_RNDN);
        mpfr_add(r46887, r46873, r46886, MPFR_RNDN);
        mpfr_log(r46888, r46887, MPFR_RNDN);
        mpfr_sub(r46889, r46873, r46875, MPFR_RNDN);
        mpfr_add(r46890, r46874, r46874, MPFR_RNDN);
        mpfr_exp(r46891, r46890, MPFR_RNDN);
        mpfr_add(r46892, r46889, r46891, MPFR_RNDN);
        mpfr_log(r46893, r46892, MPFR_RNDN);
        mpfr_sub(r46894, r46888, r46893, MPFR_RNDN);
        mpfr_cbrt(r46895, r46894, MPFR_RNDN);
        mpfr_mul(r46896, r46884, r46895, MPFR_RNDN);
        mpfr_sub(r46897, r46896, r46879, MPFR_RNDN);
        ;
        mpfr_set_si(r46899, mpfr_cmp(r46880, r46898) <= 0, MPFR_RNDN);
        mpfr_exp(r46900, r46879, MPFR_RNDN);
        mpfr_div(r46901, r46876, r46900, MPFR_RNDN);
        mpfr_log(r46902, r46901, MPFR_RNDN);
        if (mpfr_get_si(r46899, MPFR_RNDN)) { mpfr_set(r46903, r46902, MPFR_RNDN); } else { mpfr_set(r46903, r46897, MPFR_RNDN); };
        if (mpfr_get_si(r46882, MPFR_RNDN)) { mpfr_set(r46904, r46897, MPFR_RNDN); } else { mpfr_set(r46904, r46903, MPFR_RNDN); };
        return mpfr_get_d(r46904, MPFR_RNDN);
}

