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

char *name = "Asymptote A";

double f_if(float x) {
        float r26831 = 1;
        float r26832 = x;
        float r26833 = r26832 + r26831;
        float r26834 = r26831 / r26833;
        float r26835 = r26832 - r26831;
        float r26836 = r26831 / r26835;
        float r26837 = r26834 - r26836;
        return r26837;
}

double f_id(double x) {
        double r26838 = 1;
        double r26839 = x;
        double r26840 = r26839 + r26838;
        double r26841 = r26838 / r26840;
        double r26842 = r26839 - r26838;
        double r26843 = r26838 / r26842;
        double r26844 = r26841 - r26843;
        return r26844;
}


double f_of(float x) {
        float r26845 = 1;
        float r26846 = r26845 + r26845;
        float r26847 = 3;
        float r26848 = pow(r26846, r26847);
        float r26849 = -r26845;
        float r26850 = x;
        float r26851 = r26850 + r26845;
        float r26852 = r26849 / r26851;
        float r26853 = r26848 * r26852;
        float r26854 = r26850 - r26845;
        float r26855 = r26854 + r26854;
        float r26856 = r26855 + r26855;
        float r26857 = r26853 / r26856;
        return r26857;
}

double f_od(double x) {
        double r26858 = 1;
        double r26859 = r26858 + r26858;
        double r26860 = 3;
        double r26861 = pow(r26859, r26860);
        double r26862 = -r26858;
        double r26863 = x;
        double r26864 = r26863 + r26858;
        double r26865 = r26862 / r26864;
        double r26866 = r26861 * r26865;
        double r26867 = r26863 - r26858;
        double r26868 = r26867 + r26867;
        double r26869 = r26868 + r26868;
        double r26870 = r26866 / r26869;
        return r26870;
}

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 r26871, r26872, r26873, r26874, r26875, r26876, r26877;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(848);
        mpfr_init_set_str(r26871, "1", 10, MPFR_RNDN);
        mpfr_init(r26872);
        mpfr_init(r26873);
        mpfr_init(r26874);
        mpfr_init(r26875);
        mpfr_init(r26876);
        mpfr_init(r26877);
}

double f_im(double x) {
        ;
        mpfr_set_d(r26872, x, MPFR_RNDN);
        mpfr_add(r26873, r26872, r26871, MPFR_RNDN);
        mpfr_div(r26874, r26871, r26873, MPFR_RNDN);
        mpfr_sub(r26875, r26872, r26871, MPFR_RNDN);
        mpfr_div(r26876, r26871, r26875, MPFR_RNDN);
        mpfr_sub(r26877, r26874, r26876, MPFR_RNDN);
        return mpfr_get_d(r26877, MPFR_RNDN);
}

static mpfr_t r26878, r26879, r26880, r26881, r26882, r26883, r26884, r26885, r26886, r26887, r26888, r26889, r26890;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(848);
        mpfr_init_set_str(r26878, "1", 10, MPFR_RNDN);
        mpfr_init(r26879);
        mpfr_init_set_str(r26880, "3", 10, MPFR_RNDN);
        mpfr_init(r26881);
        mpfr_init(r26882);
        mpfr_init(r26883);
        mpfr_init(r26884);
        mpfr_init(r26885);
        mpfr_init(r26886);
        mpfr_init(r26887);
        mpfr_init(r26888);
        mpfr_init(r26889);
        mpfr_init(r26890);
}

double f_fm(double x) {
        ;
        mpfr_add(r26879, r26878, r26878, MPFR_RNDN);
        ;
        mpfr_pow(r26881, r26879, r26880, MPFR_RNDN);
        mpfr_neg(r26882, r26878, MPFR_RNDN);
        mpfr_set_d(r26883, x, MPFR_RNDN);
        mpfr_add(r26884, r26883, r26878, MPFR_RNDN);
        mpfr_div(r26885, r26882, r26884, MPFR_RNDN);
        mpfr_mul(r26886, r26881, r26885, MPFR_RNDN);
        mpfr_sub(r26887, r26883, r26878, MPFR_RNDN);
        mpfr_add(r26888, r26887, r26887, MPFR_RNDN);
        mpfr_add(r26889, r26888, r26888, MPFR_RNDN);
        mpfr_div(r26890, r26886, r26889, MPFR_RNDN);
        return mpfr_get_d(r26890, MPFR_RNDN);
}

static mpfr_t r26891, r26892, r26893, r26894, r26895, r26896, r26897, r26898, r26899, r26900, r26901, r26902, r26903;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(848);
        mpfr_init_set_str(r26891, "1", 10, MPFR_RNDN);
        mpfr_init(r26892);
        mpfr_init_set_str(r26893, "3", 10, MPFR_RNDN);
        mpfr_init(r26894);
        mpfr_init(r26895);
        mpfr_init(r26896);
        mpfr_init(r26897);
        mpfr_init(r26898);
        mpfr_init(r26899);
        mpfr_init(r26900);
        mpfr_init(r26901);
        mpfr_init(r26902);
        mpfr_init(r26903);
}

double f_dm(double x) {
        ;
        mpfr_add(r26892, r26891, r26891, MPFR_RNDN);
        ;
        mpfr_pow(r26894, r26892, r26893, MPFR_RNDN);
        mpfr_neg(r26895, r26891, MPFR_RNDN);
        mpfr_set_d(r26896, x, MPFR_RNDN);
        mpfr_add(r26897, r26896, r26891, MPFR_RNDN);
        mpfr_div(r26898, r26895, r26897, MPFR_RNDN);
        mpfr_mul(r26899, r26894, r26898, MPFR_RNDN);
        mpfr_sub(r26900, r26896, r26891, MPFR_RNDN);
        mpfr_add(r26901, r26900, r26900, MPFR_RNDN);
        mpfr_add(r26902, r26901, r26901, MPFR_RNDN);
        mpfr_div(r26903, r26899, r26902, MPFR_RNDN);
        return mpfr_get_d(r26903, MPFR_RNDN);
}

