#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 r56692 = 841.0f;
        float r56693 = 108.0f;
        float r56694 = r56692 / r56693;
        float r56695 = x;
        float r56696 = r56694 * r56695;
        float r56697 = 4.0f;
        float r56698 = 29.0f;
        float r56699 = r56697 / r56698;
        float r56700 = r56696 + r56699;
        return r56700;
}

double f_id(double x) {
        double r56701 = 841.0;
        double r56702 = 108.0;
        double r56703 = r56701 / r56702;
        double r56704 = x;
        double r56705 = r56703 * r56704;
        double r56706 = 4.0;
        double r56707 = 29.0;
        double r56708 = r56706 / r56707;
        double r56709 = r56705 + r56708;
        return r56709;
}


double f_of(float x) {
        float r56710 = 841.0f;
        float r56711 = 108.0f;
        float r56712 = r56710 / r56711;
        float r56713 = x;
        float r56714 = r56712 * r56713;
        float r56715 = 4.0f;
        float r56716 = 29.0f;
        float r56717 = r56715 / r56716;
        float r56718 = r56714 + r56717;
        return r56718;
}

double f_od(double x) {
        double r56719 = 841.0;
        double r56720 = 108.0;
        double r56721 = r56719 / r56720;
        double r56722 = x;
        double r56723 = r56721 * r56722;
        double r56724 = 4.0;
        double r56725 = 29.0;
        double r56726 = r56724 / r56725;
        double r56727 = r56723 + r56726;
        return r56727;
}

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 r56728, r56729, r56730, r56731, r56732, r56733, r56734, r56735, r56736;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r56728, "841.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r56729, "108.0", 10, MPFR_RNDN);
        mpfr_init(r56730);
        mpfr_init(r56731);
        mpfr_init(r56732);
        mpfr_init_set_str(r56733, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r56734, "29.0", 10, MPFR_RNDN);
        mpfr_init(r56735);
        mpfr_init(r56736);
}

double f_im(double x) {
        ;
        ;
        mpfr_div(r56730, r56728, r56729, MPFR_RNDN);
        mpfr_set_d(r56731, x, MPFR_RNDN);
        mpfr_mul(r56732, r56730, r56731, MPFR_RNDN);
        ;
        ;
        mpfr_div(r56735, r56733, r56734, MPFR_RNDN);
        mpfr_add(r56736, r56732, r56735, MPFR_RNDN);
        return mpfr_get_d(r56736, MPFR_RNDN);
}

static mpfr_t r56737, r56738, r56739, r56740, r56741, r56742, r56743, r56744, r56745;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r56737, "841.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r56738, "108.0", 10, MPFR_RNDN);
        mpfr_init(r56739);
        mpfr_init(r56740);
        mpfr_init(r56741);
        mpfr_init_set_str(r56742, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r56743, "29.0", 10, MPFR_RNDN);
        mpfr_init(r56744);
        mpfr_init(r56745);
}

double f_fm(double x) {
        ;
        ;
        mpfr_div(r56739, r56737, r56738, MPFR_RNDN);
        mpfr_set_d(r56740, x, MPFR_RNDN);
        mpfr_mul(r56741, r56739, r56740, MPFR_RNDN);
        ;
        ;
        mpfr_div(r56744, r56742, r56743, MPFR_RNDN);
        mpfr_add(r56745, r56741, r56744, MPFR_RNDN);
        return mpfr_get_d(r56745, MPFR_RNDN);
}

static mpfr_t r56746, r56747, r56748, r56749, r56750, r56751, r56752, r56753, r56754;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r56746, "841.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r56747, "108.0", 10, MPFR_RNDN);
        mpfr_init(r56748);
        mpfr_init(r56749);
        mpfr_init(r56750);
        mpfr_init_set_str(r56751, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r56752, "29.0", 10, MPFR_RNDN);
        mpfr_init(r56753);
        mpfr_init(r56754);
}

double f_dm(double x) {
        ;
        ;
        mpfr_div(r56748, r56746, r56747, MPFR_RNDN);
        mpfr_set_d(r56749, x, MPFR_RNDN);
        mpfr_mul(r56750, r56748, r56749, MPFR_RNDN);
        ;
        ;
        mpfr_div(r56753, r56751, r56752, MPFR_RNDN);
        mpfr_add(r56754, r56750, r56753, MPFR_RNDN);
        return mpfr_get_d(r56754, MPFR_RNDN);
}

