#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 r34861 = x;
        float r34862 = 1.0;
        float r34863 = r34861 + r34862;
        float r34864 = y;
        float r34865 = r34863 * r34864;
        float r34866 = r34865 - r34861;
        return r34866;
}

double f_id(double x, double y) {
        double r34867 = x;
        double r34868 = 1.0;
        double r34869 = r34867 + r34868;
        double r34870 = y;
        double r34871 = r34869 * r34870;
        double r34872 = r34871 - r34867;
        return r34872;
}


double f_of(float x, float y) {
        float r34873 = x;
        float r34874 = 1.0;
        float r34875 = r34873 + r34874;
        float r34876 = y;
        float r34877 = r34875 * r34876;
        float r34878 = r34877 - r34873;
        return r34878;
}

double f_od(double x, double y) {
        double r34879 = x;
        double r34880 = 1.0;
        double r34881 = r34879 + r34880;
        double r34882 = y;
        double r34883 = r34881 * r34882;
        double r34884 = r34883 - r34879;
        return r34884;
}

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 r34885, r34886, r34887, r34888, r34889, r34890;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init(r34885);
        mpfr_init_set_str(r34886, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34887);
        mpfr_init(r34888);
        mpfr_init(r34889);
        mpfr_init(r34890);
}

double f_im(double x, double y) {
        mpfr_set_d(r34885, x, MPFR_RNDN);
        ;
        mpfr_add(r34887, r34885, r34886, MPFR_RNDN);
        mpfr_set_d(r34888, y, MPFR_RNDN);
        mpfr_mul(r34889, r34887, r34888, MPFR_RNDN);
        mpfr_sub(r34890, r34889, r34885, MPFR_RNDN);
        return mpfr_get_d(r34890, MPFR_RNDN);
}

static mpfr_t r34891, r34892, r34893, r34894, r34895, r34896;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init(r34891);
        mpfr_init_set_str(r34892, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34893);
        mpfr_init(r34894);
        mpfr_init(r34895);
        mpfr_init(r34896);
}

double f_fm(double x, double y) {
        mpfr_set_d(r34891, x, MPFR_RNDN);
        ;
        mpfr_add(r34893, r34891, r34892, MPFR_RNDN);
        mpfr_set_d(r34894, y, MPFR_RNDN);
        mpfr_mul(r34895, r34893, r34894, MPFR_RNDN);
        mpfr_sub(r34896, r34895, r34891, MPFR_RNDN);
        return mpfr_get_d(r34896, MPFR_RNDN);
}

static mpfr_t r34897, r34898, r34899, r34900, r34901, r34902;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init(r34897);
        mpfr_init_set_str(r34898, "1.0", 10, MPFR_RNDN);
        mpfr_init(r34899);
        mpfr_init(r34900);
        mpfr_init(r34901);
        mpfr_init(r34902);
}

double f_dm(double x, double y) {
        mpfr_set_d(r34897, x, MPFR_RNDN);
        ;
        mpfr_add(r34899, r34897, r34898, MPFR_RNDN);
        mpfr_set_d(r34900, y, MPFR_RNDN);
        mpfr_mul(r34901, r34899, r34900, MPFR_RNDN);
        mpfr_sub(r34902, r34901, r34897, MPFR_RNDN);
        return mpfr_get_d(r34902, MPFR_RNDN);
}

