#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Numeric.Integration.TanhSinh:everywhere from integration-0.2.1";

double f_if(float x, float y) {
        float r45840 = x;
        float r45841 = 1.0;
        float r45842 = y;
        float r45843 = r45842 * r45842;
        float r45844 = r45841 + r45843;
        float r45845 = r45840 * r45844;
        return r45845;
}

double f_id(double x, double y) {
        double r45846 = x;
        double r45847 = 1.0;
        double r45848 = y;
        double r45849 = r45848 * r45848;
        double r45850 = r45847 + r45849;
        double r45851 = r45846 * r45850;
        return r45851;
}


double f_of(float x, float y) {
        float r45852 = x;
        float r45853 = 1.0;
        float r45854 = y;
        float r45855 = r45854 * r45854;
        float r45856 = r45853 + r45855;
        float r45857 = r45852 * r45856;
        return r45857;
}

double f_od(double x, double y) {
        double r45858 = x;
        double r45859 = 1.0;
        double r45860 = y;
        double r45861 = r45860 * r45860;
        double r45862 = r45859 + r45861;
        double r45863 = r45858 * r45862;
        return r45863;
}

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 r45864, r45865, r45866, r45867, r45868, r45869;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r45864);
        mpfr_init_set_str(r45865, "1.0", 10, MPFR_RNDN);
        mpfr_init(r45866);
        mpfr_init(r45867);
        mpfr_init(r45868);
        mpfr_init(r45869);
}

double f_im(double x, double y) {
        mpfr_set_d(r45864, x, MPFR_RNDN);
        ;
        mpfr_set_d(r45866, y, MPFR_RNDN);
        mpfr_mul(r45867, r45866, r45866, MPFR_RNDN);
        mpfr_add(r45868, r45865, r45867, MPFR_RNDN);
        mpfr_mul(r45869, r45864, r45868, MPFR_RNDN);
        return mpfr_get_d(r45869, MPFR_RNDN);
}

static mpfr_t r45870, r45871, r45872, r45873, r45874, r45875;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r45870);
        mpfr_init_set_str(r45871, "1.0", 10, MPFR_RNDN);
        mpfr_init(r45872);
        mpfr_init(r45873);
        mpfr_init(r45874);
        mpfr_init(r45875);
}

double f_fm(double x, double y) {
        mpfr_set_d(r45870, x, MPFR_RNDN);
        ;
        mpfr_set_d(r45872, y, MPFR_RNDN);
        mpfr_mul(r45873, r45872, r45872, MPFR_RNDN);
        mpfr_add(r45874, r45871, r45873, MPFR_RNDN);
        mpfr_mul(r45875, r45870, r45874, MPFR_RNDN);
        return mpfr_get_d(r45875, MPFR_RNDN);
}

static mpfr_t r45876, r45877, r45878, r45879, r45880, r45881;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r45876);
        mpfr_init_set_str(r45877, "1.0", 10, MPFR_RNDN);
        mpfr_init(r45878);
        mpfr_init(r45879);
        mpfr_init(r45880);
        mpfr_init(r45881);
}

double f_dm(double x, double y) {
        mpfr_set_d(r45876, x, MPFR_RNDN);
        ;
        mpfr_set_d(r45878, y, MPFR_RNDN);
        mpfr_mul(r45879, r45878, r45878, MPFR_RNDN);
        mpfr_add(r45880, r45877, r45879, MPFR_RNDN);
        mpfr_mul(r45881, r45876, r45880, MPFR_RNDN);
        return mpfr_get_d(r45881, MPFR_RNDN);
}

