#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 r35464 = x;
        float r35465 = 1.0;
        float r35466 = y;
        float r35467 = r35465 - r35466;
        float r35468 = r35464 * r35467;
        return r35468;
}

double f_id(double x, double y) {
        double r35469 = x;
        double r35470 = 1.0;
        double r35471 = y;
        double r35472 = r35470 - r35471;
        double r35473 = r35469 * r35472;
        return r35473;
}


double f_of(float x, float y) {
        float r35474 = x;
        float r35475 = 1.0;
        float r35476 = y;
        float r35477 = r35475 - r35476;
        float r35478 = r35474 * r35477;
        return r35478;
}

double f_od(double x, double y) {
        double r35479 = x;
        double r35480 = 1.0;
        double r35481 = y;
        double r35482 = r35480 - r35481;
        double r35483 = r35479 * r35482;
        return r35483;
}

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 r35484, r35485, r35486, r35487, r35488;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35484);
        mpfr_init_set_str(r35485, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35486);
        mpfr_init(r35487);
        mpfr_init(r35488);
}

double f_im(double x, double y) {
        mpfr_set_d(r35484, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35486, y, MPFR_RNDN);
        mpfr_sub(r35487, r35485, r35486, MPFR_RNDN);
        mpfr_mul(r35488, r35484, r35487, MPFR_RNDN);
        return mpfr_get_d(r35488, MPFR_RNDN);
}

static mpfr_t r35489, r35490, r35491, r35492, r35493;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35489);
        mpfr_init_set_str(r35490, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35491);
        mpfr_init(r35492);
        mpfr_init(r35493);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35489, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35491, y, MPFR_RNDN);
        mpfr_sub(r35492, r35490, r35491, MPFR_RNDN);
        mpfr_mul(r35493, r35489, r35492, MPFR_RNDN);
        return mpfr_get_d(r35493, MPFR_RNDN);
}

static mpfr_t r35494, r35495, r35496, r35497, r35498;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35494);
        mpfr_init_set_str(r35495, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35496);
        mpfr_init(r35497);
        mpfr_init(r35498);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35494, x, MPFR_RNDN);
        ;
        mpfr_set_d(r35496, y, MPFR_RNDN);
        mpfr_sub(r35497, r35495, r35496, MPFR_RNDN);
        mpfr_mul(r35498, r35494, r35497, MPFR_RNDN);
        return mpfr_get_d(r35498, MPFR_RNDN);
}

