#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 r55550 = x;
        float r55551 = y;
        float r55552 = 1.0;
        float r55553 = r55551 + r55552;
        float r55554 = r55550 * r55553;
        return r55554;
}

double f_id(double x, double y) {
        double r55555 = x;
        double r55556 = y;
        double r55557 = 1.0;
        double r55558 = r55556 + r55557;
        double r55559 = r55555 * r55558;
        return r55559;
}


double f_of(float x, float y) {
        float r55560 = x;
        float r55561 = y;
        float r55562 = 1.0;
        float r55563 = r55561 + r55562;
        float r55564 = r55560 * r55563;
        return r55564;
}

double f_od(double x, double y) {
        double r55565 = x;
        double r55566 = y;
        double r55567 = 1.0;
        double r55568 = r55566 + r55567;
        double r55569 = r55565 * r55568;
        return r55569;
}

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 r55570, r55571, r55572, r55573, r55574;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r55570);
        mpfr_init(r55571);
        mpfr_init_set_str(r55572, "1.0", 10, MPFR_RNDN);
        mpfr_init(r55573);
        mpfr_init(r55574);
}

double f_im(double x, double y) {
        mpfr_set_d(r55570, x, MPFR_RNDN);
        mpfr_set_d(r55571, y, MPFR_RNDN);
        ;
        mpfr_add(r55573, r55571, r55572, MPFR_RNDN);
        mpfr_mul(r55574, r55570, r55573, MPFR_RNDN);
        return mpfr_get_d(r55574, MPFR_RNDN);
}

static mpfr_t r55575, r55576, r55577, r55578, r55579;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55575);
        mpfr_init(r55576);
        mpfr_init_set_str(r55577, "1.0", 10, MPFR_RNDN);
        mpfr_init(r55578);
        mpfr_init(r55579);
}

double f_fm(double x, double y) {
        mpfr_set_d(r55575, x, MPFR_RNDN);
        mpfr_set_d(r55576, y, MPFR_RNDN);
        ;
        mpfr_add(r55578, r55576, r55577, MPFR_RNDN);
        mpfr_mul(r55579, r55575, r55578, MPFR_RNDN);
        return mpfr_get_d(r55579, MPFR_RNDN);
}

static mpfr_t r55580, r55581, r55582, r55583, r55584;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55580);
        mpfr_init(r55581);
        mpfr_init_set_str(r55582, "1.0", 10, MPFR_RNDN);
        mpfr_init(r55583);
        mpfr_init(r55584);
}

double f_dm(double x, double y) {
        mpfr_set_d(r55580, x, MPFR_RNDN);
        mpfr_set_d(r55581, y, MPFR_RNDN);
        ;
        mpfr_add(r55583, r55581, r55582, MPFR_RNDN);
        mpfr_mul(r55584, r55580, r55583, MPFR_RNDN);
        return mpfr_get_d(r55584, MPFR_RNDN);
}

