#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 r26552 = 1;
        float r26553 = x;
        float r26554 = r26553 - r26552;
        float r26555 = r26552 / r26554;
        float r26556 = r26553 + r26552;
        float r26557 = r26553 / r26556;
        float r26558 = r26555 + r26557;
        return r26558;
}

double f_id(double x) {
        double r26559 = 1;
        double r26560 = x;
        double r26561 = r26560 - r26559;
        double r26562 = r26559 / r26561;
        double r26563 = r26560 + r26559;
        double r26564 = r26560 / r26563;
        double r26565 = r26562 + r26564;
        return r26565;
}


double f_of(float x) {
        float r26566 = 1;
        float r26567 = x;
        float r26568 = r26567 - r26566;
        float r26569 = r26566 / r26568;
        float r26570 = r26567 + r26566;
        float r26571 = r26567 / r26570;
        float r26572 = r26569 + r26571;
        return r26572;
}

double f_od(double x) {
        double r26573 = 1;
        double r26574 = x;
        double r26575 = r26574 - r26573;
        double r26576 = r26573 / r26575;
        double r26577 = r26574 + r26573;
        double r26578 = r26574 / r26577;
        double r26579 = r26576 + r26578;
        return r26579;
}

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 r26580, r26581, r26582, r26583, r26584, r26585, r26586;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r26580, "1", 10, MPFR_RNDN);
        mpfr_init(r26581);
        mpfr_init(r26582);
        mpfr_init(r26583);
        mpfr_init(r26584);
        mpfr_init(r26585);
        mpfr_init(r26586);
}

double f_im(double x) {
        ;
        mpfr_set_d(r26581, x, MPFR_RNDN);
        mpfr_sub(r26582, r26581, r26580, MPFR_RNDN);
        mpfr_div(r26583, r26580, r26582, MPFR_RNDN);
        mpfr_add(r26584, r26581, r26580, MPFR_RNDN);
        mpfr_div(r26585, r26581, r26584, MPFR_RNDN);
        mpfr_add(r26586, r26583, r26585, MPFR_RNDN);
        return mpfr_get_d(r26586, MPFR_RNDN);
}

static mpfr_t r26587, r26588, r26589, r26590, r26591, r26592, r26593;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r26587, "1", 10, MPFR_RNDN);
        mpfr_init(r26588);
        mpfr_init(r26589);
        mpfr_init(r26590);
        mpfr_init(r26591);
        mpfr_init(r26592);
        mpfr_init(r26593);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r26588, x, MPFR_RNDN);
        mpfr_sub(r26589, r26588, r26587, MPFR_RNDN);
        mpfr_div(r26590, r26587, r26589, MPFR_RNDN);
        mpfr_add(r26591, r26588, r26587, MPFR_RNDN);
        mpfr_div(r26592, r26588, r26591, MPFR_RNDN);
        mpfr_add(r26593, r26590, r26592, MPFR_RNDN);
        return mpfr_get_d(r26593, MPFR_RNDN);
}

static mpfr_t r26594, r26595, r26596, r26597, r26598, r26599, r26600;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r26594, "1", 10, MPFR_RNDN);
        mpfr_init(r26595);
        mpfr_init(r26596);
        mpfr_init(r26597);
        mpfr_init(r26598);
        mpfr_init(r26599);
        mpfr_init(r26600);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r26595, x, MPFR_RNDN);
        mpfr_sub(r26596, r26595, r26594, MPFR_RNDN);
        mpfr_div(r26597, r26594, r26596, MPFR_RNDN);
        mpfr_add(r26598, r26595, r26594, MPFR_RNDN);
        mpfr_div(r26599, r26595, r26598, MPFR_RNDN);
        mpfr_add(r26600, r26597, r26599, MPFR_RNDN);
        return mpfr_get_d(r26600, MPFR_RNDN);
}

