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

double f_if(float x, float y) {
        float r56790 = x;
        float r56791 = y;
        float r56792 = 500.0f;
        float r56793 = r56791 / r56792;
        float r56794 = r56790 + r56793;
        return r56794;
}

double f_id(double x, double y) {
        double r56795 = x;
        double r56796 = y;
        double r56797 = 500.0;
        double r56798 = r56796 / r56797;
        double r56799 = r56795 + r56798;
        return r56799;
}


double f_of(float x, float y) {
        float r56800 = x;
        float r56801 = y;
        float r56802 = 500.0f;
        float r56803 = r56801 / r56802;
        float r56804 = r56800 + r56803;
        return r56804;
}

double f_od(double x, double y) {
        double r56805 = x;
        double r56806 = y;
        double r56807 = 500.0;
        double r56808 = r56806 / r56807;
        double r56809 = r56805 + r56808;
        return r56809;
}

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 r56810, r56811, r56812, r56813, r56814;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r56810);
        mpfr_init(r56811);
        mpfr_init_set_str(r56812, "500.0", 10, MPFR_RNDN);
        mpfr_init(r56813);
        mpfr_init(r56814);
}

double f_im(double x, double y) {
        mpfr_set_d(r56810, x, MPFR_RNDN);
        mpfr_set_d(r56811, y, MPFR_RNDN);
        ;
        mpfr_div(r56813, r56811, r56812, MPFR_RNDN);
        mpfr_add(r56814, r56810, r56813, MPFR_RNDN);
        return mpfr_get_d(r56814, MPFR_RNDN);
}

static mpfr_t r56815, r56816, r56817, r56818, r56819;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56815);
        mpfr_init(r56816);
        mpfr_init_set_str(r56817, "500.0", 10, MPFR_RNDN);
        mpfr_init(r56818);
        mpfr_init(r56819);
}

double f_fm(double x, double y) {
        mpfr_set_d(r56815, x, MPFR_RNDN);
        mpfr_set_d(r56816, y, MPFR_RNDN);
        ;
        mpfr_div(r56818, r56816, r56817, MPFR_RNDN);
        mpfr_add(r56819, r56815, r56818, MPFR_RNDN);
        return mpfr_get_d(r56819, MPFR_RNDN);
}

static mpfr_t r56820, r56821, r56822, r56823, r56824;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56820);
        mpfr_init(r56821);
        mpfr_init_set_str(r56822, "500.0", 10, MPFR_RNDN);
        mpfr_init(r56823);
        mpfr_init(r56824);
}

double f_dm(double x, double y) {
        mpfr_set_d(r56820, x, MPFR_RNDN);
        mpfr_set_d(r56821, y, MPFR_RNDN);
        ;
        mpfr_div(r56823, r56821, r56822, MPFR_RNDN);
        mpfr_add(r56824, r56820, r56823, MPFR_RNDN);
        return mpfr_get_d(r56824, MPFR_RNDN);
}

