#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 r35499 = x;
        float r35500 = 1.0;
        float r35501 = 3.0;
        float r35502 = r35500 / r35501;
        float r35503 = r35499 - r35502;
        return r35503;
}

double f_id(double x) {
        double r35504 = x;
        double r35505 = 1.0;
        double r35506 = 3.0;
        double r35507 = r35505 / r35506;
        double r35508 = r35504 - r35507;
        return r35508;
}


double f_of(float x) {
        float r35509 = x;
        float r35510 = 1.0;
        float r35511 = 3.0;
        float r35512 = r35510 / r35511;
        float r35513 = r35509 - r35512;
        return r35513;
}

double f_od(double x) {
        double r35514 = x;
        double r35515 = 1.0;
        double r35516 = 3.0;
        double r35517 = r35515 / r35516;
        double r35518 = r35514 - r35517;
        return r35518;
}

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 r35519, r35520, r35521, r35522, r35523;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35519);
        mpfr_init_set_str(r35520, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35521, "3.0", 10, MPFR_RNDN);
        mpfr_init(r35522);
        mpfr_init(r35523);
}

double f_im(double x) {
        mpfr_set_d(r35519, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35522, r35520, r35521, MPFR_RNDN);
        mpfr_sub(r35523, r35519, r35522, MPFR_RNDN);
        return mpfr_get_d(r35523, MPFR_RNDN);
}

static mpfr_t r35524, r35525, r35526, r35527, r35528;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35524);
        mpfr_init_set_str(r35525, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35526, "3.0", 10, MPFR_RNDN);
        mpfr_init(r35527);
        mpfr_init(r35528);
}

double f_fm(double x) {
        mpfr_set_d(r35524, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35527, r35525, r35526, MPFR_RNDN);
        mpfr_sub(r35528, r35524, r35527, MPFR_RNDN);
        return mpfr_get_d(r35528, MPFR_RNDN);
}

static mpfr_t r35529, r35530, r35531, r35532, r35533;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35529);
        mpfr_init_set_str(r35530, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35531, "3.0", 10, MPFR_RNDN);
        mpfr_init(r35532);
        mpfr_init(r35533);
}

double f_dm(double x) {
        mpfr_set_d(r35529, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35532, r35530, r35531, MPFR_RNDN);
        mpfr_sub(r35533, r35529, r35532, MPFR_RNDN);
        return mpfr_get_d(r35533, MPFR_RNDN);
}

