#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 r35112 = x;
        float r35113 = y;
        float r35114 = r35112 + r35113;
        float r35115 = 1.0;
        float r35116 = r35113 + r35115;
        float r35117 = r35114 / r35116;
        return r35117;
}

double f_id(double x, double y) {
        double r35118 = x;
        double r35119 = y;
        double r35120 = r35118 + r35119;
        double r35121 = 1.0;
        double r35122 = r35119 + r35121;
        double r35123 = r35120 / r35122;
        return r35123;
}


double f_of(float x, float y) {
        float r35124 = x;
        float r35125 = y;
        float r35126 = r35124 + r35125;
        float r35127 = 1.0;
        float r35128 = r35125 + r35127;
        float r35129 = r35126 / r35128;
        return r35129;
}

double f_od(double x, double y) {
        double r35130 = x;
        double r35131 = y;
        double r35132 = r35130 + r35131;
        double r35133 = 1.0;
        double r35134 = r35131 + r35133;
        double r35135 = r35132 / r35134;
        return r35135;
}

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 r35136, r35137, r35138, r35139, r35140, r35141;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r35136);
        mpfr_init(r35137);
        mpfr_init(r35138);
        mpfr_init_set_str(r35139, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35140);
        mpfr_init(r35141);
}

double f_im(double x, double y) {
        mpfr_set_d(r35136, x, MPFR_RNDN);
        mpfr_set_d(r35137, y, MPFR_RNDN);
        mpfr_add(r35138, r35136, r35137, MPFR_RNDN);
        ;
        mpfr_add(r35140, r35137, r35139, MPFR_RNDN);
        mpfr_div(r35141, r35138, r35140, MPFR_RNDN);
        return mpfr_get_d(r35141, MPFR_RNDN);
}

static mpfr_t r35142, r35143, r35144, r35145, r35146, r35147;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35142);
        mpfr_init(r35143);
        mpfr_init(r35144);
        mpfr_init_set_str(r35145, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35146);
        mpfr_init(r35147);
}

double f_fm(double x, double y) {
        mpfr_set_d(r35142, x, MPFR_RNDN);
        mpfr_set_d(r35143, y, MPFR_RNDN);
        mpfr_add(r35144, r35142, r35143, MPFR_RNDN);
        ;
        mpfr_add(r35146, r35143, r35145, MPFR_RNDN);
        mpfr_div(r35147, r35144, r35146, MPFR_RNDN);
        return mpfr_get_d(r35147, MPFR_RNDN);
}

static mpfr_t r35148, r35149, r35150, r35151, r35152, r35153;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r35148);
        mpfr_init(r35149);
        mpfr_init(r35150);
        mpfr_init_set_str(r35151, "1.0", 10, MPFR_RNDN);
        mpfr_init(r35152);
        mpfr_init(r35153);
}

double f_dm(double x, double y) {
        mpfr_set_d(r35148, x, MPFR_RNDN);
        mpfr_set_d(r35149, y, MPFR_RNDN);
        mpfr_add(r35150, r35148, r35149, MPFR_RNDN);
        ;
        mpfr_add(r35152, r35149, r35151, MPFR_RNDN);
        mpfr_div(r35153, r35150, r35152, MPFR_RNDN);
        return mpfr_get_d(r35153, MPFR_RNDN);
}

