#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 r56998 = 60.0;
        float r56999 = x;
        float r57000 = y;
        float r57001 = r56999 - r57000;
        float r57002 = r56998 * r57001;
        float r57003 = z;
        float r57004 = t;
        float r57005 = r57003 - r57004;
        float r57006 = r57002 / r57005;
        float r57007 = a;
        float r57008 = 120.0;
        float r57009 = r57007 * r57008;
        float r57010 = r57006 + r57009;
        return r57010;
}

double f_id(double x, double y, double z, double t, double a) {
        double r57011 = 60.0;
        double r57012 = x;
        double r57013 = y;
        double r57014 = r57012 - r57013;
        double r57015 = r57011 * r57014;
        double r57016 = z;
        double r57017 = t;
        double r57018 = r57016 - r57017;
        double r57019 = r57015 / r57018;
        double r57020 = a;
        double r57021 = 120.0;
        double r57022 = r57020 * r57021;
        double r57023 = r57019 + r57022;
        return r57023;
}


double f_of(float x, float y, float z, float t, float a) {
        float r57024 = 60.0;
        float r57025 = z;
        float r57026 = t;
        float r57027 = r57025 - r57026;
        float r57028 = x;
        float r57029 = y;
        float r57030 = r57028 - r57029;
        float r57031 = r57027 / r57030;
        float r57032 = r57024 / r57031;
        float r57033 = a;
        float r57034 = 120.0;
        float r57035 = r57033 * r57034;
        float r57036 = r57032 + r57035;
        return r57036;
}

double f_od(double x, double y, double z, double t, double a) {
        double r57037 = 60.0;
        double r57038 = z;
        double r57039 = t;
        double r57040 = r57038 - r57039;
        double r57041 = x;
        double r57042 = y;
        double r57043 = r57041 - r57042;
        double r57044 = r57040 / r57043;
        double r57045 = r57037 / r57044;
        double r57046 = a;
        double r57047 = 120.0;
        double r57048 = r57046 * r57047;
        double r57049 = r57045 + r57048;
        return r57049;
}

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 r57050, r57051, r57052, r57053, r57054, r57055, r57056, r57057, r57058, r57059, r57060, r57061, r57062;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r57050, "60.0", 10, MPFR_RNDN);
        mpfr_init(r57051);
        mpfr_init(r57052);
        mpfr_init(r57053);
        mpfr_init(r57054);
        mpfr_init(r57055);
        mpfr_init(r57056);
        mpfr_init(r57057);
        mpfr_init(r57058);
        mpfr_init(r57059);
        mpfr_init_set_str(r57060, "120.0", 10, MPFR_RNDN);
        mpfr_init(r57061);
        mpfr_init(r57062);
}

double f_im(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r57051, x, MPFR_RNDN);
        mpfr_set_d(r57052, y, MPFR_RNDN);
        mpfr_sub(r57053, r57051, r57052, MPFR_RNDN);
        mpfr_mul(r57054, r57050, r57053, MPFR_RNDN);
        mpfr_set_d(r57055, z, MPFR_RNDN);
        mpfr_set_d(r57056, t, MPFR_RNDN);
        mpfr_sub(r57057, r57055, r57056, MPFR_RNDN);
        mpfr_div(r57058, r57054, r57057, MPFR_RNDN);
        mpfr_set_d(r57059, a, MPFR_RNDN);
        ;
        mpfr_mul(r57061, r57059, r57060, MPFR_RNDN);
        mpfr_add(r57062, r57058, r57061, MPFR_RNDN);
        return mpfr_get_d(r57062, MPFR_RNDN);
}

static mpfr_t r57063, r57064, r57065, r57066, r57067, r57068, r57069, r57070, r57071, r57072, r57073, r57074, r57075;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r57063, "60.0", 10, MPFR_RNDN);
        mpfr_init(r57064);
        mpfr_init(r57065);
        mpfr_init(r57066);
        mpfr_init(r57067);
        mpfr_init(r57068);
        mpfr_init(r57069);
        mpfr_init(r57070);
        mpfr_init(r57071);
        mpfr_init(r57072);
        mpfr_init_set_str(r57073, "120.0", 10, MPFR_RNDN);
        mpfr_init(r57074);
        mpfr_init(r57075);
}

double f_fm(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r57064, z, MPFR_RNDN);
        mpfr_set_d(r57065, t, MPFR_RNDN);
        mpfr_sub(r57066, r57064, r57065, MPFR_RNDN);
        mpfr_set_d(r57067, x, MPFR_RNDN);
        mpfr_set_d(r57068, y, MPFR_RNDN);
        mpfr_sub(r57069, r57067, r57068, MPFR_RNDN);
        mpfr_div(r57070, r57066, r57069, MPFR_RNDN);
        mpfr_div(r57071, r57063, r57070, MPFR_RNDN);
        mpfr_set_d(r57072, a, MPFR_RNDN);
        ;
        mpfr_mul(r57074, r57072, r57073, MPFR_RNDN);
        mpfr_add(r57075, r57071, r57074, MPFR_RNDN);
        return mpfr_get_d(r57075, MPFR_RNDN);
}

static mpfr_t r57076, r57077, r57078, r57079, r57080, r57081, r57082, r57083, r57084, r57085, r57086, r57087, r57088;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r57076, "60.0", 10, MPFR_RNDN);
        mpfr_init(r57077);
        mpfr_init(r57078);
        mpfr_init(r57079);
        mpfr_init(r57080);
        mpfr_init(r57081);
        mpfr_init(r57082);
        mpfr_init(r57083);
        mpfr_init(r57084);
        mpfr_init(r57085);
        mpfr_init_set_str(r57086, "120.0", 10, MPFR_RNDN);
        mpfr_init(r57087);
        mpfr_init(r57088);
}

double f_dm(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r57077, z, MPFR_RNDN);
        mpfr_set_d(r57078, t, MPFR_RNDN);
        mpfr_sub(r57079, r57077, r57078, MPFR_RNDN);
        mpfr_set_d(r57080, x, MPFR_RNDN);
        mpfr_set_d(r57081, y, MPFR_RNDN);
        mpfr_sub(r57082, r57080, r57081, MPFR_RNDN);
        mpfr_div(r57083, r57079, r57082, MPFR_RNDN);
        mpfr_div(r57084, r57076, r57083, MPFR_RNDN);
        mpfr_set_d(r57085, a, MPFR_RNDN);
        ;
        mpfr_mul(r57087, r57085, r57086, MPFR_RNDN);
        mpfr_add(r57088, r57084, r57087, MPFR_RNDN);
        return mpfr_get_d(r57088, MPFR_RNDN);
}

