#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 r34806 = x;
        float r34807 = 1.0;
        float r34808 = r34806 + r34807;
        float r34809 = y;
        float r34810 = r34808 * r34809;
        float r34811 = r34810 - r34806;
        return r34811;
}

double f_id(double x, double y) {
        double r34812 = x;
        double r34813 = 1.0;
        double r34814 = r34812 + r34813;
        double r34815 = y;
        double r34816 = r34814 * r34815;
        double r34817 = r34816 - r34812;
        return r34817;
}


double f_of(float x, float y) {
        float r34818 = x;
        float r34819 = 1.0;
        float r34820 = r34818 + r34819;
        float r34821 = y;
        float r34822 = r34820 * r34821;
        float r34823 = r34822 - r34818;
        return r34823;
}

double f_od(double x, double y) {
        double r34824 = x;
        double r34825 = 1.0;
        double r34826 = r34824 + r34825;
        double r34827 = y;
        double r34828 = r34826 * r34827;
        double r34829 = r34828 - r34824;
        return r34829;
}

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 r34830, r34831, r34832, r34833, r34834, r34835;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init(r34830);
        mpfr_init_set_str(r34831, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34832);
        mpfr_init(r34833);
        mpfr_init(r34834);
        mpfr_init(r34835);
}

double f_im(double x, double y) {
        mpfr_set_d(r34830, x, MPFR_RNDN);
        ;
        mpfr_add(r34832, r34830, r34831, MPFR_RNDN);
        mpfr_set_d(r34833, y, MPFR_RNDN);
        mpfr_mul(r34834, r34832, r34833, MPFR_RNDN);
        mpfr_sub(r34835, r34834, r34830, MPFR_RNDN);
        return mpfr_get_d(r34835, MPFR_RNDN);
}

static mpfr_t r34836, r34837, r34838, r34839, r34840, r34841;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init(r34836);
        mpfr_init_set_str(r34837, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34838);
        mpfr_init(r34839);
        mpfr_init(r34840);
        mpfr_init(r34841);
}

double f_fm(double x, double y) {
        mpfr_set_d(r34836, x, MPFR_RNDN);
        ;
        mpfr_add(r34838, r34836, r34837, MPFR_RNDN);
        mpfr_set_d(r34839, y, MPFR_RNDN);
        mpfr_mul(r34840, r34838, r34839, MPFR_RNDN);
        mpfr_sub(r34841, r34840, r34836, MPFR_RNDN);
        return mpfr_get_d(r34841, MPFR_RNDN);
}

static mpfr_t r34842, r34843, r34844, r34845, r34846, r34847;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init(r34842);
        mpfr_init_set_str(r34843, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34844);
        mpfr_init(r34845);
        mpfr_init(r34846);
        mpfr_init(r34847);
}

double f_dm(double x, double y) {
        mpfr_set_d(r34842, x, MPFR_RNDN);
        ;
        mpfr_add(r34844, r34842, r34843, MPFR_RNDN);
        mpfr_set_d(r34845, y, MPFR_RNDN);
        mpfr_mul(r34846, r34844, r34845, MPFR_RNDN);
        mpfr_sub(r34847, r34846, r34842, MPFR_RNDN);
        return mpfr_get_d(r34847, MPFR_RNDN);
}

