#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, C";

double f_if(float x, float y) {
        float r35365 = x;
        float r35366 = 2.0;
        float r35367 = r35365 * r35366;
        float r35368 = y;
        float r35369 = r35367 - r35368;
        return r35369;
}

double f_id(double x, double y) {
        double r35370 = x;
        double r35371 = 2.0;
        double r35372 = r35370 * r35371;
        double r35373 = y;
        double r35374 = r35372 - r35373;
        return r35374;
}


double f_of(float x, float y) {
        float r35375 = x;
        float r35376 = 2.0;
        float r35377 = r35375 * r35376;
        float r35378 = y;
        float r35379 = r35377 - r35378;
        return r35379;
}

double f_od(double x, double y) {
        double r35380 = x;
        double r35381 = 2.0;
        double r35382 = r35380 * r35381;
        double r35383 = y;
        double r35384 = r35382 - r35383;
        return r35384;
}

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 r35385, r35386, r35387, r35388, r35389;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35385);
        mpfr_init_set_str(r35386, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35387);
        mpfr_init(r35388);
        mpfr_init(r35389);
}

double f_im(double x, double y) {
        mpfr_set_d(r35385, x, MPFR_RNDN);
        ;
        mpfr_mul(r35387, r35385, r35386, MPFR_RNDN);
        mpfr_set_d(r35388, y, MPFR_RNDN);
        mpfr_sub(r35389, r35387, r35388, MPFR_RNDN);
        return mpfr_get_d(r35389, MPFR_RNDN);
}

static mpfr_t r35390, r35391, r35392, r35393, r35394;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35390);
        mpfr_init_set_str(r35391, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35392);
        mpfr_init(r35393);
        mpfr_init(r35394);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35390, x, MPFR_RNDN);
        ;
        mpfr_mul(r35392, r35390, r35391, MPFR_RNDN);
        mpfr_set_d(r35393, y, MPFR_RNDN);
        mpfr_sub(r35394, r35392, r35393, MPFR_RNDN);
        return mpfr_get_d(r35394, MPFR_RNDN);
}

static mpfr_t r35395, r35396, r35397, r35398, r35399;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35395);
        mpfr_init_set_str(r35396, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35397);
        mpfr_init(r35398);
        mpfr_init(r35399);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35395, x, MPFR_RNDN);
        ;
        mpfr_mul(r35397, r35395, r35396, MPFR_RNDN);
        mpfr_set_d(r35398, y, MPFR_RNDN);
        mpfr_sub(r35399, r35397, r35398, MPFR_RNDN);
        return mpfr_get_d(r35399, MPFR_RNDN);
}

