#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 r43038 = x;
        float r43039 = 1.0f;
        float r43040 = y;
        float r43041 = r43040 * r43040;
        float r43042 = r43039 + r43041;
        float r43043 = r43038 * r43042;
        return r43043;
}

double f_id(double x, double y) {
        double r43044 = x;
        double r43045 = 1.0;
        double r43046 = y;
        double r43047 = r43046 * r43046;
        double r43048 = r43045 + r43047;
        double r43049 = r43044 * r43048;
        return r43049;
}


double f_of(float x, float y) {
        float r43050 = x;
        float r43051 = y;
        float r43052 = r43050 * r43051;
        float r43053 = r43052 * r43051;
        float r43054 = 1.0f;
        float r43055 = r43050 * r43054;
        float r43056 = r43053 + r43055;
        return r43056;
}

double f_od(double x, double y) {
        double r43057 = x;
        double r43058 = y;
        double r43059 = r43057 * r43058;
        double r43060 = r43059 * r43058;
        double r43061 = 1.0;
        double r43062 = r43057 * r43061;
        double r43063 = r43060 + r43062;
        return r43063;
}

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 r43064, r43065, r43066, r43067, r43068, r43069;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r43064);
        mpfr_init_set_str(r43065, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43066);
        mpfr_init(r43067);
        mpfr_init(r43068);
        mpfr_init(r43069);
}

double f_im(double x, double y) {
        mpfr_set_d(r43064, x, MPFR_RNDN);
        ;
        mpfr_set_d(r43066, y, MPFR_RNDN);
        mpfr_mul(r43067, r43066, r43066, MPFR_RNDN);
        mpfr_add(r43068, r43065, r43067, MPFR_RNDN);
        mpfr_mul(r43069, r43064, r43068, MPFR_RNDN);
        return mpfr_get_d(r43069, MPFR_RNDN);
}

static mpfr_t r43070, r43071, r43072, r43073, r43074, r43075, r43076;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r43070);
        mpfr_init(r43071);
        mpfr_init(r43072);
        mpfr_init(r43073);
        mpfr_init_set_str(r43074, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43075);
        mpfr_init(r43076);
}

double f_fm(double x, double y) {
        mpfr_set_d(r43070, x, MPFR_RNDN);
        mpfr_set_d(r43071, y, MPFR_RNDN);
        mpfr_mul(r43072, r43070, r43071, MPFR_RNDN);
        mpfr_mul(r43073, r43072, r43071, MPFR_RNDN);
        ;
        mpfr_mul(r43075, r43070, r43074, MPFR_RNDN);
        mpfr_add(r43076, r43073, r43075, MPFR_RNDN);
        return mpfr_get_d(r43076, MPFR_RNDN);
}

static mpfr_t r43077, r43078, r43079, r43080, r43081, r43082, r43083;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r43077);
        mpfr_init(r43078);
        mpfr_init(r43079);
        mpfr_init(r43080);
        mpfr_init_set_str(r43081, "1.0", 10, MPFR_RNDN);
        mpfr_init(r43082);
        mpfr_init(r43083);
}

double f_dm(double x, double y) {
        mpfr_set_d(r43077, x, MPFR_RNDN);
        mpfr_set_d(r43078, y, MPFR_RNDN);
        mpfr_mul(r43079, r43077, r43078, MPFR_RNDN);
        mpfr_mul(r43080, r43079, r43078, MPFR_RNDN);
        ;
        mpfr_mul(r43082, r43077, r43081, MPFR_RNDN);
        mpfr_add(r43083, r43080, r43082, MPFR_RNDN);
        return mpfr_get_d(r43083, MPFR_RNDN);
}

