#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 r3912391 = 1;
        float r3912392 = x;
        float r3912393 = r3912392 - r3912391;
        float r3912394 = r3912391 / r3912393;
        float r3912395 = r3912392 + r3912391;
        float r3912396 = r3912392 / r3912395;
        float r3912397 = r3912394 + r3912396;
        return r3912397;
}

double f_id(double x) {
        double r3912398 = 1;
        double r3912399 = x;
        double r3912400 = r3912399 - r3912398;
        double r3912401 = r3912398 / r3912400;
        double r3912402 = r3912399 + r3912398;
        double r3912403 = r3912399 / r3912402;
        double r3912404 = r3912401 + r3912403;
        return r3912404;
}


double f_of(float x) {
        float r3912405 = 1;
        float r3912406 = x;
        float r3912407 = r3912406 - r3912405;
        float r3912408 = r3912405 / r3912407;
        float r3912409 = r3912407 * r3912407;
        float r3912410 = r3912408 / r3912409;
        float r3912411 = cbrt(r3912410);
        float r3912412 = r3912406 + r3912405;
        float r3912413 = r3912406 / r3912412;
        float r3912414 = r3912411 + r3912413;
        return r3912414;
}

double f_od(double x) {
        double r3912415 = 1;
        double r3912416 = x;
        double r3912417 = r3912416 - r3912415;
        double r3912418 = r3912415 / r3912417;
        double r3912419 = r3912417 * r3912417;
        double r3912420 = r3912418 / r3912419;
        double r3912421 = cbrt(r3912420);
        double r3912422 = r3912416 + r3912415;
        double r3912423 = r3912416 / r3912422;
        double r3912424 = r3912421 + r3912423;
        return r3912424;
}

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 r3912425, r3912426, r3912427, r3912428, r3912429, r3912430, r3912431;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r3912425, "1", 10, MPFR_RNDN);
        mpfr_init(r3912426);
        mpfr_init(r3912427);
        mpfr_init(r3912428);
        mpfr_init(r3912429);
        mpfr_init(r3912430);
        mpfr_init(r3912431);
}

double f_im(double x) {
        ;
        mpfr_set_d(r3912426, x, MPFR_RNDN);
        mpfr_sub(r3912427, r3912426, r3912425, MPFR_RNDN);
        mpfr_div(r3912428, r3912425, r3912427, MPFR_RNDN);
        mpfr_add(r3912429, r3912426, r3912425, MPFR_RNDN);
        mpfr_div(r3912430, r3912426, r3912429, MPFR_RNDN);
        mpfr_add(r3912431, r3912428, r3912430, MPFR_RNDN);
        return mpfr_get_d(r3912431, MPFR_RNDN);
}

static mpfr_t r3912432, r3912433, r3912434, r3912435, r3912436, r3912437, r3912438, r3912439, r3912440, r3912441;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r3912432, "1", 10, MPFR_RNDN);
        mpfr_init(r3912433);
        mpfr_init(r3912434);
        mpfr_init(r3912435);
        mpfr_init(r3912436);
        mpfr_init(r3912437);
        mpfr_init(r3912438);
        mpfr_init(r3912439);
        mpfr_init(r3912440);
        mpfr_init(r3912441);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r3912433, x, MPFR_RNDN);
        mpfr_sub(r3912434, r3912433, r3912432, MPFR_RNDN);
        mpfr_div(r3912435, r3912432, r3912434, MPFR_RNDN);
        mpfr_mul(r3912436, r3912434, r3912434, MPFR_RNDN);
        mpfr_div(r3912437, r3912435, r3912436, MPFR_RNDN);
        mpfr_cbrt(r3912438, r3912437, MPFR_RNDN);
        mpfr_add(r3912439, r3912433, r3912432, MPFR_RNDN);
        mpfr_div(r3912440, r3912433, r3912439, MPFR_RNDN);
        mpfr_add(r3912441, r3912438, r3912440, MPFR_RNDN);
        return mpfr_get_d(r3912441, MPFR_RNDN);
}

static mpfr_t r3912442, r3912443, r3912444, r3912445, r3912446, r3912447, r3912448, r3912449, r3912450, r3912451;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r3912442, "1", 10, MPFR_RNDN);
        mpfr_init(r3912443);
        mpfr_init(r3912444);
        mpfr_init(r3912445);
        mpfr_init(r3912446);
        mpfr_init(r3912447);
        mpfr_init(r3912448);
        mpfr_init(r3912449);
        mpfr_init(r3912450);
        mpfr_init(r3912451);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r3912443, x, MPFR_RNDN);
        mpfr_sub(r3912444, r3912443, r3912442, MPFR_RNDN);
        mpfr_div(r3912445, r3912442, r3912444, MPFR_RNDN);
        mpfr_mul(r3912446, r3912444, r3912444, MPFR_RNDN);
        mpfr_div(r3912447, r3912445, r3912446, MPFR_RNDN);
        mpfr_cbrt(r3912448, r3912447, MPFR_RNDN);
        mpfr_add(r3912449, r3912443, r3912442, MPFR_RNDN);
        mpfr_div(r3912450, r3912443, r3912449, MPFR_RNDN);
        mpfr_add(r3912451, r3912448, r3912450, MPFR_RNDN);
        return mpfr_get_d(r3912451, MPFR_RNDN);
}

