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

char *name = "logs (example 3.8)";

double f_if(float n) {
        float r11871598 = n;
        float r11871599 = 1;
        float r11871600 = r11871598 + r11871599;
        float r11871601 = log(r11871600);
        float r11871602 = r11871600 * r11871601;
        float r11871603 = log(r11871598);
        float r11871604 = r11871598 * r11871603;
        float r11871605 = r11871602 - r11871604;
        float r11871606 = r11871605 - r11871599;
        return r11871606;
}

double f_id(double n) {
        double r11871607 = n;
        double r11871608 = 1;
        double r11871609 = r11871607 + r11871608;
        double r11871610 = log(r11871609);
        double r11871611 = r11871609 * r11871610;
        double r11871612 = log(r11871607);
        double r11871613 = r11871607 * r11871612;
        double r11871614 = r11871611 - r11871613;
        double r11871615 = r11871614 - r11871608;
        return r11871615;
}


double f_of(float n) {
        float r11871616 = 1;
        float r11871617 = n;
        float r11871618 = r11871616 + r11871617;
        float r11871619 = log(r11871618);
        float r11871620 = r11871618 * r11871619;
        float r11871621 = -r11871617;
        float r11871622 = log(r11871617);
        float r11871623 = r11871621 * r11871622;
        float r11871624 = r11871616 + r11871623;
        float r11871625 = r11871620 - r11871624;
        return r11871625;
}

double f_od(double n) {
        double r11871626 = 1;
        double r11871627 = n;
        double r11871628 = r11871626 + r11871627;
        double r11871629 = log(r11871628);
        double r11871630 = r11871628 * r11871629;
        double r11871631 = -r11871627;
        double r11871632 = log(r11871627);
        double r11871633 = r11871631 * r11871632;
        double r11871634 = r11871626 + r11871633;
        double r11871635 = r11871630 - r11871634;
        return r11871635;
}

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 r11871636, r11871637, r11871638, r11871639, r11871640, r11871641, r11871642, r11871643, r11871644;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r11871636);
        mpfr_init_set_str(r11871637, "1", 10, MPFR_RNDN);
        mpfr_init(r11871638);
        mpfr_init(r11871639);
        mpfr_init(r11871640);
        mpfr_init(r11871641);
        mpfr_init(r11871642);
        mpfr_init(r11871643);
        mpfr_init(r11871644);
}

double f_im(double n) {
        mpfr_set_d(r11871636, n, MPFR_RNDN);
        ;
        mpfr_add(r11871638, r11871636, r11871637, MPFR_RNDN);
        mpfr_log(r11871639, r11871638, MPFR_RNDN);
        mpfr_mul(r11871640, r11871638, r11871639, MPFR_RNDN);
        mpfr_log(r11871641, r11871636, MPFR_RNDN);
        mpfr_mul(r11871642, r11871636, r11871641, MPFR_RNDN);
        mpfr_sub(r11871643, r11871640, r11871642, MPFR_RNDN);
        mpfr_sub(r11871644, r11871643, r11871637, MPFR_RNDN);
        return mpfr_get_d(r11871644, MPFR_RNDN);
}

static mpfr_t r11871645, r11871646, r11871647, r11871648, r11871649, r11871650, r11871651, r11871652, r11871653, r11871654;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11871645, "1", 10, MPFR_RNDN);
        mpfr_init(r11871646);
        mpfr_init(r11871647);
        mpfr_init(r11871648);
        mpfr_init(r11871649);
        mpfr_init(r11871650);
        mpfr_init(r11871651);
        mpfr_init(r11871652);
        mpfr_init(r11871653);
        mpfr_init(r11871654);
}

double f_fm(double n) {
        ;
        mpfr_set_d(r11871646, n, MPFR_RNDN);
        mpfr_add(r11871647, r11871645, r11871646, MPFR_RNDN);
        mpfr_log(r11871648, r11871647, MPFR_RNDN);
        mpfr_mul(r11871649, r11871647, r11871648, MPFR_RNDN);
        mpfr_neg(r11871650, r11871646, MPFR_RNDN);
        mpfr_log(r11871651, r11871646, MPFR_RNDN);
        mpfr_mul(r11871652, r11871650, r11871651, MPFR_RNDN);
        mpfr_add(r11871653, r11871645, r11871652, MPFR_RNDN);
        mpfr_sub(r11871654, r11871649, r11871653, MPFR_RNDN);
        return mpfr_get_d(r11871654, MPFR_RNDN);
}

static mpfr_t r11871655, r11871656, r11871657, r11871658, r11871659, r11871660, r11871661, r11871662, r11871663, r11871664;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11871655, "1", 10, MPFR_RNDN);
        mpfr_init(r11871656);
        mpfr_init(r11871657);
        mpfr_init(r11871658);
        mpfr_init(r11871659);
        mpfr_init(r11871660);
        mpfr_init(r11871661);
        mpfr_init(r11871662);
        mpfr_init(r11871663);
        mpfr_init(r11871664);
}

double f_dm(double n) {
        ;
        mpfr_set_d(r11871656, n, MPFR_RNDN);
        mpfr_add(r11871657, r11871655, r11871656, MPFR_RNDN);
        mpfr_log(r11871658, r11871657, MPFR_RNDN);
        mpfr_mul(r11871659, r11871657, r11871658, MPFR_RNDN);
        mpfr_neg(r11871660, r11871656, MPFR_RNDN);
        mpfr_log(r11871661, r11871656, MPFR_RNDN);
        mpfr_mul(r11871662, r11871660, r11871661, MPFR_RNDN);
        mpfr_add(r11871663, r11871655, r11871662, MPFR_RNDN);
        mpfr_sub(r11871664, r11871659, r11871663, MPFR_RNDN);
        return mpfr_get_d(r11871664, MPFR_RNDN);
}

