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

char *name = "Codec.Picture.Types:toneMapping from JuicyPixels-3.2.6.1";

double f_if(float x, float y) {
        float r58150 = x;
        float r58151 = y;
        float r58152 = r58150 / r58151;
        float r58153 = 1.0;
        float r58154 = r58152 + r58153;
        float r58155 = r58150 * r58154;
        float r58156 = r58150 + r58153;
        float r58157 = r58155 / r58156;
        return r58157;
}

double f_id(double x, double y) {
        double r58158 = x;
        double r58159 = y;
        double r58160 = r58158 / r58159;
        double r58161 = 1.0;
        double r58162 = r58160 + r58161;
        double r58163 = r58158 * r58162;
        double r58164 = r58158 + r58161;
        double r58165 = r58163 / r58164;
        return r58165;
}


double f_of(float x, float y) {
        float r58166 = x;
        float r58167 = 1.0;
        float r58168 = r58166 + r58167;
        float r58169 = y;
        float r58170 = r58166 / r58169;
        float r58171 = r58170 + r58167;
        float r58172 = r58168 / r58171;
        float r58173 = r58166 / r58172;
        return r58173;
}

double f_od(double x, double y) {
        double r58174 = x;
        double r58175 = 1.0;
        double r58176 = r58174 + r58175;
        double r58177 = y;
        double r58178 = r58174 / r58177;
        double r58179 = r58178 + r58175;
        double r58180 = r58176 / r58179;
        double r58181 = r58174 / r58180;
        return r58181;
}

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 r58182, r58183, r58184, r58185, r58186, r58187, r58188, r58189;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r58182);
        mpfr_init(r58183);
        mpfr_init(r58184);
        mpfr_init_set_str(r58185, "1.0", 10, MPFR_RNDN);
        mpfr_init(r58186);
        mpfr_init(r58187);
        mpfr_init(r58188);
        mpfr_init(r58189);
}

double f_im(double x, double y) {
        mpfr_set_d(r58182, x, MPFR_RNDN);
        mpfr_set_d(r58183, y, MPFR_RNDN);
        mpfr_div(r58184, r58182, r58183, MPFR_RNDN);
        ;
        mpfr_add(r58186, r58184, r58185, MPFR_RNDN);
        mpfr_mul(r58187, r58182, r58186, MPFR_RNDN);
        mpfr_add(r58188, r58182, r58185, MPFR_RNDN);
        mpfr_div(r58189, r58187, r58188, MPFR_RNDN);
        return mpfr_get_d(r58189, MPFR_RNDN);
}

static mpfr_t r58190, r58191, r58192, r58193, r58194, r58195, r58196, r58197;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r58190);
        mpfr_init_set_str(r58191, "1.0", 10, MPFR_RNDN);
        mpfr_init(r58192);
        mpfr_init(r58193);
        mpfr_init(r58194);
        mpfr_init(r58195);
        mpfr_init(r58196);
        mpfr_init(r58197);
}

double f_fm(double x, double y) {
        mpfr_set_d(r58190, x, MPFR_RNDN);
        ;
        mpfr_add(r58192, r58190, r58191, MPFR_RNDN);
        mpfr_set_d(r58193, y, MPFR_RNDN);
        mpfr_div(r58194, r58190, r58193, MPFR_RNDN);
        mpfr_add(r58195, r58194, r58191, MPFR_RNDN);
        mpfr_div(r58196, r58192, r58195, MPFR_RNDN);
        mpfr_div(r58197, r58190, r58196, MPFR_RNDN);
        return mpfr_get_d(r58197, MPFR_RNDN);
}

static mpfr_t r58198, r58199, r58200, r58201, r58202, r58203, r58204, r58205;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r58198);
        mpfr_init_set_str(r58199, "1.0", 10, MPFR_RNDN);
        mpfr_init(r58200);
        mpfr_init(r58201);
        mpfr_init(r58202);
        mpfr_init(r58203);
        mpfr_init(r58204);
        mpfr_init(r58205);
}

double f_dm(double x, double y) {
        mpfr_set_d(r58198, x, MPFR_RNDN);
        ;
        mpfr_add(r58200, r58198, r58199, MPFR_RNDN);
        mpfr_set_d(r58201, y, MPFR_RNDN);
        mpfr_div(r58202, r58198, r58201, MPFR_RNDN);
        mpfr_add(r58203, r58202, r58199, MPFR_RNDN);
        mpfr_div(r58204, r58200, r58203, MPFR_RNDN);
        mpfr_div(r58205, r58198, r58204, MPFR_RNDN);
        return mpfr_get_d(r58205, MPFR_RNDN);
}

