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

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

double f_if(float x, float y) {
        float r35353 = x;
        float r35354 = y;
        float r35355 = r35353 + r35354;
        float r35356 = 1.0;
        float r35357 = r35354 + r35356;
        float r35358 = r35355 / r35357;
        return r35358;
}

double f_id(double x, double y) {
        double r35359 = x;
        double r35360 = y;
        double r35361 = r35359 + r35360;
        double r35362 = 1.0;
        double r35363 = r35360 + r35362;
        double r35364 = r35361 / r35363;
        return r35364;
}


double f_of(float x, float y) {
        float r35365 = x;
        float r35366 = y;
        float r35367 = r35365 + r35366;
        float r35368 = 1.0;
        float r35369 = r35366 + r35368;
        float r35370 = r35367 / r35369;
        return r35370;
}

double f_od(double x, double y) {
        double r35371 = x;
        double r35372 = y;
        double r35373 = r35371 + r35372;
        double r35374 = 1.0;
        double r35375 = r35372 + r35374;
        double r35376 = r35373 / r35375;
        return r35376;
}

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 r35377, r35378, r35379, r35380, r35381, r35382;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35377);
        mpfr_init(r35378);
        mpfr_init(r35379);
        mpfr_init_set_str(r35380, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35381);
        mpfr_init(r35382);
}

double f_im(double x, double y) {
        mpfr_set_d(r35377, x, MPFR_RNDN);
        mpfr_set_d(r35378, y, MPFR_RNDN);
        mpfr_add(r35379, r35377, r35378, MPFR_RNDN);
        ;
        mpfr_add(r35381, r35378, r35380, MPFR_RNDN);
        mpfr_div(r35382, r35379, r35381, MPFR_RNDN);
        return mpfr_get_d(r35382, MPFR_RNDN);
}

static mpfr_t r35383, r35384, r35385, r35386, r35387, r35388;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35383);
        mpfr_init(r35384);
        mpfr_init(r35385);
        mpfr_init_set_str(r35386, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35387);
        mpfr_init(r35388);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35383, x, MPFR_RNDN);
        mpfr_set_d(r35384, y, MPFR_RNDN);
        mpfr_add(r35385, r35383, r35384, MPFR_RNDN);
        ;
        mpfr_add(r35387, r35384, r35386, MPFR_RNDN);
        mpfr_div(r35388, r35385, r35387, MPFR_RNDN);
        return mpfr_get_d(r35388, MPFR_RNDN);
}

static mpfr_t r35389, r35390, r35391, r35392, r35393, r35394;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35389);
        mpfr_init(r35390);
        mpfr_init(r35391);
        mpfr_init_set_str(r35392, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35393);
        mpfr_init(r35394);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35389, x, MPFR_RNDN);
        mpfr_set_d(r35390, y, MPFR_RNDN);
        mpfr_add(r35391, r35389, r35390, MPFR_RNDN);
        ;
        mpfr_add(r35393, r35390, r35392, MPFR_RNDN);
        mpfr_div(r35394, r35391, r35393, MPFR_RNDN);
        return mpfr_get_d(r35394, MPFR_RNDN);
}

