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

double f_if(float x, float y, float z) {
        float r56743 = x;
        float r56744 = y;
        float r56745 = r56744 - r56743;
        float r56746 = 6.0;
        float r56747 = r56745 * r56746;
        float r56748 = z;
        float r56749 = r56747 * r56748;
        float r56750 = r56743 + r56749;
        return r56750;
}

double f_id(double x, double y, double z) {
        double r56751 = x;
        double r56752 = y;
        double r56753 = r56752 - r56751;
        double r56754 = 6.0;
        double r56755 = r56753 * r56754;
        double r56756 = z;
        double r56757 = r56755 * r56756;
        double r56758 = r56751 + r56757;
        return r56758;
}


double f_of(float x, float y, float z) {
        float r56759 = z;
        float r56760 = 6.0;
        float r56761 = r56759 * r56760;
        float r56762 = y;
        float r56763 = x;
        float r56764 = r56762 - r56763;
        float r56765 = r56761 * r56764;
        float r56766 = r56765 + r56763;
        return r56766;
}

double f_od(double x, double y, double z) {
        double r56767 = z;
        double r56768 = 6.0;
        double r56769 = r56767 * r56768;
        double r56770 = y;
        double r56771 = x;
        double r56772 = r56770 - r56771;
        double r56773 = r56769 * r56772;
        double r56774 = r56773 + r56771;
        return r56774;
}

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 r56775, r56776, r56777, r56778, r56779, r56780, r56781, r56782;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r56775);
        mpfr_init(r56776);
        mpfr_init(r56777);
        mpfr_init_set_str(r56778, "6.0", 10, MPFR_RNDN);
        mpfr_init(r56779);
        mpfr_init(r56780);
        mpfr_init(r56781);
        mpfr_init(r56782);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r56775, x, MPFR_RNDN);
        mpfr_set_d(r56776, y, MPFR_RNDN);
        mpfr_sub(r56777, r56776, r56775, MPFR_RNDN);
        ;
        mpfr_mul(r56779, r56777, r56778, MPFR_RNDN);
        mpfr_set_d(r56780, z, MPFR_RNDN);
        mpfr_mul(r56781, r56779, r56780, MPFR_RNDN);
        mpfr_add(r56782, r56775, r56781, MPFR_RNDN);
        return mpfr_get_d(r56782, MPFR_RNDN);
}

static mpfr_t r56783, r56784, r56785, r56786, r56787, r56788, r56789, r56790;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56783);
        mpfr_init_set_str(r56784, "6.0", 10, MPFR_RNDN);
        mpfr_init(r56785);
        mpfr_init(r56786);
        mpfr_init(r56787);
        mpfr_init(r56788);
        mpfr_init(r56789);
        mpfr_init(r56790);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r56783, z, MPFR_RNDN);
        ;
        mpfr_mul(r56785, r56783, r56784, MPFR_RNDN);
        mpfr_set_d(r56786, y, MPFR_RNDN);
        mpfr_set_d(r56787, x, MPFR_RNDN);
        mpfr_sub(r56788, r56786, r56787, MPFR_RNDN);
        mpfr_mul(r56789, r56785, r56788, MPFR_RNDN);
        mpfr_add(r56790, r56789, r56787, MPFR_RNDN);
        return mpfr_get_d(r56790, MPFR_RNDN);
}

static mpfr_t r56791, r56792, r56793, r56794, r56795, r56796, r56797, r56798;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56791);
        mpfr_init_set_str(r56792, "6.0", 10, MPFR_RNDN);
        mpfr_init(r56793);
        mpfr_init(r56794);
        mpfr_init(r56795);
        mpfr_init(r56796);
        mpfr_init(r56797);
        mpfr_init(r56798);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r56791, z, MPFR_RNDN);
        ;
        mpfr_mul(r56793, r56791, r56792, MPFR_RNDN);
        mpfr_set_d(r56794, y, MPFR_RNDN);
        mpfr_set_d(r56795, x, MPFR_RNDN);
        mpfr_sub(r56796, r56794, r56795, MPFR_RNDN);
        mpfr_mul(r56797, r56793, r56796, MPFR_RNDN);
        mpfr_add(r56798, r56797, r56795, MPFR_RNDN);
        return mpfr_get_d(r56798, MPFR_RNDN);
}

