#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 r35435 = x;
        float r35436 = y;
        float r35437 = r35435 + r35436;
        float r35438 = 2.0;
        float r35439 = r35437 / r35438;
        return r35439;
}

double f_id(double x, double y) {
        double r35440 = x;
        double r35441 = y;
        double r35442 = r35440 + r35441;
        double r35443 = 2.0;
        double r35444 = r35442 / r35443;
        return r35444;
}


double f_of(float x, float y) {
        float r35445 = x;
        float r35446 = y;
        float r35447 = r35445 + r35446;
        float r35448 = 2.0;
        float r35449 = r35447 / r35448;
        return r35449;
}

double f_od(double x, double y) {
        double r35450 = x;
        double r35451 = y;
        double r35452 = r35450 + r35451;
        double r35453 = 2.0;
        double r35454 = r35452 / r35453;
        return r35454;
}

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 r35455, r35456, r35457, r35458, r35459;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35455);
        mpfr_init(r35456);
        mpfr_init(r35457);
        mpfr_init_set_str(r35458, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35459);
}

double f_im(double x, double y) {
        mpfr_set_d(r35455, x, MPFR_RNDN);
        mpfr_set_d(r35456, y, MPFR_RNDN);
        mpfr_add(r35457, r35455, r35456, MPFR_RNDN);
        ;
        mpfr_div(r35459, r35457, r35458, MPFR_RNDN);
        return mpfr_get_d(r35459, MPFR_RNDN);
}

static mpfr_t r35460, r35461, r35462, r35463, r35464;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35460);
        mpfr_init(r35461);
        mpfr_init(r35462);
        mpfr_init_set_str(r35463, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35464);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35460, x, MPFR_RNDN);
        mpfr_set_d(r35461, y, MPFR_RNDN);
        mpfr_add(r35462, r35460, r35461, MPFR_RNDN);
        ;
        mpfr_div(r35464, r35462, r35463, MPFR_RNDN);
        return mpfr_get_d(r35464, MPFR_RNDN);
}

static mpfr_t r35465, r35466, r35467, r35468, r35469;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35465);
        mpfr_init(r35466);
        mpfr_init(r35467);
        mpfr_init_set_str(r35468, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35469);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35465, x, MPFR_RNDN);
        mpfr_set_d(r35466, y, MPFR_RNDN);
        mpfr_add(r35467, r35465, r35466, MPFR_RNDN);
        ;
        mpfr_div(r35469, r35467, r35468, MPFR_RNDN);
        return mpfr_get_d(r35469, MPFR_RNDN);
}

