#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 r26541 = 1;
        float r26542 = x;
        float r26543 = r26542 - r26541;
        float r26544 = r26541 / r26543;
        float r26545 = r26542 + r26541;
        float r26546 = r26542 / r26545;
        float r26547 = r26544 + r26546;
        return r26547;
}

double f_id(double x) {
        double r26548 = 1;
        double r26549 = x;
        double r26550 = r26549 - r26548;
        double r26551 = r26548 / r26550;
        double r26552 = r26549 + r26548;
        double r26553 = r26549 / r26552;
        double r26554 = r26551 + r26553;
        return r26554;
}


double f_of(float x) {
        float r26555 = 1;
        float r26556 = x;
        float r26557 = r26556 - r26555;
        float r26558 = r26555 / r26557;
        float r26559 = r26556 + r26555;
        float r26560 = r26556 / r26559;
        float r26561 = r26558 + r26560;
        float r26562 = cbrt(r26561);
        float r26563 = r26562 * r26562;
        float r26564 = r26563 * r26562;
        return r26564;
}

double f_od(double x) {
        double r26565 = 1;
        double r26566 = x;
        double r26567 = r26566 - r26565;
        double r26568 = r26565 / r26567;
        double r26569 = r26566 + r26565;
        double r26570 = r26566 / r26569;
        double r26571 = r26568 + r26570;
        double r26572 = cbrt(r26571);
        double r26573 = r26572 * r26572;
        double r26574 = r26573 * r26572;
        return r26574;
}

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 r26575, r26576, r26577, r26578, r26579, r26580, r26581;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r26575, "1", 10, MPFR_RNDN);
        mpfr_init(r26576);
        mpfr_init(r26577);
        mpfr_init(r26578);
        mpfr_init(r26579);
        mpfr_init(r26580);
        mpfr_init(r26581);
}

double f_im(double x) {
        ;
        mpfr_set_d(r26576, x, MPFR_RNDN);
        mpfr_sub(r26577, r26576, r26575, MPFR_RNDN);
        mpfr_div(r26578, r26575, r26577, MPFR_RNDN);
        mpfr_add(r26579, r26576, r26575, MPFR_RNDN);
        mpfr_div(r26580, r26576, r26579, MPFR_RNDN);
        mpfr_add(r26581, r26578, r26580, MPFR_RNDN);
        return mpfr_get_d(r26581, MPFR_RNDN);
}

static mpfr_t r26582, r26583, r26584, r26585, r26586, r26587, r26588, r26589, r26590, r26591;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r26582, "1", 10, MPFR_RNDN);
        mpfr_init(r26583);
        mpfr_init(r26584);
        mpfr_init(r26585);
        mpfr_init(r26586);
        mpfr_init(r26587);
        mpfr_init(r26588);
        mpfr_init(r26589);
        mpfr_init(r26590);
        mpfr_init(r26591);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r26583, x, MPFR_RNDN);
        mpfr_sub(r26584, r26583, r26582, MPFR_RNDN);
        mpfr_div(r26585, r26582, r26584, MPFR_RNDN);
        mpfr_add(r26586, r26583, r26582, MPFR_RNDN);
        mpfr_div(r26587, r26583, r26586, MPFR_RNDN);
        mpfr_add(r26588, r26585, r26587, MPFR_RNDN);
        mpfr_cbrt(r26589, r26588, MPFR_RNDN);
        mpfr_mul(r26590, r26589, r26589, MPFR_RNDN);
        mpfr_mul(r26591, r26590, r26589, MPFR_RNDN);
        return mpfr_get_d(r26591, MPFR_RNDN);
}

static mpfr_t r26592, r26593, r26594, r26595, r26596, r26597, r26598, r26599, r26600, r26601;

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

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

