#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 r6215381 = n;
        float r6215382 = 1;
        float r6215383 = r6215381 + r6215382;
        float r6215384 = log(r6215383);
        float r6215385 = r6215383 * r6215384;
        float r6215386 = log(r6215381);
        float r6215387 = r6215381 * r6215386;
        float r6215388 = r6215385 - r6215387;
        float r6215389 = r6215388 - r6215382;
        return r6215389;
}

double f_id(double n) {
        double r6215390 = n;
        double r6215391 = 1;
        double r6215392 = r6215390 + r6215391;
        double r6215393 = log(r6215392);
        double r6215394 = r6215392 * r6215393;
        double r6215395 = log(r6215390);
        double r6215396 = r6215390 * r6215395;
        double r6215397 = r6215394 - r6215396;
        double r6215398 = r6215397 - r6215391;
        return r6215398;
}


double f_of(float n) {
        float r6215399 = 1;
        float r6215400 = n;
        float r6215401 = r6215399 + r6215400;
        float r6215402 = log(r6215401);
        float r6215403 = r6215401 * r6215402;
        float r6215404 = -r6215400;
        float r6215405 = log(r6215400);
        float r6215406 = r6215404 * r6215405;
        float r6215407 = r6215399 + r6215406;
        float r6215408 = r6215403 - r6215407;
        return r6215408;
}

double f_od(double n) {
        double r6215409 = 1;
        double r6215410 = n;
        double r6215411 = r6215409 + r6215410;
        double r6215412 = log(r6215411);
        double r6215413 = r6215411 * r6215412;
        double r6215414 = -r6215410;
        double r6215415 = log(r6215410);
        double r6215416 = r6215414 * r6215415;
        double r6215417 = r6215409 + r6215416;
        double r6215418 = r6215413 - r6215417;
        return r6215418;
}

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 r6215419, r6215420, r6215421, r6215422, r6215423, r6215424, r6215425, r6215426, r6215427;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r6215419);
        mpfr_init_set_str(r6215420, "1", 10, MPFR_RNDN);
        mpfr_init(r6215421);
        mpfr_init(r6215422);
        mpfr_init(r6215423);
        mpfr_init(r6215424);
        mpfr_init(r6215425);
        mpfr_init(r6215426);
        mpfr_init(r6215427);
}

double f_im(double n) {
        mpfr_set_d(r6215419, n, MPFR_RNDN);
        ;
        mpfr_add(r6215421, r6215419, r6215420, MPFR_RNDN);
        mpfr_log(r6215422, r6215421, MPFR_RNDN);
        mpfr_mul(r6215423, r6215421, r6215422, MPFR_RNDN);
        mpfr_log(r6215424, r6215419, MPFR_RNDN);
        mpfr_mul(r6215425, r6215419, r6215424, MPFR_RNDN);
        mpfr_sub(r6215426, r6215423, r6215425, MPFR_RNDN);
        mpfr_sub(r6215427, r6215426, r6215420, MPFR_RNDN);
        return mpfr_get_d(r6215427, MPFR_RNDN);
}

static mpfr_t r6215428, r6215429, r6215430, r6215431, r6215432, r6215433, r6215434, r6215435, r6215436, r6215437;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6215428, "1", 10, MPFR_RNDN);
        mpfr_init(r6215429);
        mpfr_init(r6215430);
        mpfr_init(r6215431);
        mpfr_init(r6215432);
        mpfr_init(r6215433);
        mpfr_init(r6215434);
        mpfr_init(r6215435);
        mpfr_init(r6215436);
        mpfr_init(r6215437);
}

double f_fm(double n) {
        ;
        mpfr_set_d(r6215429, n, MPFR_RNDN);
        mpfr_add(r6215430, r6215428, r6215429, MPFR_RNDN);
        mpfr_log(r6215431, r6215430, MPFR_RNDN);
        mpfr_mul(r6215432, r6215430, r6215431, MPFR_RNDN);
        mpfr_neg(r6215433, r6215429, MPFR_RNDN);
        mpfr_log(r6215434, r6215429, MPFR_RNDN);
        mpfr_mul(r6215435, r6215433, r6215434, MPFR_RNDN);
        mpfr_add(r6215436, r6215428, r6215435, MPFR_RNDN);
        mpfr_sub(r6215437, r6215432, r6215436, MPFR_RNDN);
        return mpfr_get_d(r6215437, MPFR_RNDN);
}

static mpfr_t r6215438, r6215439, r6215440, r6215441, r6215442, r6215443, r6215444, r6215445, r6215446, r6215447;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r6215438, "1", 10, MPFR_RNDN);
        mpfr_init(r6215439);
        mpfr_init(r6215440);
        mpfr_init(r6215441);
        mpfr_init(r6215442);
        mpfr_init(r6215443);
        mpfr_init(r6215444);
        mpfr_init(r6215445);
        mpfr_init(r6215446);
        mpfr_init(r6215447);
}

double f_dm(double n) {
        ;
        mpfr_set_d(r6215439, n, MPFR_RNDN);
        mpfr_add(r6215440, r6215438, r6215439, MPFR_RNDN);
        mpfr_log(r6215441, r6215440, MPFR_RNDN);
        mpfr_mul(r6215442, r6215440, r6215441, MPFR_RNDN);
        mpfr_neg(r6215443, r6215439, MPFR_RNDN);
        mpfr_log(r6215444, r6215439, MPFR_RNDN);
        mpfr_mul(r6215445, r6215443, r6215444, MPFR_RNDN);
        mpfr_add(r6215446, r6215438, r6215445, MPFR_RNDN);
        mpfr_sub(r6215447, r6215442, r6215446, MPFR_RNDN);
        return mpfr_get_d(r6215447, MPFR_RNDN);
}

