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

char *name = "Data.Colour.CIE.Chromaticity:chromaCoords from colour-2.3.3";

double f_if(float x, float y) {
        float r36031 = 1.0;
        float r36032 = x;
        float r36033 = r36031 - r36032;
        float r36034 = y;
        float r36035 = r36033 - r36034;
        return r36035;
}

double f_id(double x, double y) {
        double r36036 = 1.0;
        double r36037 = x;
        double r36038 = r36036 - r36037;
        double r36039 = y;
        double r36040 = r36038 - r36039;
        return r36040;
}


double f_of(float x, float y) {
        float r36041 = 1.0;
        float r36042 = x;
        float r36043 = r36041 - r36042;
        float r36044 = y;
        float r36045 = r36043 - r36044;
        return r36045;
}

double f_od(double x, double y) {
        double r36046 = 1.0;
        double r36047 = x;
        double r36048 = r36046 - r36047;
        double r36049 = y;
        double r36050 = r36048 - r36049;
        return r36050;
}

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 r36051, r36052, r36053, r36054, r36055;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r36051, "1.0", 10, MPFR_RNDN);
        mpfr_init(r36052);
        mpfr_init(r36053);
        mpfr_init(r36054);
        mpfr_init(r36055);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r36052, x, MPFR_RNDN);
        mpfr_sub(r36053, r36051, r36052, MPFR_RNDN);
        mpfr_set_d(r36054, y, MPFR_RNDN);
        mpfr_sub(r36055, r36053, r36054, MPFR_RNDN);
        return mpfr_get_d(r36055, MPFR_RNDN);
}

static mpfr_t r36056, r36057, r36058, r36059, r36060;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r36056, "1.0", 10, MPFR_RNDN);
        mpfr_init(r36057);
        mpfr_init(r36058);
        mpfr_init(r36059);
        mpfr_init(r36060);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r36057, x, MPFR_RNDN);
        mpfr_sub(r36058, r36056, r36057, MPFR_RNDN);
        mpfr_set_d(r36059, y, MPFR_RNDN);
        mpfr_sub(r36060, r36058, r36059, MPFR_RNDN);
        return mpfr_get_d(r36060, MPFR_RNDN);
}

static mpfr_t r36061, r36062, r36063, r36064, r36065;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r36061, "1.0", 10, MPFR_RNDN);
        mpfr_init(r36062);
        mpfr_init(r36063);
        mpfr_init(r36064);
        mpfr_init(r36065);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r36062, x, MPFR_RNDN);
        mpfr_sub(r36063, r36061, r36062, MPFR_RNDN);
        mpfr_set_d(r36064, y, MPFR_RNDN);
        mpfr_sub(r36065, r36063, r36064, MPFR_RNDN);
        return mpfr_get_d(r36065, MPFR_RNDN);
}

