#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, H";

double f_if(float x, float y) {
        float r35444 = x;
        float r35445 = 1.0;
        float r35446 = y;
        float r35447 = r35445 - r35446;
        float r35448 = r35444 * r35447;
        return r35448;
}

double f_id(double x, double y) {
        double r35449 = x;
        double r35450 = 1.0;
        double r35451 = y;
        double r35452 = r35450 - r35451;
        double r35453 = r35449 * r35452;
        return r35453;
}


double f_of(float x, float y) {
        float r35454 = x;
        float r35455 = 1.0;
        float r35456 = y;
        float r35457 = r35455 - r35456;
        float r35458 = r35454 * r35457;
        return r35458;
}

double f_od(double x, double y) {
        double r35459 = x;
        double r35460 = 1.0;
        double r35461 = y;
        double r35462 = r35460 - r35461;
        double r35463 = r35459 * r35462;
        return r35463;
}

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 r35464, r35465, r35466, r35467, r35468;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35464);
        mpfr_init_set_str(r35465, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35466);
        mpfr_init(r35467);
        mpfr_init(r35468);
}

double f_im(double x, double y) {
        mpfr_set_d(r35464, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35466, y, MPFR_RNDN);
        mpfr_sub(r35467, r35465, r35466, MPFR_RNDN);
        mpfr_mul(r35468, r35464, r35467, MPFR_RNDN);
        return mpfr_get_d(r35468, MPFR_RNDN);
}

static mpfr_t r35469, r35470, r35471, r35472, r35473;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35469);
        mpfr_init_set_str(r35470, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35471);
        mpfr_init(r35472);
        mpfr_init(r35473);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35469, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35471, y, MPFR_RNDN);
        mpfr_sub(r35472, r35470, r35471, MPFR_RNDN);
        mpfr_mul(r35473, r35469, r35472, MPFR_RNDN);
        return mpfr_get_d(r35473, MPFR_RNDN);
}

static mpfr_t r35474, r35475, r35476, r35477, r35478;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35474);
        mpfr_init_set_str(r35475, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35476);
        mpfr_init(r35477);
        mpfr_init(r35478);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35474, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35476, y, MPFR_RNDN);
        mpfr_sub(r35477, r35475, r35476, MPFR_RNDN);
        mpfr_mul(r35478, r35474, r35477, MPFR_RNDN);
        return mpfr_get_d(r35478, MPFR_RNDN);
}

