#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, D";

double f_if(float x, float y) {
        float r56755 = x;
        float r56756 = y;
        float r56757 = 200.0f;
        float r56758 = r56756 / r56757;
        float r56759 = r56755 - r56758;
        return r56759;
}

double f_id(double x, double y) {
        double r56760 = x;
        double r56761 = y;
        double r56762 = 200.0;
        double r56763 = r56761 / r56762;
        double r56764 = r56760 - r56763;
        return r56764;
}


double f_of(float x, float y) {
        float r56765 = x;
        float r56766 = y;
        float r56767 = 200.0f;
        float r56768 = r56766 / r56767;
        float r56769 = r56765 - r56768;
        return r56769;
}

double f_od(double x, double y) {
        double r56770 = x;
        double r56771 = y;
        double r56772 = 200.0;
        double r56773 = r56771 / r56772;
        double r56774 = r56770 - r56773;
        return r56774;
}

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 r56775, r56776, r56777, r56778, r56779;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r56775);
        mpfr_init(r56776);
        mpfr_init_set_str(r56777, "200.0", 10, MPFR_RNDN);
        mpfr_init(r56778);
        mpfr_init(r56779);
}

double f_im(double x, double y) {
        mpfr_set_d(r56775, x, MPFR_RNDN);
        mpfr_set_d(r56776, y, MPFR_RNDN);
        ;
        mpfr_div(r56778, r56776, r56777, MPFR_RNDN);
        mpfr_sub(r56779, r56775, r56778, MPFR_RNDN);
        return mpfr_get_d(r56779, MPFR_RNDN);
}

static mpfr_t r56780, r56781, r56782, r56783, r56784;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56780);
        mpfr_init(r56781);
        mpfr_init_set_str(r56782, "200.0", 10, MPFR_RNDN);
        mpfr_init(r56783);
        mpfr_init(r56784);
}

double f_fm(double x, double y) {
        mpfr_set_d(r56780, x, MPFR_RNDN);
        mpfr_set_d(r56781, y, MPFR_RNDN);
        ;
        mpfr_div(r56783, r56781, r56782, MPFR_RNDN);
        mpfr_sub(r56784, r56780, r56783, MPFR_RNDN);
        return mpfr_get_d(r56784, MPFR_RNDN);
}

static mpfr_t r56785, r56786, r56787, r56788, r56789;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56785);
        mpfr_init(r56786);
        mpfr_init_set_str(r56787, "200.0", 10, MPFR_RNDN);
        mpfr_init(r56788);
        mpfr_init(r56789);
}

double f_dm(double x, double y) {
        mpfr_set_d(r56785, x, MPFR_RNDN);
        mpfr_set_d(r56786, y, MPFR_RNDN);
        ;
        mpfr_div(r56788, r56786, r56787, MPFR_RNDN);
        mpfr_sub(r56789, r56785, r56788, MPFR_RNDN);
        return mpfr_get_d(r56789, MPFR_RNDN);
}

