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

double f_if(float x, float y, float z, float t, float a) {
        float r55697 = 60.0;
        float r55698 = x;
        float r55699 = y;
        float r55700 = r55698 - r55699;
        float r55701 = r55697 * r55700;
        float r55702 = z;
        float r55703 = t;
        float r55704 = r55702 - r55703;
        float r55705 = r55701 / r55704;
        float r55706 = a;
        float r55707 = 120.0;
        float r55708 = r55706 * r55707;
        float r55709 = r55705 + r55708;
        return r55709;
}

double f_id(double x, double y, double z, double t, double a) {
        double r55710 = 60.0;
        double r55711 = x;
        double r55712 = y;
        double r55713 = r55711 - r55712;
        double r55714 = r55710 * r55713;
        double r55715 = z;
        double r55716 = t;
        double r55717 = r55715 - r55716;
        double r55718 = r55714 / r55717;
        double r55719 = a;
        double r55720 = 120.0;
        double r55721 = r55719 * r55720;
        double r55722 = r55718 + r55721;
        return r55722;
}


double f_of(float x, float y, float z, float t, float a) {
        float r55723 = 60.0;
        float r55724 = z;
        float r55725 = t;
        float r55726 = r55724 - r55725;
        float r55727 = x;
        float r55728 = y;
        float r55729 = r55727 - r55728;
        float r55730 = r55726 / r55729;
        float r55731 = r55723 / r55730;
        float r55732 = a;
        float r55733 = 120.0;
        float r55734 = r55732 * r55733;
        float r55735 = r55731 + r55734;
        return r55735;
}

double f_od(double x, double y, double z, double t, double a) {
        double r55736 = 60.0;
        double r55737 = z;
        double r55738 = t;
        double r55739 = r55737 - r55738;
        double r55740 = x;
        double r55741 = y;
        double r55742 = r55740 - r55741;
        double r55743 = r55739 / r55742;
        double r55744 = r55736 / r55743;
        double r55745 = a;
        double r55746 = 120.0;
        double r55747 = r55745 * r55746;
        double r55748 = r55744 + r55747;
        return r55748;
}

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 r55749, r55750, r55751, r55752, r55753, r55754, r55755, r55756, r55757, r55758, r55759, r55760, r55761;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r55749, "60.0", 10, MPFR_RNDN);
        mpfr_init(r55750);
        mpfr_init(r55751);
        mpfr_init(r55752);
        mpfr_init(r55753);
        mpfr_init(r55754);
        mpfr_init(r55755);
        mpfr_init(r55756);
        mpfr_init(r55757);
        mpfr_init(r55758);
        mpfr_init_set_str(r55759, "120.0", 10, MPFR_RNDN);
        mpfr_init(r55760);
        mpfr_init(r55761);
}

double f_im(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r55750, x, MPFR_RNDN);
        mpfr_set_d(r55751, y, MPFR_RNDN);
        mpfr_sub(r55752, r55750, r55751, MPFR_RNDN);
        mpfr_mul(r55753, r55749, r55752, MPFR_RNDN);
        mpfr_set_d(r55754, z, MPFR_RNDN);
        mpfr_set_d(r55755, t, MPFR_RNDN);
        mpfr_sub(r55756, r55754, r55755, MPFR_RNDN);
        mpfr_div(r55757, r55753, r55756, MPFR_RNDN);
        mpfr_set_d(r55758, a, MPFR_RNDN);
        ;
        mpfr_mul(r55760, r55758, r55759, MPFR_RNDN);
        mpfr_add(r55761, r55757, r55760, MPFR_RNDN);
        return mpfr_get_d(r55761, MPFR_RNDN);
}

static mpfr_t r55762, r55763, r55764, r55765, r55766, r55767, r55768, r55769, r55770, r55771, r55772, r55773, r55774;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r55762, "60.0", 10, MPFR_RNDN);
        mpfr_init(r55763);
        mpfr_init(r55764);
        mpfr_init(r55765);
        mpfr_init(r55766);
        mpfr_init(r55767);
        mpfr_init(r55768);
        mpfr_init(r55769);
        mpfr_init(r55770);
        mpfr_init(r55771);
        mpfr_init_set_str(r55772, "120.0", 10, MPFR_RNDN);
        mpfr_init(r55773);
        mpfr_init(r55774);
}

double f_fm(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r55763, z, MPFR_RNDN);
        mpfr_set_d(r55764, t, MPFR_RNDN);
        mpfr_sub(r55765, r55763, r55764, MPFR_RNDN);
        mpfr_set_d(r55766, x, MPFR_RNDN);
        mpfr_set_d(r55767, y, MPFR_RNDN);
        mpfr_sub(r55768, r55766, r55767, MPFR_RNDN);
        mpfr_div(r55769, r55765, r55768, MPFR_RNDN);
        mpfr_div(r55770, r55762, r55769, MPFR_RNDN);
        mpfr_set_d(r55771, a, MPFR_RNDN);
        ;
        mpfr_mul(r55773, r55771, r55772, MPFR_RNDN);
        mpfr_add(r55774, r55770, r55773, MPFR_RNDN);
        return mpfr_get_d(r55774, MPFR_RNDN);
}

static mpfr_t r55775, r55776, r55777, r55778, r55779, r55780, r55781, r55782, r55783, r55784, r55785, r55786, r55787;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r55775, "60.0", 10, MPFR_RNDN);
        mpfr_init(r55776);
        mpfr_init(r55777);
        mpfr_init(r55778);
        mpfr_init(r55779);
        mpfr_init(r55780);
        mpfr_init(r55781);
        mpfr_init(r55782);
        mpfr_init(r55783);
        mpfr_init(r55784);
        mpfr_init_set_str(r55785, "120.0", 10, MPFR_RNDN);
        mpfr_init(r55786);
        mpfr_init(r55787);
}

double f_dm(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r55776, z, MPFR_RNDN);
        mpfr_set_d(r55777, t, MPFR_RNDN);
        mpfr_sub(r55778, r55776, r55777, MPFR_RNDN);
        mpfr_set_d(r55779, x, MPFR_RNDN);
        mpfr_set_d(r55780, y, MPFR_RNDN);
        mpfr_sub(r55781, r55779, r55780, MPFR_RNDN);
        mpfr_div(r55782, r55778, r55781, MPFR_RNDN);
        mpfr_div(r55783, r55775, r55782, MPFR_RNDN);
        mpfr_set_d(r55784, a, MPFR_RNDN);
        ;
        mpfr_mul(r55786, r55784, r55785, MPFR_RNDN);
        mpfr_add(r55787, r55783, r55786, MPFR_RNDN);
        return mpfr_get_d(r55787, MPFR_RNDN);
}

