#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 r35107 = x;
        float r35108 = 1.0;
        float r35109 = 3.0;
        float r35110 = r35108 / r35109;
        float r35111 = r35107 - r35110;
        return r35111;
}

double f_id(double x) {
        double r35112 = x;
        double r35113 = 1.0;
        double r35114 = 3.0;
        double r35115 = r35113 / r35114;
        double r35116 = r35112 - r35115;
        return r35116;
}


double f_of(float x) {
        float r35117 = x;
        float r35118 = 1.0;
        float r35119 = 3.0;
        float r35120 = r35118 / r35119;
        float r35121 = r35117 - r35120;
        return r35121;
}

double f_od(double x) {
        double r35122 = x;
        double r35123 = 1.0;
        double r35124 = 3.0;
        double r35125 = r35123 / r35124;
        double r35126 = r35122 - r35125;
        return r35126;
}

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 r35127, r35128, r35129, r35130, r35131;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35127);
        mpfr_init_set_str(r35128, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35129, "3.0", 10, MPFR_RNDN);
        mpfr_init(r35130);
        mpfr_init(r35131);
}

double f_im(double x) {
        mpfr_set_d(r35127, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35130, r35128, r35129, MPFR_RNDN);
        mpfr_sub(r35131, r35127, r35130, MPFR_RNDN);
        return mpfr_get_d(r35131, MPFR_RNDN);
}

static mpfr_t r35132, r35133, r35134, r35135, r35136;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35132);
        mpfr_init_set_str(r35133, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35134, "3.0", 10, MPFR_RNDN);
        mpfr_init(r35135);
        mpfr_init(r35136);
}

double f_fm(double x) {
        mpfr_set_d(r35132, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35135, r35133, r35134, MPFR_RNDN);
        mpfr_sub(r35136, r35132, r35135, MPFR_RNDN);
        return mpfr_get_d(r35136, MPFR_RNDN);
}

static mpfr_t r35137, r35138, r35139, r35140, r35141;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35137);
        mpfr_init_set_str(r35138, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35139, "3.0", 10, MPFR_RNDN);
        mpfr_init(r35140);
        mpfr_init(r35141);
}

double f_dm(double x) {
        mpfr_set_d(r35137, x, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35140, r35138, r35139, MPFR_RNDN);
        mpfr_sub(r35141, r35137, r35140, MPFR_RNDN);
        return mpfr_get_d(r35141, MPFR_RNDN);
}

