#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 r34903 = x;
        float r34904 = y;
        float r34905 = r34903 + r34904;
        float r34906 = 1.0;
        float r34907 = r34904 + r34906;
        float r34908 = r34905 / r34907;
        return r34908;
}

double f_id(double x, double y) {
        double r34909 = x;
        double r34910 = y;
        double r34911 = r34909 + r34910;
        double r34912 = 1.0;
        double r34913 = r34910 + r34912;
        double r34914 = r34911 / r34913;
        return r34914;
}


double f_of(float x, float y) {
        float r34915 = x;
        float r34916 = y;
        float r34917 = r34915 + r34916;
        float r34918 = 1.0;
        float r34919 = r34916 + r34918;
        float r34920 = r34917 / r34919;
        return r34920;
}

double f_od(double x, double y) {
        double r34921 = x;
        double r34922 = y;
        double r34923 = r34921 + r34922;
        double r34924 = 1.0;
        double r34925 = r34922 + r34924;
        double r34926 = r34923 / r34925;
        return r34926;
}

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 r34927, r34928, r34929, r34930, r34931, r34932;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r34927);
        mpfr_init(r34928);
        mpfr_init(r34929);
        mpfr_init_set_str(r34930, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34931);
        mpfr_init(r34932);
}

double f_im(double x, double y) {
        mpfr_set_d(r34927, x, MPFR_RNDN);
        mpfr_set_d(r34928, y, MPFR_RNDN);
        mpfr_add(r34929, r34927, r34928, MPFR_RNDN);
        ;
        mpfr_add(r34931, r34928, r34930, MPFR_RNDN);
        mpfr_div(r34932, r34929, r34931, MPFR_RNDN);
        return mpfr_get_d(r34932, MPFR_RNDN);
}

static mpfr_t r34933, r34934, r34935, r34936, r34937, r34938;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34933);
        mpfr_init(r34934);
        mpfr_init(r34935);
        mpfr_init_set_str(r34936, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34937);
        mpfr_init(r34938);
}

double f_fm(double x, double y) {
        mpfr_set_d(r34933, x, MPFR_RNDN);
        mpfr_set_d(r34934, y, MPFR_RNDN);
        mpfr_add(r34935, r34933, r34934, MPFR_RNDN);
        ;
        mpfr_add(r34937, r34934, r34936, MPFR_RNDN);
        mpfr_div(r34938, r34935, r34937, MPFR_RNDN);
        return mpfr_get_d(r34938, MPFR_RNDN);
}

static mpfr_t r34939, r34940, r34941, r34942, r34943, r34944;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34939);
        mpfr_init(r34940);
        mpfr_init(r34941);
        mpfr_init_set_str(r34942, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34943);
        mpfr_init(r34944);
}

double f_dm(double x, double y) {
        mpfr_set_d(r34939, x, MPFR_RNDN);
        mpfr_set_d(r34940, y, MPFR_RNDN);
        mpfr_add(r34941, r34939, r34940, MPFR_RNDN);
        ;
        mpfr_add(r34943, r34940, r34942, MPFR_RNDN);
        mpfr_div(r34944, r34941, r34943, MPFR_RNDN);
        return mpfr_get_d(r34944, MPFR_RNDN);
}

