#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 r56876 = 60.0;
        float r56877 = x;
        float r56878 = y;
        float r56879 = r56877 - r56878;
        float r56880 = r56876 * r56879;
        float r56881 = z;
        float r56882 = t;
        float r56883 = r56881 - r56882;
        float r56884 = r56880 / r56883;
        float r56885 = a;
        float r56886 = 120.0;
        float r56887 = r56885 * r56886;
        float r56888 = r56884 + r56887;
        return r56888;
}

double f_id(double x, double y, double z, double t, double a) {
        double r56889 = 60.0;
        double r56890 = x;
        double r56891 = y;
        double r56892 = r56890 - r56891;
        double r56893 = r56889 * r56892;
        double r56894 = z;
        double r56895 = t;
        double r56896 = r56894 - r56895;
        double r56897 = r56893 / r56896;
        double r56898 = a;
        double r56899 = 120.0;
        double r56900 = r56898 * r56899;
        double r56901 = r56897 + r56900;
        return r56901;
}


double f_of(float x, float y, float z, float t, float a) {
        float r56902 = 60.0;
        float r56903 = z;
        float r56904 = t;
        float r56905 = r56903 - r56904;
        float r56906 = x;
        float r56907 = y;
        float r56908 = r56906 - r56907;
        float r56909 = r56905 / r56908;
        float r56910 = r56902 / r56909;
        float r56911 = a;
        float r56912 = 120.0;
        float r56913 = r56911 * r56912;
        float r56914 = r56910 + r56913;
        return r56914;
}

double f_od(double x, double y, double z, double t, double a) {
        double r56915 = 60.0;
        double r56916 = z;
        double r56917 = t;
        double r56918 = r56916 - r56917;
        double r56919 = x;
        double r56920 = y;
        double r56921 = r56919 - r56920;
        double r56922 = r56918 / r56921;
        double r56923 = r56915 / r56922;
        double r56924 = a;
        double r56925 = 120.0;
        double r56926 = r56924 * r56925;
        double r56927 = r56923 + r56926;
        return r56927;
}

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 r56928, r56929, r56930, r56931, r56932, r56933, r56934, r56935, r56936, r56937, r56938, r56939, r56940;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r56928, "60.0", 10, MPFR_RNDN);
        mpfr_init(r56929);
        mpfr_init(r56930);
        mpfr_init(r56931);
        mpfr_init(r56932);
        mpfr_init(r56933);
        mpfr_init(r56934);
        mpfr_init(r56935);
        mpfr_init(r56936);
        mpfr_init(r56937);
        mpfr_init_set_str(r56938, "120.0", 10, MPFR_RNDN);
        mpfr_init(r56939);
        mpfr_init(r56940);
}

double f_im(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r56929, x, MPFR_RNDN);
        mpfr_set_d(r56930, y, MPFR_RNDN);
        mpfr_sub(r56931, r56929, r56930, MPFR_RNDN);
        mpfr_mul(r56932, r56928, r56931, MPFR_RNDN);
        mpfr_set_d(r56933, z, MPFR_RNDN);
        mpfr_set_d(r56934, t, MPFR_RNDN);
        mpfr_sub(r56935, r56933, r56934, MPFR_RNDN);
        mpfr_div(r56936, r56932, r56935, MPFR_RNDN);
        mpfr_set_d(r56937, a, MPFR_RNDN);
        ;
        mpfr_mul(r56939, r56937, r56938, MPFR_RNDN);
        mpfr_add(r56940, r56936, r56939, MPFR_RNDN);
        return mpfr_get_d(r56940, MPFR_RNDN);
}

static mpfr_t r56941, r56942, r56943, r56944, r56945, r56946, r56947, r56948, r56949, r56950, r56951, r56952, r56953;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r56941, "60.0", 10, MPFR_RNDN);
        mpfr_init(r56942);
        mpfr_init(r56943);
        mpfr_init(r56944);
        mpfr_init(r56945);
        mpfr_init(r56946);
        mpfr_init(r56947);
        mpfr_init(r56948);
        mpfr_init(r56949);
        mpfr_init(r56950);
        mpfr_init_set_str(r56951, "120.0", 10, MPFR_RNDN);
        mpfr_init(r56952);
        mpfr_init(r56953);
}

double f_fm(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r56942, z, MPFR_RNDN);
        mpfr_set_d(r56943, t, MPFR_RNDN);
        mpfr_sub(r56944, r56942, r56943, MPFR_RNDN);
        mpfr_set_d(r56945, x, MPFR_RNDN);
        mpfr_set_d(r56946, y, MPFR_RNDN);
        mpfr_sub(r56947, r56945, r56946, MPFR_RNDN);
        mpfr_div(r56948, r56944, r56947, MPFR_RNDN);
        mpfr_div(r56949, r56941, r56948, MPFR_RNDN);
        mpfr_set_d(r56950, a, MPFR_RNDN);
        ;
        mpfr_mul(r56952, r56950, r56951, MPFR_RNDN);
        mpfr_add(r56953, r56949, r56952, MPFR_RNDN);
        return mpfr_get_d(r56953, MPFR_RNDN);
}

static mpfr_t r56954, r56955, r56956, r56957, r56958, r56959, r56960, r56961, r56962, r56963, r56964, r56965, r56966;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r56954, "60.0", 10, MPFR_RNDN);
        mpfr_init(r56955);
        mpfr_init(r56956);
        mpfr_init(r56957);
        mpfr_init(r56958);
        mpfr_init(r56959);
        mpfr_init(r56960);
        mpfr_init(r56961);
        mpfr_init(r56962);
        mpfr_init(r56963);
        mpfr_init_set_str(r56964, "120.0", 10, MPFR_RNDN);
        mpfr_init(r56965);
        mpfr_init(r56966);
}

double f_dm(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r56955, z, MPFR_RNDN);
        mpfr_set_d(r56956, t, MPFR_RNDN);
        mpfr_sub(r56957, r56955, r56956, MPFR_RNDN);
        mpfr_set_d(r56958, x, MPFR_RNDN);
        mpfr_set_d(r56959, y, MPFR_RNDN);
        mpfr_sub(r56960, r56958, r56959, MPFR_RNDN);
        mpfr_div(r56961, r56957, r56960, MPFR_RNDN);
        mpfr_div(r56962, r56954, r56961, MPFR_RNDN);
        mpfr_set_d(r56963, a, MPFR_RNDN);
        ;
        mpfr_mul(r56965, r56963, r56964, MPFR_RNDN);
        mpfr_add(r56966, r56962, r56965, MPFR_RNDN);
        return mpfr_get_d(r56966, MPFR_RNDN);
}

