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

double f_if(float x, float y) {
        float r35633 = x;
        float r35634 = 2.0;
        float r35635 = r35633 * r35634;
        float r35636 = y;
        float r35637 = r35635 - r35636;
        return r35637;
}

double f_id(double x, double y) {
        double r35638 = x;
        double r35639 = 2.0;
        double r35640 = r35638 * r35639;
        double r35641 = y;
        double r35642 = r35640 - r35641;
        return r35642;
}


double f_of(float x, float y) {
        float r35643 = x;
        float r35644 = 2.0;
        float r35645 = r35643 * r35644;
        float r35646 = y;
        float r35647 = r35645 - r35646;
        return r35647;
}

double f_od(double x, double y) {
        double r35648 = x;
        double r35649 = 2.0;
        double r35650 = r35648 * r35649;
        double r35651 = y;
        double r35652 = r35650 - r35651;
        return r35652;
}

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 r35653, r35654, r35655, r35656, r35657;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35653);
        mpfr_init_set_str(r35654, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35655);
        mpfr_init(r35656);
        mpfr_init(r35657);
}

double f_im(double x, double y) {
        mpfr_set_d(r35653, x, MPFR_RNDN);
        ;
        mpfr_mul(r35655, r35653, r35654, MPFR_RNDN);
        mpfr_set_d(r35656, y, MPFR_RNDN);
        mpfr_sub(r35657, r35655, r35656, MPFR_RNDN);
        return mpfr_get_d(r35657, MPFR_RNDN);
}

static mpfr_t r35658, r35659, r35660, r35661, r35662;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35658);
        mpfr_init_set_str(r35659, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35660);
        mpfr_init(r35661);
        mpfr_init(r35662);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35658, x, MPFR_RNDN);
        ;
        mpfr_mul(r35660, r35658, r35659, MPFR_RNDN);
        mpfr_set_d(r35661, y, MPFR_RNDN);
        mpfr_sub(r35662, r35660, r35661, MPFR_RNDN);
        return mpfr_get_d(r35662, MPFR_RNDN);
}

static mpfr_t r35663, r35664, r35665, r35666, r35667;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35663);
        mpfr_init_set_str(r35664, "2.0", 10, MPFR_RNDN);
        mpfr_init(r35665);
        mpfr_init(r35666);
        mpfr_init(r35667);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35663, x, MPFR_RNDN);
        ;
        mpfr_mul(r35665, r35663, r35664, MPFR_RNDN);
        mpfr_set_d(r35666, y, MPFR_RNDN);
        mpfr_sub(r35667, r35665, r35666, MPFR_RNDN);
        return mpfr_get_d(r35667, MPFR_RNDN);
}

