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

double f_if(float x, float y) {
        float r35860 = x;
        float r35861 = y;
        float r35862 = r35860 + r35861;
        float r35863 = r35860 * r35861;
        float r35864 = r35862 - r35863;
        return r35864;
}

double f_id(double x, double y) {
        double r35865 = x;
        double r35866 = y;
        double r35867 = r35865 + r35866;
        double r35868 = r35865 * r35866;
        double r35869 = r35867 - r35868;
        return r35869;
}


double f_of(float x, float y) {
        float r35870 = x;
        float r35871 = y;
        float r35872 = r35870 + r35871;
        float r35873 = r35870 * r35871;
        float r35874 = r35872 - r35873;
        return r35874;
}

double f_od(double x, double y) {
        double r35875 = x;
        double r35876 = y;
        double r35877 = r35875 + r35876;
        double r35878 = r35875 * r35876;
        double r35879 = r35877 - r35878;
        return r35879;
}

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 r35880, r35881, r35882, r35883, r35884;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35880);
        mpfr_init(r35881);
        mpfr_init(r35882);
        mpfr_init(r35883);
        mpfr_init(r35884);
}

double f_im(double x, double y) {
        mpfr_set_d(r35880, x, MPFR_RNDN);
        mpfr_set_d(r35881, y, MPFR_RNDN);
        mpfr_add(r35882, r35880, r35881, MPFR_RNDN);
        mpfr_mul(r35883, r35880, r35881, MPFR_RNDN);
        mpfr_sub(r35884, r35882, r35883, MPFR_RNDN);
        return mpfr_get_d(r35884, MPFR_RNDN);
}

static mpfr_t r35885, r35886, r35887, r35888, r35889;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35885);
        mpfr_init(r35886);
        mpfr_init(r35887);
        mpfr_init(r35888);
        mpfr_init(r35889);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35885, x, MPFR_RNDN);
        mpfr_set_d(r35886, y, MPFR_RNDN);
        mpfr_add(r35887, r35885, r35886, MPFR_RNDN);
        mpfr_mul(r35888, r35885, r35886, MPFR_RNDN);
        mpfr_sub(r35889, r35887, r35888, MPFR_RNDN);
        return mpfr_get_d(r35889, MPFR_RNDN);
}

static mpfr_t r35890, r35891, r35892, r35893, r35894;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35890);
        mpfr_init(r35891);
        mpfr_init(r35892);
        mpfr_init(r35893);
        mpfr_init(r35894);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35890, x, MPFR_RNDN);
        mpfr_set_d(r35891, y, MPFR_RNDN);
        mpfr_add(r35892, r35890, r35891, MPFR_RNDN);
        mpfr_mul(r35893, r35890, r35891, MPFR_RNDN);
        mpfr_sub(r35894, r35892, r35893, MPFR_RNDN);
        return mpfr_get_d(r35894, MPFR_RNDN);
}

