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

double f_if(float x, float y) {
        float r55975 = x;
        float r55976 = y;
        float r55977 = 1.0f;
        float r55978 = r55976 + r55977;
        float r55979 = r55975 * r55978;
        return r55979;
}

double f_id(double x, double y) {
        double r55980 = x;
        double r55981 = y;
        double r55982 = 1.0;
        double r55983 = r55981 + r55982;
        double r55984 = r55980 * r55983;
        return r55984;
}


double f_of(float x, float y) {
        float r55985 = x;
        float r55986 = y;
        float r55987 = 1.0f;
        float r55988 = r55986 + r55987;
        float r55989 = r55985 * r55988;
        return r55989;
}

double f_od(double x, double y) {
        double r55990 = x;
        double r55991 = y;
        double r55992 = 1.0;
        double r55993 = r55991 + r55992;
        double r55994 = r55990 * r55993;
        return r55994;
}

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 r55995, r55996, r55997, r55998, r55999;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r55995);
        mpfr_init(r55996);
        mpfr_init_set_str(r55997, "1.0", 10, MPFR_RNDN);
        mpfr_init(r55998);
        mpfr_init(r55999);
}

double f_im(double x, double y) {
        mpfr_set_d(r55995, x, MPFR_RNDN);
        mpfr_set_d(r55996, y, MPFR_RNDN);
        ;
        mpfr_add(r55998, r55996, r55997, MPFR_RNDN);
        mpfr_mul(r55999, r55995, r55998, MPFR_RNDN);
        return mpfr_get_d(r55999, MPFR_RNDN);
}

static mpfr_t r56000, r56001, r56002, r56003, r56004;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56000);
        mpfr_init(r56001);
        mpfr_init_set_str(r56002, "1.0", 10, MPFR_RNDN);
        mpfr_init(r56003);
        mpfr_init(r56004);
}

double f_fm(double x, double y) {
        mpfr_set_d(r56000, x, MPFR_RNDN);
        mpfr_set_d(r56001, y, MPFR_RNDN);
        ;
        mpfr_add(r56003, r56001, r56002, MPFR_RNDN);
        mpfr_mul(r56004, r56000, r56003, MPFR_RNDN);
        return mpfr_get_d(r56004, MPFR_RNDN);
}

static mpfr_t r56005, r56006, r56007, r56008, r56009;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56005);
        mpfr_init(r56006);
        mpfr_init_set_str(r56007, "1.0", 10, MPFR_RNDN);
        mpfr_init(r56008);
        mpfr_init(r56009);
}

double f_dm(double x, double y) {
        mpfr_set_d(r56005, x, MPFR_RNDN);
        mpfr_set_d(r56006, y, MPFR_RNDN);
        ;
        mpfr_add(r56008, r56006, r56007, MPFR_RNDN);
        mpfr_mul(r56009, r56005, r56008, MPFR_RNDN);
        return mpfr_get_d(r56009, MPFR_RNDN);
}

