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

char *name = "Hyperbolic sine";

double f_if(float x) {
        float r9255 = x;
        float r9256 = exp(r9255);
        float r9257 = -r9255;
        float r9258 = exp(r9257);
        float r9259 = r9256 - r9258;
        float r9260 = 2;
        float r9261 = r9259 / r9260;
        return r9261;
}

double f_id(double x) {
        double r9262 = x;
        double r9263 = exp(r9262);
        double r9264 = -r9262;
        double r9265 = exp(r9264);
        double r9266 = r9263 - r9265;
        double r9267 = 2;
        double r9268 = r9266 / r9267;
        return r9268;
}


double f_of(float x) {
        float r9269 = 1/3;
        float r9270 = x;
        float r9271 = 3;
        float r9272 = pow(r9270, r9271);
        float r9273 = r9269 * r9272;
        float r9274 = 1/60;
        float r9275 = 5;
        float r9276 = pow(r9270, r9275);
        float r9277 = r9274 * r9276;
        float r9278 = 2;
        float r9279 = r9278 * r9270;
        float r9280 = r9277 + r9279;
        float r9281 = r9273 + r9280;
        float r9282 = r9281 / r9278;
        return r9282;
}

double f_od(double x) {
        double r9283 = 1/3;
        double r9284 = x;
        double r9285 = 3;
        double r9286 = pow(r9284, r9285);
        double r9287 = r9283 * r9286;
        double r9288 = 1/60;
        double r9289 = 5;
        double r9290 = pow(r9284, r9289);
        double r9291 = r9288 * r9290;
        double r9292 = 2;
        double r9293 = r9292 * r9284;
        double r9294 = r9291 + r9293;
        double r9295 = r9287 + r9294;
        double r9296 = r9295 / r9292;
        return r9296;
}

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 r9297, r9298, r9299, r9300, r9301, r9302, r9303;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9297);
        mpfr_init(r9298);
        mpfr_init(r9299);
        mpfr_init(r9300);
        mpfr_init(r9301);
        mpfr_init_set_str(r9302, "2", 10, MPFR_RNDN);
        mpfr_init(r9303);
}

double f_im(double x) {
        mpfr_set_d(r9297, x, MPFR_RNDN);
        mpfr_exp(r9298, r9297, MPFR_RNDN);
        mpfr_neg(r9299, r9297, MPFR_RNDN);
        mpfr_exp(r9300, r9299, MPFR_RNDN);
        mpfr_sub(r9301, r9298, r9300, MPFR_RNDN);
        ;
        mpfr_div(r9303, r9301, r9302, MPFR_RNDN);
        return mpfr_get_d(r9303, MPFR_RNDN);
}

static mpfr_t r9304, r9305, r9306, r9307, r9308, r9309, r9310, r9311, r9312, r9313, r9314, r9315, r9316, r9317;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r9304, "1/3", 10, MPFR_RNDN);
        mpfr_init(r9305);
        mpfr_init_set_str(r9306, "3", 10, MPFR_RNDN);
        mpfr_init(r9307);
        mpfr_init(r9308);
        mpfr_init_set_str(r9309, "1/60", 10, MPFR_RNDN);
        mpfr_init_set_str(r9310, "5", 10, MPFR_RNDN);
        mpfr_init(r9311);
        mpfr_init(r9312);
        mpfr_init_set_str(r9313, "2", 10, MPFR_RNDN);
        mpfr_init(r9314);
        mpfr_init(r9315);
        mpfr_init(r9316);
        mpfr_init(r9317);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r9305, x, MPFR_RNDN);
        ;
        mpfr_pow(r9307, r9305, r9306, MPFR_RNDN);
        mpfr_mul(r9308, r9304, r9307, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r9311, r9305, r9310, MPFR_RNDN);
        mpfr_mul(r9312, r9309, r9311, MPFR_RNDN);
        ;
        mpfr_mul(r9314, r9313, r9305, MPFR_RNDN);
        mpfr_add(r9315, r9312, r9314, MPFR_RNDN);
        mpfr_add(r9316, r9308, r9315, MPFR_RNDN);
        mpfr_div(r9317, r9316, r9313, MPFR_RNDN);
        return mpfr_get_d(r9317, MPFR_RNDN);
}

static mpfr_t r9318, r9319, r9320, r9321, r9322, r9323, r9324, r9325, r9326, r9327, r9328, r9329, r9330, r9331;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r9318, "1/3", 10, MPFR_RNDN);
        mpfr_init(r9319);
        mpfr_init_set_str(r9320, "3", 10, MPFR_RNDN);
        mpfr_init(r9321);
        mpfr_init(r9322);
        mpfr_init_set_str(r9323, "1/60", 10, MPFR_RNDN);
        mpfr_init_set_str(r9324, "5", 10, MPFR_RNDN);
        mpfr_init(r9325);
        mpfr_init(r9326);
        mpfr_init_set_str(r9327, "2", 10, MPFR_RNDN);
        mpfr_init(r9328);
        mpfr_init(r9329);
        mpfr_init(r9330);
        mpfr_init(r9331);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r9319, x, MPFR_RNDN);
        ;
        mpfr_pow(r9321, r9319, r9320, MPFR_RNDN);
        mpfr_mul(r9322, r9318, r9321, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r9325, r9319, r9324, MPFR_RNDN);
        mpfr_mul(r9326, r9323, r9325, MPFR_RNDN);
        ;
        mpfr_mul(r9328, r9327, r9319, MPFR_RNDN);
        mpfr_add(r9329, r9326, r9328, MPFR_RNDN);
        mpfr_add(r9330, r9322, r9329, MPFR_RNDN);
        mpfr_div(r9331, r9330, r9327, MPFR_RNDN);
        return mpfr_get_d(r9331, MPFR_RNDN);
}

