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

char *name = "Data.Colour.CIE:cieLAB from colour-2.3.3, B";

double f_if(float x) {
        float r36168 = x;
        float r36169 = 16.0;
        float r36170 = r36168 + r36169;
        float r36171 = 116.0;
        float r36172 = r36170 / r36171;
        return r36172;
}

double f_id(double x) {
        double r36173 = x;
        double r36174 = 16.0;
        double r36175 = r36173 + r36174;
        double r36176 = 116.0;
        double r36177 = r36175 / r36176;
        return r36177;
}


double f_of(float x) {
        float r36178 = x;
        float r36179 = 16.0;
        float r36180 = r36178 + r36179;
        float r36181 = 116.0;
        float r36182 = r36180 / r36181;
        return r36182;
}

double f_od(double x) {
        double r36183 = x;
        double r36184 = 16.0;
        double r36185 = r36183 + r36184;
        double r36186 = 116.0;
        double r36187 = r36185 / r36186;
        return r36187;
}

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 r36188, r36189, r36190, r36191, r36192;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r36188);
        mpfr_init_set_str(r36189, "16.0", 10, MPFR_RNDN);
        mpfr_init(r36190);
        mpfr_init_set_str(r36191, "116.0", 10, MPFR_RNDN);
        mpfr_init(r36192);
}

double f_im(double x) {
        mpfr_set_d(r36188, x, MPFR_RNDN);
        ;
        mpfr_add(r36190, r36188, r36189, MPFR_RNDN);
        ;
        mpfr_div(r36192, r36190, r36191, MPFR_RNDN);
        return mpfr_get_d(r36192, MPFR_RNDN);
}

static mpfr_t r36193, r36194, r36195, r36196, r36197;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r36193);
        mpfr_init_set_str(r36194, "16.0", 10, MPFR_RNDN);
        mpfr_init(r36195);
        mpfr_init_set_str(r36196, "116.0", 10, MPFR_RNDN);
        mpfr_init(r36197);
}

double f_fm(double x) {
        mpfr_set_d(r36193, x, MPFR_RNDN);
        ;
        mpfr_add(r36195, r36193, r36194, MPFR_RNDN);
        ;
        mpfr_div(r36197, r36195, r36196, MPFR_RNDN);
        return mpfr_get_d(r36197, MPFR_RNDN);
}

static mpfr_t r36198, r36199, r36200, r36201, r36202;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r36198);
        mpfr_init_set_str(r36199, "16.0", 10, MPFR_RNDN);
        mpfr_init(r36200);
        mpfr_init_set_str(r36201, "116.0", 10, MPFR_RNDN);
        mpfr_init(r36202);
}

double f_dm(double x) {
        mpfr_set_d(r36198, x, MPFR_RNDN);
        ;
        mpfr_add(r36200, r36198, r36199, MPFR_RNDN);
        ;
        mpfr_div(r36202, r36200, r36201, MPFR_RNDN);
        return mpfr_get_d(r36202, MPFR_RNDN);
}

