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

char *name = "Data.Colour.CIE:lightness from colour-2.3.3";

double f_if(float x) {
        float r56579 = x;
        float r56580 = 116.0f;
        float r56581 = r56579 * r56580;
        float r56582 = 16.0f;
        float r56583 = r56581 - r56582;
        return r56583;
}

double f_id(double x) {
        double r56584 = x;
        double r56585 = 116.0;
        double r56586 = r56584 * r56585;
        double r56587 = 16.0;
        double r56588 = r56586 - r56587;
        return r56588;
}


double f_of(float x) {
        float r56589 = x;
        float r56590 = 116.0f;
        float r56591 = r56589 * r56590;
        float r56592 = 16.0f;
        float r56593 = r56591 - r56592;
        return r56593;
}

double f_od(double x) {
        double r56594 = x;
        double r56595 = 116.0;
        double r56596 = r56594 * r56595;
        double r56597 = 16.0;
        double r56598 = r56596 - r56597;
        return r56598;
}

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 r56599, r56600, r56601, r56602, r56603;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r56599);
        mpfr_init_set_str(r56600, "116.0", 10, MPFR_RNDN);
        mpfr_init(r56601);
        mpfr_init_set_str(r56602, "16.0", 10, MPFR_RNDN);
        mpfr_init(r56603);
}

double f_im(double x) {
        mpfr_set_d(r56599, x, MPFR_RNDN);
        ;
        mpfr_mul(r56601, r56599, r56600, MPFR_RNDN);
        ;
        mpfr_sub(r56603, r56601, r56602, MPFR_RNDN);
        return mpfr_get_d(r56603, MPFR_RNDN);
}

static mpfr_t r56604, r56605, r56606, r56607, r56608;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56604);
        mpfr_init_set_str(r56605, "116.0", 10, MPFR_RNDN);
        mpfr_init(r56606);
        mpfr_init_set_str(r56607, "16.0", 10, MPFR_RNDN);
        mpfr_init(r56608);
}

double f_fm(double x) {
        mpfr_set_d(r56604, x, MPFR_RNDN);
        ;
        mpfr_mul(r56606, r56604, r56605, MPFR_RNDN);
        ;
        mpfr_sub(r56608, r56606, r56607, MPFR_RNDN);
        return mpfr_get_d(r56608, MPFR_RNDN);
}

static mpfr_t r56609, r56610, r56611, r56612, r56613;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r56609);
        mpfr_init_set_str(r56610, "116.0", 10, MPFR_RNDN);
        mpfr_init(r56611);
        mpfr_init_set_str(r56612, "16.0", 10, MPFR_RNDN);
        mpfr_init(r56613);
}

double f_dm(double x) {
        mpfr_set_d(r56609, x, MPFR_RNDN);
        ;
        mpfr_mul(r56611, r56609, r56610, MPFR_RNDN);
        ;
        mpfr_sub(r56613, r56611, r56612, MPFR_RNDN);
        return mpfr_get_d(r56613, MPFR_RNDN);
}

