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

char *name = "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, G";

double f_if(float x) {
        float r35238 = x;
        float r35239 = 1.0;
        float r35240 = 3.0;
        float r35241 = r35239 / r35240;
        float r35242 = r35238 - r35241;
        return r35242;
}

double f_id(double x) {
        double r35243 = x;
        double r35244 = 1.0;
        double r35245 = 3.0;
        double r35246 = r35244 / r35245;
        double r35247 = r35243 - r35246;
        return r35247;
}


double f_of(float x) {
        float r35248 = x;
        float r35249 = 1.0;
        float r35250 = 3.0;
        float r35251 = r35249 / r35250;
        float r35252 = r35248 - r35251;
        return r35252;
}

double f_od(double x) {
        double r35253 = x;
        double r35254 = 1.0;
        double r35255 = 3.0;
        double r35256 = r35254 / r35255;
        double r35257 = r35253 - r35256;
        return r35257;
}

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 r35258, r35259, r35260, r35261, r35262;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35258);
        mpfr_init_set_str(r35259, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35260, "3.0", 10, MPFR_RNDN);
        mpfr_init(r35261);
        mpfr_init(r35262);
}

double f_im(double x) {
        mpfr_set_d(r35258, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35261, r35259, r35260, MPFR_RNDN);
        mpfr_sub(r35262, r35258, r35261, MPFR_RNDN);
        return mpfr_get_d(r35262, MPFR_RNDN);
}

static mpfr_t r35263, r35264, r35265, r35266, r35267;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35263);
        mpfr_init_set_str(r35264, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35265, "3.0", 10, MPFR_RNDN);
        mpfr_init(r35266);
        mpfr_init(r35267);
}

double f_fm(double x) {
        mpfr_set_d(r35263, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35266, r35264, r35265, MPFR_RNDN);
        mpfr_sub(r35267, r35263, r35266, MPFR_RNDN);
        return mpfr_get_d(r35267, MPFR_RNDN);
}

static mpfr_t r35268, r35269, r35270, r35271, r35272;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35268);
        mpfr_init_set_str(r35269, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35270, "3.0", 10, MPFR_RNDN);
        mpfr_init(r35271);
        mpfr_init(r35272);
}

double f_dm(double x) {
        mpfr_set_d(r35268, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35271, r35269, r35270, MPFR_RNDN);
        mpfr_sub(r35272, r35268, r35271, MPFR_RNDN);
        return mpfr_get_d(r35272, MPFR_RNDN);
}

