#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 r56818 = 60.0;
        float r56819 = x;
        float r56820 = y;
        float r56821 = r56819 - r56820;
        float r56822 = r56818 * r56821;
        float r56823 = z;
        float r56824 = t;
        float r56825 = r56823 - r56824;
        float r56826 = r56822 / r56825;
        float r56827 = a;
        float r56828 = 120.0;
        float r56829 = r56827 * r56828;
        float r56830 = r56826 + r56829;
        return r56830;
}

double f_id(double x, double y, double z, double t, double a) {
        double r56831 = 60.0;
        double r56832 = x;
        double r56833 = y;
        double r56834 = r56832 - r56833;
        double r56835 = r56831 * r56834;
        double r56836 = z;
        double r56837 = t;
        double r56838 = r56836 - r56837;
        double r56839 = r56835 / r56838;
        double r56840 = a;
        double r56841 = 120.0;
        double r56842 = r56840 * r56841;
        double r56843 = r56839 + r56842;
        return r56843;
}


double f_of(float x, float y, float z, float t, float a) {
        float r56844 = 60.0;
        float r56845 = z;
        float r56846 = t;
        float r56847 = r56845 - r56846;
        float r56848 = x;
        float r56849 = y;
        float r56850 = r56848 - r56849;
        float r56851 = r56847 / r56850;
        float r56852 = r56844 / r56851;
        float r56853 = a;
        float r56854 = 120.0;
        float r56855 = r56853 * r56854;
        float r56856 = r56852 + r56855;
        return r56856;
}

double f_od(double x, double y, double z, double t, double a) {
        double r56857 = 60.0;
        double r56858 = z;
        double r56859 = t;
        double r56860 = r56858 - r56859;
        double r56861 = x;
        double r56862 = y;
        double r56863 = r56861 - r56862;
        double r56864 = r56860 / r56863;
        double r56865 = r56857 / r56864;
        double r56866 = a;
        double r56867 = 120.0;
        double r56868 = r56866 * r56867;
        double r56869 = r56865 + r56868;
        return r56869;
}

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 r56870, r56871, r56872, r56873, r56874, r56875, r56876, r56877, r56878, r56879, r56880, r56881, r56882;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r56870, "60.0", 10, MPFR_RNDN);
        mpfr_init(r56871);
        mpfr_init(r56872);
        mpfr_init(r56873);
        mpfr_init(r56874);
        mpfr_init(r56875);
        mpfr_init(r56876);
        mpfr_init(r56877);
        mpfr_init(r56878);
        mpfr_init(r56879);
        mpfr_init_set_str(r56880, "120.0", 10, MPFR_RNDN);
        mpfr_init(r56881);
        mpfr_init(r56882);
}

double f_im(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r56871, x, MPFR_RNDN);
        mpfr_set_d(r56872, y, MPFR_RNDN);
        mpfr_sub(r56873, r56871, r56872, MPFR_RNDN);
        mpfr_mul(r56874, r56870, r56873, MPFR_RNDN);
        mpfr_set_d(r56875, z, MPFR_RNDN);
        mpfr_set_d(r56876, t, MPFR_RNDN);
        mpfr_sub(r56877, r56875, r56876, MPFR_RNDN);
        mpfr_div(r56878, r56874, r56877, MPFR_RNDN);
        mpfr_set_d(r56879, a, MPFR_RNDN);
        ;
        mpfr_mul(r56881, r56879, r56880, MPFR_RNDN);
        mpfr_add(r56882, r56878, r56881, MPFR_RNDN);
        return mpfr_get_d(r56882, MPFR_RNDN);
}

static mpfr_t r56883, r56884, r56885, r56886, r56887, r56888, r56889, r56890, r56891, r56892, r56893, r56894, r56895;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r56883, "60.0", 10, MPFR_RNDN);
        mpfr_init(r56884);
        mpfr_init(r56885);
        mpfr_init(r56886);
        mpfr_init(r56887);
        mpfr_init(r56888);
        mpfr_init(r56889);
        mpfr_init(r56890);
        mpfr_init(r56891);
        mpfr_init(r56892);
        mpfr_init_set_str(r56893, "120.0", 10, MPFR_RNDN);
        mpfr_init(r56894);
        mpfr_init(r56895);
}

double f_fm(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r56884, z, MPFR_RNDN);
        mpfr_set_d(r56885, t, MPFR_RNDN);
        mpfr_sub(r56886, r56884, r56885, MPFR_RNDN);
        mpfr_set_d(r56887, x, MPFR_RNDN);
        mpfr_set_d(r56888, y, MPFR_RNDN);
        mpfr_sub(r56889, r56887, r56888, MPFR_RNDN);
        mpfr_div(r56890, r56886, r56889, MPFR_RNDN);
        mpfr_div(r56891, r56883, r56890, MPFR_RNDN);
        mpfr_set_d(r56892, a, MPFR_RNDN);
        ;
        mpfr_mul(r56894, r56892, r56893, MPFR_RNDN);
        mpfr_add(r56895, r56891, r56894, MPFR_RNDN);
        return mpfr_get_d(r56895, MPFR_RNDN);
}

static mpfr_t r56896, r56897, r56898, r56899, r56900, r56901, r56902, r56903, r56904, r56905, r56906, r56907, r56908;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2192);
        mpfr_init_set_str(r56896, "60.0", 10, MPFR_RNDN);
        mpfr_init(r56897);
        mpfr_init(r56898);
        mpfr_init(r56899);
        mpfr_init(r56900);
        mpfr_init(r56901);
        mpfr_init(r56902);
        mpfr_init(r56903);
        mpfr_init(r56904);
        mpfr_init(r56905);
        mpfr_init_set_str(r56906, "120.0", 10, MPFR_RNDN);
        mpfr_init(r56907);
        mpfr_init(r56908);
}

double f_dm(double x, double y, double z, double t, double a) {
        ;
        mpfr_set_d(r56897, z, MPFR_RNDN);
        mpfr_set_d(r56898, t, MPFR_RNDN);
        mpfr_sub(r56899, r56897, r56898, MPFR_RNDN);
        mpfr_set_d(r56900, x, MPFR_RNDN);
        mpfr_set_d(r56901, y, MPFR_RNDN);
        mpfr_sub(r56902, r56900, r56901, MPFR_RNDN);
        mpfr_div(r56903, r56899, r56902, MPFR_RNDN);
        mpfr_div(r56904, r56896, r56903, MPFR_RNDN);
        mpfr_set_d(r56905, a, MPFR_RNDN);
        ;
        mpfr_mul(r56907, r56905, r56906, MPFR_RNDN);
        mpfr_add(r56908, r56904, r56907, MPFR_RNDN);
        return mpfr_get_d(r56908, MPFR_RNDN);
}

