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

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

double f_if(float x) {
        float r35393 = 841.0;
        float r35394 = 108.0;
        float r35395 = r35393 / r35394;
        float r35396 = x;
        float r35397 = r35395 * r35396;
        float r35398 = 4.0;
        float r35399 = 29.0;
        float r35400 = r35398 / r35399;
        float r35401 = r35397 + r35400;
        return r35401;
}

double f_id(double x) {
        double r35402 = 841.0;
        double r35403 = 108.0;
        double r35404 = r35402 / r35403;
        double r35405 = x;
        double r35406 = r35404 * r35405;
        double r35407 = 4.0;
        double r35408 = 29.0;
        double r35409 = r35407 / r35408;
        double r35410 = r35406 + r35409;
        return r35410;
}


double f_of(float x) {
        float r35411 = 841.0;
        float r35412 = 108.0;
        float r35413 = r35411 / r35412;
        float r35414 = x;
        float r35415 = r35413 * r35414;
        float r35416 = 4.0;
        float r35417 = 29.0;
        float r35418 = r35416 / r35417;
        float r35419 = r35415 + r35418;
        return r35419;
}

double f_od(double x) {
        double r35420 = 841.0;
        double r35421 = 108.0;
        double r35422 = r35420 / r35421;
        double r35423 = x;
        double r35424 = r35422 * r35423;
        double r35425 = 4.0;
        double r35426 = 29.0;
        double r35427 = r35425 / r35426;
        double r35428 = r35424 + r35427;
        return r35428;
}

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 r35429, r35430, r35431, r35432, r35433, r35434, r35435, r35436, r35437;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r35429, "841.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35430, "108.0", 10, MPFR_RNDN);
        mpfr_init(r35431);
        mpfr_init(r35432);
        mpfr_init(r35433);
        mpfr_init_set_str(r35434, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35435, "29.0", 10, MPFR_RNDN);
        mpfr_init(r35436);
        mpfr_init(r35437);
}

double f_im(double x) {
        ;
        ;
        mpfr_div(r35431, r35429, r35430, MPFR_RNDN);
        mpfr_set_d(r35432, x, MPFR_RNDN);
        mpfr_mul(r35433, r35431, r35432, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35436, r35434, r35435, MPFR_RNDN);
        mpfr_add(r35437, r35433, r35436, MPFR_RNDN);
        return mpfr_get_d(r35437, MPFR_RNDN);
}

static mpfr_t r35438, r35439, r35440, r35441, r35442, r35443, r35444, r35445, r35446;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r35438, "841.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35439, "108.0", 10, MPFR_RNDN);
        mpfr_init(r35440);
        mpfr_init(r35441);
        mpfr_init(r35442);
        mpfr_init_set_str(r35443, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35444, "29.0", 10, MPFR_RNDN);
        mpfr_init(r35445);
        mpfr_init(r35446);
}

double f_fm(double x) {
        ;
        ;
        mpfr_div(r35440, r35438, r35439, MPFR_RNDN);
        mpfr_set_d(r35441, x, MPFR_RNDN);
        mpfr_mul(r35442, r35440, r35441, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35445, r35443, r35444, MPFR_RNDN);
        mpfr_add(r35446, r35442, r35445, MPFR_RNDN);
        return mpfr_get_d(r35446, MPFR_RNDN);
}

static mpfr_t r35447, r35448, r35449, r35450, r35451, r35452, r35453, r35454, r35455;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r35447, "841.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35448, "108.0", 10, MPFR_RNDN);
        mpfr_init(r35449);
        mpfr_init(r35450);
        mpfr_init(r35451);
        mpfr_init_set_str(r35452, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35453, "29.0", 10, MPFR_RNDN);
        mpfr_init(r35454);
        mpfr_init(r35455);
}

double f_dm(double x) {
        ;
        ;
        mpfr_div(r35449, r35447, r35448, MPFR_RNDN);
        mpfr_set_d(r35450, x, MPFR_RNDN);
        mpfr_mul(r35451, r35449, r35450, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35454, r35452, r35453, MPFR_RNDN);
        mpfr_add(r35455, r35451, r35454, MPFR_RNDN);
        return mpfr_get_d(r35455, MPFR_RNDN);
}

