#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 r56169 = 60.0f;
        float r56170 = x;
        float r56171 = y;
        float r56172 = r56170 - r56171;
        float r56173 = r56169 * r56172;
        float r56174 = z;
        float r56175 = t;
        float r56176 = r56174 - r56175;
        float r56177 = r56173 / r56176;
        float r56178 = a;
        float r56179 = 120.0f;
        float r56180 = r56178 * r56179;
        float r56181 = r56177 + r56180;
        return r56181;
}

double f_id(double x, double y, double z, double t, double a) {
        double r56182 = 60.0;
        double r56183 = x;
        double r56184 = y;
        double r56185 = r56183 - r56184;
        double r56186 = r56182 * r56185;
        double r56187 = z;
        double r56188 = t;
        double r56189 = r56187 - r56188;
        double r56190 = r56186 / r56189;
        double r56191 = a;
        double r56192 = 120.0;
        double r56193 = r56191 * r56192;
        double r56194 = r56190 + r56193;
        return r56194;
}


double f_of(float x, float y, float z, float t, float a) {
        float r56195 = x;
        float r56196 = y;
        float r56197 = r56195 - r56196;
        float r56198 = z;
        float r56199 = t;
        float r56200 = r56198 - r56199;
        float r56201 = r56197 / r56200;
        float r56202 = 60.0f;
        float r56203 = r56201 * r56202;
        float r56204 = a;
        float r56205 = 120.0f;
        float r56206 = r56204 * r56205;
        float r56207 = r56203 + r56206;
        return r56207;
}

double f_od(double x, double y, double z, double t, double a) {
        double r56208 = x;
        double r56209 = y;
        double r56210 = r56208 - r56209;
        double r56211 = z;
        double r56212 = t;
        double r56213 = r56211 - r56212;
        double r56214 = r56210 / r56213;
        double r56215 = 60.0;
        double r56216 = r56214 * r56215;
        double r56217 = a;
        double r56218 = 120.0;
        double r56219 = r56217 * r56218;
        double r56220 = r56216 + r56219;
        return r56220;
}

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 r56221, r56222, r56223, r56224, r56225, r56226, r56227, r56228, r56229, r56230, r56231, r56232, r56233;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r56221, "60.0", 10, MPFR_RNDN);
        mpfr_init(r56222);
        mpfr_init(r56223);
        mpfr_init(r56224);
        mpfr_init(r56225);
        mpfr_init(r56226);
        mpfr_init(r56227);
        mpfr_init(r56228);
        mpfr_init(r56229);
        mpfr_init(r56230);
        mpfr_init_set_str(r56231, "120.0", 10, MPFR_RNDN);
        mpfr_init(r56232);
        mpfr_init(r56233);
}

double f_im(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r56222, x, MPFR_RNDN);
        mpfr_set_d(r56223, y, MPFR_RNDN);
        mpfr_sub(r56224, r56222, r56223, MPFR_RNDN);
        mpfr_mul(r56225, r56221, r56224, MPFR_RNDN);
        mpfr_set_d(r56226, z, MPFR_RNDN);
        mpfr_set_d(r56227, t, MPFR_RNDN);
        mpfr_sub(r56228, r56226, r56227, MPFR_RNDN);
        mpfr_div(r56229, r56225, r56228, MPFR_RNDN);
        mpfr_set_d(r56230, a, MPFR_RNDN);
        ;
        mpfr_mul(r56232, r56230, r56231, MPFR_RNDN);
        mpfr_add(r56233, r56229, r56232, MPFR_RNDN);
        return mpfr_get_d(r56233, MPFR_RNDN);
}

static mpfr_t r56234, r56235, r56236, r56237, r56238, r56239, r56240, r56241, r56242, r56243, r56244, r56245, r56246;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56234);
        mpfr_init(r56235);
        mpfr_init(r56236);
        mpfr_init(r56237);
        mpfr_init(r56238);
        mpfr_init(r56239);
        mpfr_init(r56240);
        mpfr_init_set_str(r56241, "60.0", 10, MPFR_RNDN);
        mpfr_init(r56242);
        mpfr_init(r56243);
        mpfr_init_set_str(r56244, "120.0", 10, MPFR_RNDN);
        mpfr_init(r56245);
        mpfr_init(r56246);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r56234, x, MPFR_RNDN);
        mpfr_set_d(r56235, y, MPFR_RNDN);
        mpfr_sub(r56236, r56234, r56235, MPFR_RNDN);
        mpfr_set_d(r56237, z, MPFR_RNDN);
        mpfr_set_d(r56238, t, MPFR_RNDN);
        mpfr_sub(r56239, r56237, r56238, MPFR_RNDN);
        mpfr_div(r56240, r56236, r56239, MPFR_RNDN);
        ;
        mpfr_mul(r56242, r56240, r56241, MPFR_RNDN);
        mpfr_set_d(r56243, a, MPFR_RNDN);
        ;
        mpfr_mul(r56245, r56243, r56244, MPFR_RNDN);
        mpfr_add(r56246, r56242, r56245, MPFR_RNDN);
        return mpfr_get_d(r56246, MPFR_RNDN);
}

static mpfr_t r56247, r56248, r56249, r56250, r56251, r56252, r56253, r56254, r56255, r56256, r56257, r56258, r56259;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56247);
        mpfr_init(r56248);
        mpfr_init(r56249);
        mpfr_init(r56250);
        mpfr_init(r56251);
        mpfr_init(r56252);
        mpfr_init(r56253);
        mpfr_init_set_str(r56254, "60.0", 10, MPFR_RNDN);
        mpfr_init(r56255);
        mpfr_init(r56256);
        mpfr_init_set_str(r56257, "120.0", 10, MPFR_RNDN);
        mpfr_init(r56258);
        mpfr_init(r56259);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r56247, x, MPFR_RNDN);
        mpfr_set_d(r56248, y, MPFR_RNDN);
        mpfr_sub(r56249, r56247, r56248, MPFR_RNDN);
        mpfr_set_d(r56250, z, MPFR_RNDN);
        mpfr_set_d(r56251, t, MPFR_RNDN);
        mpfr_sub(r56252, r56250, r56251, MPFR_RNDN);
        mpfr_div(r56253, r56249, r56252, MPFR_RNDN);
        ;
        mpfr_mul(r56255, r56253, r56254, MPFR_RNDN);
        mpfr_set_d(r56256, a, MPFR_RNDN);
        ;
        mpfr_mul(r56258, r56256, r56257, MPFR_RNDN);
        mpfr_add(r56259, r56255, r56258, MPFR_RNDN);
        return mpfr_get_d(r56259, MPFR_RNDN);
}

