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

char *name = "Asymptote C";

double f_if(float x) {
        float r26174 = x;
        float r26175 = 1;
        float r26176 = r26174 + r26175;
        float r26177 = r26174 / r26176;
        float r26178 = r26174 - r26175;
        float r26179 = r26176 / r26178;
        float r26180 = r26177 - r26179;
        return r26180;
}

double f_id(double x) {
        double r26181 = x;
        double r26182 = 1;
        double r26183 = r26181 + r26182;
        double r26184 = r26181 / r26183;
        double r26185 = r26181 - r26182;
        double r26186 = r26183 / r26185;
        double r26187 = r26184 - r26186;
        return r26187;
}


double f_of(float x) {
        float r26188 = 18;
        float r26189 = x;
        float r26190 = r26188 / r26189;
        float r26191 = -r26190;
        float r26192 = 51;
        float r26193 = r26189 * r26189;
        float r26194 = r26192 / r26193;
        float r26195 = r26191 - r26194;
        float r26196 = 348;
        float r26197 = r26196 / r26189;
        float r26198 = r26197 / r26193;
        float r26199 = r26195 - r26198;
        float r26200 = 1;
        float r26201 = r26200 + r26189;
        float r26202 = r26189 / r26201;
        float r26203 = r26189 - r26200;
        float r26204 = r26201 / r26203;
        float r26205 = r26202 + r26204;
        float r26206 = r26199 / r26205;
        float r26207 = r26203 / r26201;
        float r26208 = r26202 / r26207;
        float r26209 = r26208 * r26208;
        float r26210 = 3;
        float r26211 = r26200 + r26210;
        float r26212 = pow(r26202, r26211);
        float r26213 = pow(r26204, r26211);
        float r26214 = r26212 + r26213;
        float r26215 = r26209 + r26214;
        float r26216 = r26206 / r26215;
        float r26217 = -4.1007362573475046e-07;
        bool r26218 = r26216 <= r26217;
        float r26219 = pow(r26189, r26210);
        float r26220 = r26219 - r26200;
        float r26221 = r26201 / r26220;
        float r26222 = r26193 + r26201;
        float r26223 = r26221 * r26222;
        float r26224 = r26202 - r26223;
        float r26225 = 0.0002815692338335252;
        bool r26226 = r26216 <= r26225;
        float r26227 = r26210 / r26189;
        float r26228 = -r26227;
        float r26229 = r26227 + r26200;
        float r26230 = r26229 / r26193;
        float r26231 = r26228 - r26230;
        float r26232 = r26202 * r26202;
        float r26233 = pow(r26204, r26210);
        float r26234 = r26233 * r26233;
        float r26235 = cbrt(r26234);
        float r26236 = r26232 - r26235;
        float r26237 = r26236 / r26205;
        float r26238 = r26226 ? r26231 : r26237;
        float r26239 = r26218 ? r26224 : r26238;
        return r26239;
}

double f_od(double x) {
        double r26240 = 18;
        double r26241 = x;
        double r26242 = r26240 / r26241;
        double r26243 = -r26242;
        double r26244 = 51;
        double r26245 = r26241 * r26241;
        double r26246 = r26244 / r26245;
        double r26247 = r26243 - r26246;
        double r26248 = 348;
        double r26249 = r26248 / r26241;
        double r26250 = r26249 / r26245;
        double r26251 = r26247 - r26250;
        double r26252 = 1;
        double r26253 = r26252 + r26241;
        double r26254 = r26241 / r26253;
        double r26255 = r26241 - r26252;
        double r26256 = r26253 / r26255;
        double r26257 = r26254 + r26256;
        double r26258 = r26251 / r26257;
        double r26259 = r26255 / r26253;
        double r26260 = r26254 / r26259;
        double r26261 = r26260 * r26260;
        double r26262 = 3;
        double r26263 = r26252 + r26262;
        double r26264 = pow(r26254, r26263);
        double r26265 = pow(r26256, r26263);
        double r26266 = r26264 + r26265;
        double r26267 = r26261 + r26266;
        double r26268 = r26258 / r26267;
        double r26269 = -4.1007362573475046e-07;
        bool r26270 = r26268 <= r26269;
        double r26271 = pow(r26241, r26262);
        double r26272 = r26271 - r26252;
        double r26273 = r26253 / r26272;
        double r26274 = r26245 + r26253;
        double r26275 = r26273 * r26274;
        double r26276 = r26254 - r26275;
        double r26277 = 0.0002815692338335252;
        bool r26278 = r26268 <= r26277;
        double r26279 = r26262 / r26241;
        double r26280 = -r26279;
        double r26281 = r26279 + r26252;
        double r26282 = r26281 / r26245;
        double r26283 = r26280 - r26282;
        double r26284 = r26254 * r26254;
        double r26285 = pow(r26256, r26262);
        double r26286 = r26285 * r26285;
        double r26287 = cbrt(r26286);
        double r26288 = r26284 - r26287;
        double r26289 = r26288 / r26257;
        double r26290 = r26278 ? r26283 : r26289;
        double r26291 = r26270 ? r26276 : r26290;
        return r26291;
}

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 r26292, r26293, r26294, r26295, r26296, r26297, r26298;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r26292);
        mpfr_init_set_str(r26293, "1", 10, MPFR_RNDN);
        mpfr_init(r26294);
        mpfr_init(r26295);
        mpfr_init(r26296);
        mpfr_init(r26297);
        mpfr_init(r26298);
}

double f_im(double x) {
        mpfr_set_d(r26292, x, MPFR_RNDN);
        ;
        mpfr_add(r26294, r26292, r26293, MPFR_RNDN);
        mpfr_div(r26295, r26292, r26294, MPFR_RNDN);
        mpfr_sub(r26296, r26292, r26293, MPFR_RNDN);
        mpfr_div(r26297, r26294, r26296, MPFR_RNDN);
        mpfr_sub(r26298, r26295, r26297, MPFR_RNDN);
        return mpfr_get_d(r26298, MPFR_RNDN);
}

static mpfr_t r26299, r26300, r26301, r26302, r26303, r26304, r26305, r26306, r26307, r26308, r26309, r26310, r26311, r26312, r26313, r26314, r26315, r26316, r26317, r26318, r26319, r26320, r26321, r26322, r26323, r26324, r26325, r26326, r26327, r26328, r26329, r26330, r26331, r26332, r26333, r26334, r26335, r26336, r26337, r26338, r26339, r26340, r26341, r26342, r26343, r26344, r26345, r26346, r26347, r26348, r26349, r26350;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26299, "18", 10, MPFR_RNDN);
        mpfr_init(r26300);
        mpfr_init(r26301);
        mpfr_init(r26302);
        mpfr_init_set_str(r26303, "51", 10, MPFR_RNDN);
        mpfr_init(r26304);
        mpfr_init(r26305);
        mpfr_init(r26306);
        mpfr_init_set_str(r26307, "348", 10, MPFR_RNDN);
        mpfr_init(r26308);
        mpfr_init(r26309);
        mpfr_init(r26310);
        mpfr_init_set_str(r26311, "1", 10, MPFR_RNDN);
        mpfr_init(r26312);
        mpfr_init(r26313);
        mpfr_init(r26314);
        mpfr_init(r26315);
        mpfr_init(r26316);
        mpfr_init(r26317);
        mpfr_init(r26318);
        mpfr_init(r26319);
        mpfr_init(r26320);
        mpfr_init_set_str(r26321, "3", 10, MPFR_RNDN);
        mpfr_init(r26322);
        mpfr_init(r26323);
        mpfr_init(r26324);
        mpfr_init(r26325);
        mpfr_init(r26326);
        mpfr_init(r26327);
        mpfr_init_set_str(r26328, "-4.1007362573475046e-07", 10, MPFR_RNDN);
        mpfr_init(r26329);
        mpfr_init(r26330);
        mpfr_init(r26331);
        mpfr_init(r26332);
        mpfr_init(r26333);
        mpfr_init(r26334);
        mpfr_init(r26335);
        mpfr_init_set_str(r26336, "0.0002815692338335252", 10, MPFR_RNDN);
        mpfr_init(r26337);
        mpfr_init(r26338);
        mpfr_init(r26339);
        mpfr_init(r26340);
        mpfr_init(r26341);
        mpfr_init(r26342);
        mpfr_init(r26343);
        mpfr_init(r26344);
        mpfr_init(r26345);
        mpfr_init(r26346);
        mpfr_init(r26347);
        mpfr_init(r26348);
        mpfr_init(r26349);
        mpfr_init(r26350);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r26300, x, MPFR_RNDN);
        mpfr_div(r26301, r26299, r26300, MPFR_RNDN);
        mpfr_neg(r26302, r26301, MPFR_RNDN);
        ;
        mpfr_mul(r26304, r26300, r26300, MPFR_RNDN);
        mpfr_div(r26305, r26303, r26304, MPFR_RNDN);
        mpfr_sub(r26306, r26302, r26305, MPFR_RNDN);
        ;
        mpfr_div(r26308, r26307, r26300, MPFR_RNDN);
        mpfr_div(r26309, r26308, r26304, MPFR_RNDN);
        mpfr_sub(r26310, r26306, r26309, MPFR_RNDN);
        ;
        mpfr_add(r26312, r26311, r26300, MPFR_RNDN);
        mpfr_div(r26313, r26300, r26312, MPFR_RNDN);
        mpfr_sub(r26314, r26300, r26311, MPFR_RNDN);
        mpfr_div(r26315, r26312, r26314, MPFR_RNDN);
        mpfr_add(r26316, r26313, r26315, MPFR_RNDN);
        mpfr_div(r26317, r26310, r26316, MPFR_RNDN);
        mpfr_div(r26318, r26314, r26312, MPFR_RNDN);
        mpfr_div(r26319, r26313, r26318, MPFR_RNDN);
        mpfr_mul(r26320, r26319, r26319, MPFR_RNDN);
        ;
        mpfr_add(r26322, r26311, r26321, MPFR_RNDN);
        mpfr_pow(r26323, r26313, r26322, MPFR_RNDN);
        mpfr_pow(r26324, r26315, r26322, MPFR_RNDN);
        mpfr_add(r26325, r26323, r26324, MPFR_RNDN);
        mpfr_add(r26326, r26320, r26325, MPFR_RNDN);
        mpfr_div(r26327, r26317, r26326, MPFR_RNDN);
        ;
        mpfr_set_si(r26329, mpfr_cmp(r26327, r26328) <= 0, MPFR_RNDN);
        mpfr_pow(r26330, r26300, r26321, MPFR_RNDN);
        mpfr_sub(r26331, r26330, r26311, MPFR_RNDN);
        mpfr_div(r26332, r26312, r26331, MPFR_RNDN);
        mpfr_add(r26333, r26304, r26312, MPFR_RNDN);
        mpfr_mul(r26334, r26332, r26333, MPFR_RNDN);
        mpfr_sub(r26335, r26313, r26334, MPFR_RNDN);
        ;
        mpfr_set_si(r26337, mpfr_cmp(r26327, r26336) <= 0, MPFR_RNDN);
        mpfr_div(r26338, r26321, r26300, MPFR_RNDN);
        mpfr_neg(r26339, r26338, MPFR_RNDN);
        mpfr_add(r26340, r26338, r26311, MPFR_RNDN);
        mpfr_div(r26341, r26340, r26304, MPFR_RNDN);
        mpfr_sub(r26342, r26339, r26341, MPFR_RNDN);
        mpfr_mul(r26343, r26313, r26313, MPFR_RNDN);
        mpfr_pow(r26344, r26315, r26321, MPFR_RNDN);
        mpfr_mul(r26345, r26344, r26344, MPFR_RNDN);
        mpfr_cbrt(r26346, r26345, MPFR_RNDN);
        mpfr_sub(r26347, r26343, r26346, MPFR_RNDN);
        mpfr_div(r26348, r26347, r26316, MPFR_RNDN);
        if (mpfr_get_si(r26337, MPFR_RNDN)) { mpfr_set(r26349, r26342, MPFR_RNDN); } else { mpfr_set(r26349, r26348, MPFR_RNDN); };
        if (mpfr_get_si(r26329, MPFR_RNDN)) { mpfr_set(r26350, r26335, MPFR_RNDN); } else { mpfr_set(r26350, r26349, MPFR_RNDN); };
        return mpfr_get_d(r26350, MPFR_RNDN);
}

static mpfr_t r26351, r26352, r26353, r26354, r26355, r26356, r26357, r26358, r26359, r26360, r26361, r26362, r26363, r26364, r26365, r26366, r26367, r26368, r26369, r26370, r26371, r26372, r26373, r26374, r26375, r26376, r26377, r26378, r26379, r26380, r26381, r26382, r26383, r26384, r26385, r26386, r26387, r26388, r26389, r26390, r26391, r26392, r26393, r26394, r26395, r26396, r26397, r26398, r26399, r26400, r26401, r26402;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r26351, "18", 10, MPFR_RNDN);
        mpfr_init(r26352);
        mpfr_init(r26353);
        mpfr_init(r26354);
        mpfr_init_set_str(r26355, "51", 10, MPFR_RNDN);
        mpfr_init(r26356);
        mpfr_init(r26357);
        mpfr_init(r26358);
        mpfr_init_set_str(r26359, "348", 10, MPFR_RNDN);
        mpfr_init(r26360);
        mpfr_init(r26361);
        mpfr_init(r26362);
        mpfr_init_set_str(r26363, "1", 10, MPFR_RNDN);
        mpfr_init(r26364);
        mpfr_init(r26365);
        mpfr_init(r26366);
        mpfr_init(r26367);
        mpfr_init(r26368);
        mpfr_init(r26369);
        mpfr_init(r26370);
        mpfr_init(r26371);
        mpfr_init(r26372);
        mpfr_init_set_str(r26373, "3", 10, MPFR_RNDN);
        mpfr_init(r26374);
        mpfr_init(r26375);
        mpfr_init(r26376);
        mpfr_init(r26377);
        mpfr_init(r26378);
        mpfr_init(r26379);
        mpfr_init_set_str(r26380, "-4.1007362573475046e-07", 10, MPFR_RNDN);
        mpfr_init(r26381);
        mpfr_init(r26382);
        mpfr_init(r26383);
        mpfr_init(r26384);
        mpfr_init(r26385);
        mpfr_init(r26386);
        mpfr_init(r26387);
        mpfr_init_set_str(r26388, "0.0002815692338335252", 10, MPFR_RNDN);
        mpfr_init(r26389);
        mpfr_init(r26390);
        mpfr_init(r26391);
        mpfr_init(r26392);
        mpfr_init(r26393);
        mpfr_init(r26394);
        mpfr_init(r26395);
        mpfr_init(r26396);
        mpfr_init(r26397);
        mpfr_init(r26398);
        mpfr_init(r26399);
        mpfr_init(r26400);
        mpfr_init(r26401);
        mpfr_init(r26402);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r26352, x, MPFR_RNDN);
        mpfr_div(r26353, r26351, r26352, MPFR_RNDN);
        mpfr_neg(r26354, r26353, MPFR_RNDN);
        ;
        mpfr_mul(r26356, r26352, r26352, MPFR_RNDN);
        mpfr_div(r26357, r26355, r26356, MPFR_RNDN);
        mpfr_sub(r26358, r26354, r26357, MPFR_RNDN);
        ;
        mpfr_div(r26360, r26359, r26352, MPFR_RNDN);
        mpfr_div(r26361, r26360, r26356, MPFR_RNDN);
        mpfr_sub(r26362, r26358, r26361, MPFR_RNDN);
        ;
        mpfr_add(r26364, r26363, r26352, MPFR_RNDN);
        mpfr_div(r26365, r26352, r26364, MPFR_RNDN);
        mpfr_sub(r26366, r26352, r26363, MPFR_RNDN);
        mpfr_div(r26367, r26364, r26366, MPFR_RNDN);
        mpfr_add(r26368, r26365, r26367, MPFR_RNDN);
        mpfr_div(r26369, r26362, r26368, MPFR_RNDN);
        mpfr_div(r26370, r26366, r26364, MPFR_RNDN);
        mpfr_div(r26371, r26365, r26370, MPFR_RNDN);
        mpfr_mul(r26372, r26371, r26371, MPFR_RNDN);
        ;
        mpfr_add(r26374, r26363, r26373, MPFR_RNDN);
        mpfr_pow(r26375, r26365, r26374, MPFR_RNDN);
        mpfr_pow(r26376, r26367, r26374, MPFR_RNDN);
        mpfr_add(r26377, r26375, r26376, MPFR_RNDN);
        mpfr_add(r26378, r26372, r26377, MPFR_RNDN);
        mpfr_div(r26379, r26369, r26378, MPFR_RNDN);
        ;
        mpfr_set_si(r26381, mpfr_cmp(r26379, r26380) <= 0, MPFR_RNDN);
        mpfr_pow(r26382, r26352, r26373, MPFR_RNDN);
        mpfr_sub(r26383, r26382, r26363, MPFR_RNDN);
        mpfr_div(r26384, r26364, r26383, MPFR_RNDN);
        mpfr_add(r26385, r26356, r26364, MPFR_RNDN);
        mpfr_mul(r26386, r26384, r26385, MPFR_RNDN);
        mpfr_sub(r26387, r26365, r26386, MPFR_RNDN);
        ;
        mpfr_set_si(r26389, mpfr_cmp(r26379, r26388) <= 0, MPFR_RNDN);
        mpfr_div(r26390, r26373, r26352, MPFR_RNDN);
        mpfr_neg(r26391, r26390, MPFR_RNDN);
        mpfr_add(r26392, r26390, r26363, MPFR_RNDN);
        mpfr_div(r26393, r26392, r26356, MPFR_RNDN);
        mpfr_sub(r26394, r26391, r26393, MPFR_RNDN);
        mpfr_mul(r26395, r26365, r26365, MPFR_RNDN);
        mpfr_pow(r26396, r26367, r26373, MPFR_RNDN);
        mpfr_mul(r26397, r26396, r26396, MPFR_RNDN);
        mpfr_cbrt(r26398, r26397, MPFR_RNDN);
        mpfr_sub(r26399, r26395, r26398, MPFR_RNDN);
        mpfr_div(r26400, r26399, r26368, MPFR_RNDN);
        if (mpfr_get_si(r26389, MPFR_RNDN)) { mpfr_set(r26401, r26394, MPFR_RNDN); } else { mpfr_set(r26401, r26400, MPFR_RNDN); };
        if (mpfr_get_si(r26381, MPFR_RNDN)) { mpfr_set(r26402, r26387, MPFR_RNDN); } else { mpfr_set(r26402, r26401, MPFR_RNDN); };
        return mpfr_get_d(r26402, MPFR_RNDN);
}

