#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Data.Colour.RGBSpace.HSV:hsv from colour-2.3.3, I";

double f_if(float x, float y, float z) {
        float r35415 = x;
        float r35416 = 1.0;
        float r35417 = y;
        float r35418 = z;
        float r35419 = r35417 * r35418;
        float r35420 = r35416 - r35419;
        float r35421 = r35415 * r35420;
        return r35421;
}

double f_id(double x, double y, double z) {
        double r35422 = x;
        double r35423 = 1.0;
        double r35424 = y;
        double r35425 = z;
        double r35426 = r35424 * r35425;
        double r35427 = r35423 - r35426;
        double r35428 = r35422 * r35427;
        return r35428;
}


double f_of(float x, float y, float z) {
        float r35429 = x;
        float r35430 = 1.0;
        float r35431 = y;
        float r35432 = z;
        float r35433 = r35431 * r35432;
        float r35434 = r35430 - r35433;
        float r35435 = r35429 * r35434;
        return r35435;
}

double f_od(double x, double y, double z) {
        double r35436 = x;
        double r35437 = 1.0;
        double r35438 = y;
        double r35439 = z;
        double r35440 = r35438 * r35439;
        double r35441 = r35437 - r35440;
        double r35442 = r35436 * r35441;
        return r35442;
}

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 r35443, r35444, r35445, r35446, r35447, r35448, r35449;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35443);
        mpfr_init_set_str(r35444, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35445);
        mpfr_init(r35446);
        mpfr_init(r35447);
        mpfr_init(r35448);
        mpfr_init(r35449);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r35443, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35445, y, MPFR_RNDN);
        mpfr_set_d(r35446, z, MPFR_RNDN);
        mpfr_mul(r35447, r35445, r35446, MPFR_RNDN);
        mpfr_sub(r35448, r35444, r35447, MPFR_RNDN);
        mpfr_mul(r35449, r35443, r35448, MPFR_RNDN);
        return mpfr_get_d(r35449, MPFR_RNDN);
}

static mpfr_t r35450, r35451, r35452, r35453, r35454, r35455, r35456;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35450);
        mpfr_init_set_str(r35451, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35452);
        mpfr_init(r35453);
        mpfr_init(r35454);
        mpfr_init(r35455);
        mpfr_init(r35456);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r35450, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35452, y, MPFR_RNDN);
        mpfr_set_d(r35453, z, MPFR_RNDN);
        mpfr_mul(r35454, r35452, r35453, MPFR_RNDN);
        mpfr_sub(r35455, r35451, r35454, MPFR_RNDN);
        mpfr_mul(r35456, r35450, r35455, MPFR_RNDN);
        return mpfr_get_d(r35456, MPFR_RNDN);
}

static mpfr_t r35457, r35458, r35459, r35460, r35461, r35462, r35463;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35457);
        mpfr_init_set_str(r35458, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35459);
        mpfr_init(r35460);
        mpfr_init(r35461);
        mpfr_init(r35462);
        mpfr_init(r35463);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r35457, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35459, y, MPFR_RNDN);
        mpfr_set_d(r35460, z, MPFR_RNDN);
        mpfr_mul(r35461, r35459, r35460, MPFR_RNDN);
        mpfr_sub(r35462, r35458, r35461, MPFR_RNDN);
        mpfr_mul(r35463, r35457, r35462, MPFR_RNDN);
        return mpfr_get_d(r35463, MPFR_RNDN);
}

