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

char *name = "Data.Colour.SRGB:transferFunction from colour-2.3.3";

double f_if(float x, float y) {
        float r35503 = x;
        float r35504 = 1.0;
        float r35505 = r35503 + r35504;
        float r35506 = y;
        float r35507 = r35505 * r35506;
        float r35508 = r35507 - r35503;
        return r35508;
}

double f_id(double x, double y) {
        double r35509 = x;
        double r35510 = 1.0;
        double r35511 = r35509 + r35510;
        double r35512 = y;
        double r35513 = r35511 * r35512;
        double r35514 = r35513 - r35509;
        return r35514;
}


double f_of(float x, float y) {
        float r35515 = x;
        float r35516 = 1.0;
        float r35517 = r35515 + r35516;
        float r35518 = y;
        float r35519 = r35517 * r35518;
        float r35520 = r35519 - r35515;
        return r35520;
}

double f_od(double x, double y) {
        double r35521 = x;
        double r35522 = 1.0;
        double r35523 = r35521 + r35522;
        double r35524 = y;
        double r35525 = r35523 * r35524;
        double r35526 = r35525 - r35521;
        return r35526;
}

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 r35527, r35528, r35529, r35530, r35531, r35532;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init(r35527);
        mpfr_init_set_str(r35528, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35529);
        mpfr_init(r35530);
        mpfr_init(r35531);
        mpfr_init(r35532);
}

double f_im(double x, double y) {
        mpfr_set_d(r35527, x, MPFR_RNDN);
        ;
        mpfr_add(r35529, r35527, r35528, MPFR_RNDN);
        mpfr_set_d(r35530, y, MPFR_RNDN);
        mpfr_mul(r35531, r35529, r35530, MPFR_RNDN);
        mpfr_sub(r35532, r35531, r35527, MPFR_RNDN);
        return mpfr_get_d(r35532, MPFR_RNDN);
}

static mpfr_t r35533, r35534, r35535, r35536, r35537, r35538;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init(r35533);
        mpfr_init_set_str(r35534, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35535);
        mpfr_init(r35536);
        mpfr_init(r35537);
        mpfr_init(r35538);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35533, x, MPFR_RNDN);
        ;
        mpfr_add(r35535, r35533, r35534, MPFR_RNDN);
        mpfr_set_d(r35536, y, MPFR_RNDN);
        mpfr_mul(r35537, r35535, r35536, MPFR_RNDN);
        mpfr_sub(r35538, r35537, r35533, MPFR_RNDN);
        return mpfr_get_d(r35538, MPFR_RNDN);
}

static mpfr_t r35539, r35540, r35541, r35542, r35543, r35544;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init(r35539);
        mpfr_init_set_str(r35540, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35541);
        mpfr_init(r35542);
        mpfr_init(r35543);
        mpfr_init(r35544);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35539, x, MPFR_RNDN);
        ;
        mpfr_add(r35541, r35539, r35540, MPFR_RNDN);
        mpfr_set_d(r35542, y, MPFR_RNDN);
        mpfr_mul(r35543, r35541, r35542, MPFR_RNDN);
        mpfr_sub(r35544, r35543, r35539, MPFR_RNDN);
        return mpfr_get_d(r35544, MPFR_RNDN);
}

