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

char *name = "Asymptote B";

double f_if(float x) {
        float r24500 = 1;
        float r24501 = x;
        float r24502 = r24501 - r24500;
        float r24503 = r24500 / r24502;
        float r24504 = r24501 + r24500;
        float r24505 = r24501 / r24504;
        float r24506 = r24503 + r24505;
        return r24506;
}

double f_id(double x) {
        double r24507 = 1;
        double r24508 = x;
        double r24509 = r24508 - r24507;
        double r24510 = r24507 / r24509;
        double r24511 = r24508 + r24507;
        double r24512 = r24508 / r24511;
        double r24513 = r24510 + r24512;
        return r24513;
}


double f_of(float x) {
        float r24514 = 1;
        float r24515 = x;
        float r24516 = r24515 - r24514;
        float r24517 = r24514 / r24516;
        float r24518 = r24515 + r24514;
        float r24519 = r24515 / r24518;
        float r24520 = r24517 + r24519;
        return r24520;
}

double f_od(double x) {
        double r24521 = 1;
        double r24522 = x;
        double r24523 = r24522 - r24521;
        double r24524 = r24521 / r24523;
        double r24525 = r24522 + r24521;
        double r24526 = r24522 / r24525;
        double r24527 = r24524 + r24526;
        return r24527;
}

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 r24528, r24529, r24530, r24531, r24532, r24533, r24534;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r24528, "1", 10, MPFR_RNDN);
        mpfr_init(r24529);
        mpfr_init(r24530);
        mpfr_init(r24531);
        mpfr_init(r24532);
        mpfr_init(r24533);
        mpfr_init(r24534);
}

double f_im(double x) {
        ;
        mpfr_set_d(r24529, x, MPFR_RNDN);
        mpfr_sub(r24530, r24529, r24528, MPFR_RNDN);
        mpfr_div(r24531, r24528, r24530, MPFR_RNDN);
        mpfr_add(r24532, r24529, r24528, MPFR_RNDN);
        mpfr_div(r24533, r24529, r24532, MPFR_RNDN);
        mpfr_add(r24534, r24531, r24533, MPFR_RNDN);
        return mpfr_get_d(r24534, MPFR_RNDN);
}

static mpfr_t r24535, r24536, r24537, r24538, r24539, r24540, r24541;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r24535, "1", 10, MPFR_RNDN);
        mpfr_init(r24536);
        mpfr_init(r24537);
        mpfr_init(r24538);
        mpfr_init(r24539);
        mpfr_init(r24540);
        mpfr_init(r24541);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r24536, x, MPFR_RNDN);
        mpfr_sub(r24537, r24536, r24535, MPFR_RNDN);
        mpfr_div(r24538, r24535, r24537, MPFR_RNDN);
        mpfr_add(r24539, r24536, r24535, MPFR_RNDN);
        mpfr_div(r24540, r24536, r24539, MPFR_RNDN);
        mpfr_add(r24541, r24538, r24540, MPFR_RNDN);
        return mpfr_get_d(r24541, MPFR_RNDN);
}

static mpfr_t r24542, r24543, r24544, r24545, r24546, r24547, r24548;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r24542, "1", 10, MPFR_RNDN);
        mpfr_init(r24543);
        mpfr_init(r24544);
        mpfr_init(r24545);
        mpfr_init(r24546);
        mpfr_init(r24547);
        mpfr_init(r24548);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r24543, x, MPFR_RNDN);
        mpfr_sub(r24544, r24543, r24542, MPFR_RNDN);
        mpfr_div(r24545, r24542, r24544, MPFR_RNDN);
        mpfr_add(r24546, r24543, r24542, MPFR_RNDN);
        mpfr_div(r24547, r24543, r24546, MPFR_RNDN);
        mpfr_add(r24548, r24545, r24547, MPFR_RNDN);
        return mpfr_get_d(r24548, MPFR_RNDN);
}

