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

char *name = "Data.Colour.RGB:hslsv from colour-2.3.3, A";

double f_if(float x, float y) {
        float r35723 = x;
        float r35724 = y;
        float r35725 = r35723 + r35724;
        float r35726 = 2.0;
        float r35727 = r35725 / r35726;
        return r35727;
}

double f_id(double x, double y) {
        double r35728 = x;
        double r35729 = y;
        double r35730 = r35728 + r35729;
        double r35731 = 2.0;
        double r35732 = r35730 / r35731;
        return r35732;
}


double f_of(float x, float y) {
        float r35733 = x;
        float r35734 = y;
        float r35735 = r35733 + r35734;
        float r35736 = 2.0;
        float r35737 = r35735 / r35736;
        return r35737;
}

double f_od(double x, double y) {
        double r35738 = x;
        double r35739 = y;
        double r35740 = r35738 + r35739;
        double r35741 = 2.0;
        double r35742 = r35740 / r35741;
        return r35742;
}

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 r35743, r35744, r35745, r35746, r35747;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35743);
        mpfr_init(r35744);
        mpfr_init(r35745);
        mpfr_init_set_str(r35746, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35747);
}

double f_im(double x, double y) {
        mpfr_set_d(r35743, x, MPFR_RNDN);
        mpfr_set_d(r35744, y, MPFR_RNDN);
        mpfr_add(r35745, r35743, r35744, MPFR_RNDN);
        ;
        mpfr_div(r35747, r35745, r35746, MPFR_RNDN);
        return mpfr_get_d(r35747, MPFR_RNDN);
}

static mpfr_t r35748, r35749, r35750, r35751, r35752;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35748);
        mpfr_init(r35749);
        mpfr_init(r35750);
        mpfr_init_set_str(r35751, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35752);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35748, x, MPFR_RNDN);
        mpfr_set_d(r35749, y, MPFR_RNDN);
        mpfr_add(r35750, r35748, r35749, MPFR_RNDN);
        ;
        mpfr_div(r35752, r35750, r35751, MPFR_RNDN);
        return mpfr_get_d(r35752, MPFR_RNDN);
}

static mpfr_t r35753, r35754, r35755, r35756, r35757;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35753);
        mpfr_init(r35754);
        mpfr_init(r35755);
        mpfr_init_set_str(r35756, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35757);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35753, x, MPFR_RNDN);
        mpfr_set_d(r35754, y, MPFR_RNDN);
        mpfr_add(r35755, r35753, r35754, MPFR_RNDN);
        ;
        mpfr_div(r35757, r35755, r35756, MPFR_RNDN);
        return mpfr_get_d(r35757, MPFR_RNDN);
}

