#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 r55730 = x;
        float r55731 = 1.0f;
        float r55732 = 3.0f;
        float r55733 = r55731 / r55732;
        float r55734 = r55730 - r55733;
        return r55734;
}

double f_id(double x) {
        double r55735 = x;
        double r55736 = 1.0;
        double r55737 = 3.0;
        double r55738 = r55736 / r55737;
        double r55739 = r55735 - r55738;
        return r55739;
}


double f_of(float x) {
        float r55740 = x;
        float r55741 = 1.0f;
        float r55742 = 3.0f;
        float r55743 = r55741 / r55742;
        float r55744 = r55740 - r55743;
        return r55744;
}

double f_od(double x) {
        double r55745 = x;
        double r55746 = 1.0;
        double r55747 = 3.0;
        double r55748 = r55746 / r55747;
        double r55749 = r55745 - r55748;
        return r55749;
}

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 r55750, r55751, r55752, r55753, r55754;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r55750);
        mpfr_init_set_str(r55751, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r55752, "3.0", 10, MPFR_RNDN);
        mpfr_init(r55753);
        mpfr_init(r55754);
}

double f_im(double x) {
        mpfr_set_d(r55750, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r55753, r55751, r55752, MPFR_RNDN);
        mpfr_sub(r55754, r55750, r55753, MPFR_RNDN);
        return mpfr_get_d(r55754, MPFR_RNDN);
}

static mpfr_t r55755, r55756, r55757, r55758, r55759;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r55755);
        mpfr_init_set_str(r55756, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r55757, "3.0", 10, MPFR_RNDN);
        mpfr_init(r55758);
        mpfr_init(r55759);
}

double f_fm(double x) {
        mpfr_set_d(r55755, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r55758, r55756, r55757, MPFR_RNDN);
        mpfr_sub(r55759, r55755, r55758, MPFR_RNDN);
        return mpfr_get_d(r55759, MPFR_RNDN);
}

static mpfr_t r55760, r55761, r55762, r55763, r55764;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r55760);
        mpfr_init_set_str(r55761, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r55762, "3.0", 10, MPFR_RNDN);
        mpfr_init(r55763);
        mpfr_init(r55764);
}

double f_dm(double x) {
        mpfr_set_d(r55760, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r55763, r55761, r55762, MPFR_RNDN);
        mpfr_sub(r55764, r55760, r55763, MPFR_RNDN);
        return mpfr_get_d(r55764, MPFR_RNDN);
}

