#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Data.Colour.RGB:hslsv from colour-2.3.3, C";

double f_if(float x, float y) {
        float r56769 = x;
        float r56770 = y;
        float r56771 = r56769 - r56770;
        float r56772 = 2.0;
        float r56773 = r56769 + r56770;
        float r56774 = r56772 - r56773;
        float r56775 = r56771 / r56774;
        return r56775;
}

double f_id(double x, double y) {
        double r56776 = x;
        double r56777 = y;
        double r56778 = r56776 - r56777;
        double r56779 = 2.0;
        double r56780 = r56776 + r56777;
        double r56781 = r56779 - r56780;
        double r56782 = r56778 / r56781;
        return r56782;
}


double f_of(float x, float y) {
        float r56783 = x;
        float r56784 = y;
        float r56785 = r56783 - r56784;
        float r56786 = 2.0;
        float r56787 = r56783 + r56784;
        float r56788 = r56786 - r56787;
        float r56789 = r56785 / r56788;
        return r56789;
}

double f_od(double x, double y) {
        double r56790 = x;
        double r56791 = y;
        double r56792 = r56790 - r56791;
        double r56793 = 2.0;
        double r56794 = r56790 + r56791;
        double r56795 = r56793 - r56794;
        double r56796 = r56792 / r56795;
        return r56796;
}

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 r56797, r56798, r56799, r56800, r56801, r56802, r56803;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r56797);
        mpfr_init(r56798);
        mpfr_init(r56799);
        mpfr_init_set_str(r56800, "2.0", 10, MPFR_RNDN);
        mpfr_init(r56801);
        mpfr_init(r56802);
        mpfr_init(r56803);
}

double f_im(double x, double y) {
        mpfr_set_d(r56797, x, MPFR_RNDN);
        mpfr_set_d(r56798, y, MPFR_RNDN);
        mpfr_sub(r56799, r56797, r56798, MPFR_RNDN);
        ;
        mpfr_add(r56801, r56797, r56798, MPFR_RNDN);
        mpfr_sub(r56802, r56800, r56801, MPFR_RNDN);
        mpfr_div(r56803, r56799, r56802, MPFR_RNDN);
        return mpfr_get_d(r56803, MPFR_RNDN);
}

static mpfr_t r56804, r56805, r56806, r56807, r56808, r56809, r56810;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56804);
        mpfr_init(r56805);
        mpfr_init(r56806);
        mpfr_init_set_str(r56807, "2.0", 10, MPFR_RNDN);
        mpfr_init(r56808);
        mpfr_init(r56809);
        mpfr_init(r56810);
}

double f_fm(double x, double y) {
        mpfr_set_d(r56804, x, MPFR_RNDN);
        mpfr_set_d(r56805, y, MPFR_RNDN);
        mpfr_sub(r56806, r56804, r56805, MPFR_RNDN);
        ;
        mpfr_add(r56808, r56804, r56805, MPFR_RNDN);
        mpfr_sub(r56809, r56807, r56808, MPFR_RNDN);
        mpfr_div(r56810, r56806, r56809, MPFR_RNDN);
        return mpfr_get_d(r56810, MPFR_RNDN);
}

static mpfr_t r56811, r56812, r56813, r56814, r56815, r56816, r56817;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r56811);
        mpfr_init(r56812);
        mpfr_init(r56813);
        mpfr_init_set_str(r56814, "2.0", 10, MPFR_RNDN);
        mpfr_init(r56815);
        mpfr_init(r56816);
        mpfr_init(r56817);
}

double f_dm(double x, double y) {
        mpfr_set_d(r56811, x, MPFR_RNDN);
        mpfr_set_d(r56812, y, MPFR_RNDN);
        mpfr_sub(r56813, r56811, r56812, MPFR_RNDN);
        ;
        mpfr_add(r56815, r56811, r56812, MPFR_RNDN);
        mpfr_sub(r56816, r56814, r56815, MPFR_RNDN);
        mpfr_div(r56817, r56813, r56816, MPFR_RNDN);
        return mpfr_get_d(r56817, MPFR_RNDN);
}

