#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 r34994 = x;
        float r34995 = 1.0;
        float r34996 = y;
        float r34997 = r34995 - r34996;
        float r34998 = r34994 * r34997;
        return r34998;
}

double f_id(double x, double y) {
        double r34999 = x;
        double r35000 = 1.0;
        double r35001 = y;
        double r35002 = r35000 - r35001;
        double r35003 = r34999 * r35002;
        return r35003;
}


double f_of(float x, float y) {
        float r35004 = x;
        float r35005 = 1.0;
        float r35006 = y;
        float r35007 = r35005 - r35006;
        float r35008 = r35004 * r35007;
        return r35008;
}

double f_od(double x, double y) {
        double r35009 = x;
        double r35010 = 1.0;
        double r35011 = y;
        double r35012 = r35010 - r35011;
        double r35013 = r35009 * r35012;
        return r35013;
}

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 r35014, r35015, r35016, r35017, r35018;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35014);
        mpfr_init_set_str(r35015, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35016);
        mpfr_init(r35017);
        mpfr_init(r35018);
}

double f_im(double x, double y) {
        mpfr_set_d(r35014, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35016, y, MPFR_RNDN);
        mpfr_sub(r35017, r35015, r35016, MPFR_RNDN);
        mpfr_mul(r35018, r35014, r35017, MPFR_RNDN);
        return mpfr_get_d(r35018, MPFR_RNDN);
}

static mpfr_t r35019, r35020, r35021, r35022, r35023;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35019);
        mpfr_init_set_str(r35020, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35021);
        mpfr_init(r35022);
        mpfr_init(r35023);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35019, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35021, y, MPFR_RNDN);
        mpfr_sub(r35022, r35020, r35021, MPFR_RNDN);
        mpfr_mul(r35023, r35019, r35022, MPFR_RNDN);
        return mpfr_get_d(r35023, MPFR_RNDN);
}

static mpfr_t r35024, r35025, r35026, r35027, r35028;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35024);
        mpfr_init_set_str(r35025, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35026);
        mpfr_init(r35027);
        mpfr_init(r35028);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35024, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35026, y, MPFR_RNDN);
        mpfr_sub(r35027, r35025, r35026, MPFR_RNDN);
        mpfr_mul(r35028, r35024, r35027, MPFR_RNDN);
        return mpfr_get_d(r35028, MPFR_RNDN);
}

