#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 r35863 = 841.0;
        float r35864 = 108.0;
        float r35865 = r35863 / r35864;
        float r35866 = x;
        float r35867 = r35865 * r35866;
        float r35868 = 4.0;
        float r35869 = 29.0;
        float r35870 = r35868 / r35869;
        float r35871 = r35867 + r35870;
        return r35871;
}

double f_id(double x) {
        double r35872 = 841.0;
        double r35873 = 108.0;
        double r35874 = r35872 / r35873;
        double r35875 = x;
        double r35876 = r35874 * r35875;
        double r35877 = 4.0;
        double r35878 = 29.0;
        double r35879 = r35877 / r35878;
        double r35880 = r35876 + r35879;
        return r35880;
}


double f_of(float x) {
        float r35881 = 841.0;
        float r35882 = 108.0;
        float r35883 = r35881 / r35882;
        float r35884 = x;
        float r35885 = r35883 * r35884;
        float r35886 = 4.0;
        float r35887 = 29.0;
        float r35888 = r35886 / r35887;
        float r35889 = r35885 + r35888;
        return r35889;
}

double f_od(double x) {
        double r35890 = 841.0;
        double r35891 = 108.0;
        double r35892 = r35890 / r35891;
        double r35893 = x;
        double r35894 = r35892 * r35893;
        double r35895 = 4.0;
        double r35896 = 29.0;
        double r35897 = r35895 / r35896;
        double r35898 = r35894 + r35897;
        return r35898;
}

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 r35899, r35900, r35901, r35902, r35903, r35904, r35905, r35906, r35907;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r35899, "841.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35900, "108.0", 10, MPFR_RNDN);
        mpfr_init(r35901);
        mpfr_init(r35902);
        mpfr_init(r35903);
        mpfr_init_set_str(r35904, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35905, "29.0", 10, MPFR_RNDN);
        mpfr_init(r35906);
        mpfr_init(r35907);
}

double f_im(double x) {
        ;
        ;
        mpfr_div(r35901, r35899, r35900, MPFR_RNDN);
        mpfr_set_d(r35902, x, MPFR_RNDN);
        mpfr_mul(r35903, r35901, r35902, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35906, r35904, r35905, MPFR_RNDN);
        mpfr_add(r35907, r35903, r35906, MPFR_RNDN);
        return mpfr_get_d(r35907, MPFR_RNDN);
}

static mpfr_t r35908, r35909, r35910, r35911, r35912, r35913, r35914, r35915, r35916;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r35908, "841.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35909, "108.0", 10, MPFR_RNDN);
        mpfr_init(r35910);
        mpfr_init(r35911);
        mpfr_init(r35912);
        mpfr_init_set_str(r35913, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35914, "29.0", 10, MPFR_RNDN);
        mpfr_init(r35915);
        mpfr_init(r35916);
}

double f_fm(double x) {
        ;
        ;
        mpfr_div(r35910, r35908, r35909, MPFR_RNDN);
        mpfr_set_d(r35911, x, MPFR_RNDN);
        mpfr_mul(r35912, r35910, r35911, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35915, r35913, r35914, MPFR_RNDN);
        mpfr_add(r35916, r35912, r35915, MPFR_RNDN);
        return mpfr_get_d(r35916, MPFR_RNDN);
}

static mpfr_t r35917, r35918, r35919, r35920, r35921, r35922, r35923, r35924, r35925;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r35917, "841.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35918, "108.0", 10, MPFR_RNDN);
        mpfr_init(r35919);
        mpfr_init(r35920);
        mpfr_init(r35921);
        mpfr_init_set_str(r35922, "4.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r35923, "29.0", 10, MPFR_RNDN);
        mpfr_init(r35924);
        mpfr_init(r35925);
}

double f_dm(double x) {
        ;
        ;
        mpfr_div(r35919, r35917, r35918, MPFR_RNDN);
        mpfr_set_d(r35920, x, MPFR_RNDN);
        mpfr_mul(r35921, r35919, r35920, MPFR_RNDN);
        ;
        ;
        mpfr_div(r35924, r35922, r35923, MPFR_RNDN);
        mpfr_add(r35925, r35921, r35924, MPFR_RNDN);
        return mpfr_get_d(r35925, MPFR_RNDN);
}

