#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 r55494 = x;
        float r55495 = y;
        float r55496 = r55495 - r55494;
        float r55497 = 6.0;
        float r55498 = r55496 * r55497;
        float r55499 = z;
        float r55500 = r55498 * r55499;
        float r55501 = r55494 + r55500;
        return r55501;
}

double f_id(double x, double y, double z) {
        double r55502 = x;
        double r55503 = y;
        double r55504 = r55503 - r55502;
        double r55505 = 6.0;
        double r55506 = r55504 * r55505;
        double r55507 = z;
        double r55508 = r55506 * r55507;
        double r55509 = r55502 + r55508;
        return r55509;
}


double f_of(float x, float y, float z) {
        float r55510 = z;
        float r55511 = 6.0;
        float r55512 = r55510 * r55511;
        float r55513 = y;
        float r55514 = x;
        float r55515 = r55513 - r55514;
        float r55516 = r55512 * r55515;
        float r55517 = r55516 + r55514;
        return r55517;
}

double f_od(double x, double y, double z) {
        double r55518 = z;
        double r55519 = 6.0;
        double r55520 = r55518 * r55519;
        double r55521 = y;
        double r55522 = x;
        double r55523 = r55521 - r55522;
        double r55524 = r55520 * r55523;
        double r55525 = r55524 + r55522;
        return r55525;
}

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 r55526, r55527, r55528, r55529, r55530, r55531, r55532, r55533;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r55526);
        mpfr_init(r55527);
        mpfr_init(r55528);
        mpfr_init_set_str(r55529, "6.0", 10, MPFR_RNDN);
        mpfr_init(r55530);
        mpfr_init(r55531);
        mpfr_init(r55532);
        mpfr_init(r55533);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r55526, x, MPFR_RNDN);
        mpfr_set_d(r55527, y, MPFR_RNDN);
        mpfr_sub(r55528, r55527, r55526, MPFR_RNDN);
        ;
        mpfr_mul(r55530, r55528, r55529, MPFR_RNDN);
        mpfr_set_d(r55531, z, MPFR_RNDN);
        mpfr_mul(r55532, r55530, r55531, MPFR_RNDN);
        mpfr_add(r55533, r55526, r55532, MPFR_RNDN);
        return mpfr_get_d(r55533, MPFR_RNDN);
}

static mpfr_t r55534, r55535, r55536, r55537, r55538, r55539, r55540, r55541;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55534);
        mpfr_init_set_str(r55535, "6.0", 10, MPFR_RNDN);
        mpfr_init(r55536);
        mpfr_init(r55537);
        mpfr_init(r55538);
        mpfr_init(r55539);
        mpfr_init(r55540);
        mpfr_init(r55541);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r55534, z, MPFR_RNDN);
        ;
        mpfr_mul(r55536, r55534, r55535, MPFR_RNDN);
        mpfr_set_d(r55537, y, MPFR_RNDN);
        mpfr_set_d(r55538, x, MPFR_RNDN);
        mpfr_sub(r55539, r55537, r55538, MPFR_RNDN);
        mpfr_mul(r55540, r55536, r55539, MPFR_RNDN);
        mpfr_add(r55541, r55540, r55538, MPFR_RNDN);
        return mpfr_get_d(r55541, MPFR_RNDN);
}

static mpfr_t r55542, r55543, r55544, r55545, r55546, r55547, r55548, r55549;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r55542);
        mpfr_init_set_str(r55543, "6.0", 10, MPFR_RNDN);
        mpfr_init(r55544);
        mpfr_init(r55545);
        mpfr_init(r55546);
        mpfr_init(r55547);
        mpfr_init(r55548);
        mpfr_init(r55549);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r55542, z, MPFR_RNDN);
        ;
        mpfr_mul(r55544, r55542, r55543, MPFR_RNDN);
        mpfr_set_d(r55545, y, MPFR_RNDN);
        mpfr_set_d(r55546, x, MPFR_RNDN);
        mpfr_sub(r55547, r55545, r55546, MPFR_RNDN);
        mpfr_mul(r55548, r55544, r55547, MPFR_RNDN);
        mpfr_add(r55549, r55548, r55546, MPFR_RNDN);
        return mpfr_get_d(r55549, MPFR_RNDN);
}

