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

char *name = "Hyperbolic secant";

double f_if(float x) {
        float r9332 = 2;
        float r9333 = x;
        float r9334 = exp(r9333);
        float r9335 = -r9333;
        float r9336 = exp(r9335);
        float r9337 = r9334 + r9336;
        float r9338 = r9332 / r9337;
        return r9338;
}

double f_id(double x) {
        double r9339 = 2;
        double r9340 = x;
        double r9341 = exp(r9340);
        double r9342 = -r9340;
        double r9343 = exp(r9342);
        double r9344 = r9341 + r9343;
        double r9345 = r9339 / r9344;
        return r9345;
}


double f_of(float x) {
        float r9346 = 2;
        float r9347 = x;
        float r9348 = exp(r9347);
        float r9349 = -r9347;
        float r9350 = exp(r9349);
        float r9351 = r9348 + r9350;
        float r9352 = r9346 / r9351;
        return r9352;
}

double f_od(double x) {
        double r9353 = 2;
        double r9354 = x;
        double r9355 = exp(r9354);
        double r9356 = -r9354;
        double r9357 = exp(r9356);
        double r9358 = r9355 + r9357;
        double r9359 = r9353 / r9358;
        return r9359;
}

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 r9360, r9361, r9362, r9363, r9364, r9365, r9366;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r9360, "2", 10, MPFR_RNDN);
        mpfr_init(r9361);
        mpfr_init(r9362);
        mpfr_init(r9363);
        mpfr_init(r9364);
        mpfr_init(r9365);
        mpfr_init(r9366);
}

double f_im(double x) {
        ;
        mpfr_set_d(r9361, x, MPFR_RNDN);
        mpfr_exp(r9362, r9361, MPFR_RNDN);
        mpfr_neg(r9363, r9361, MPFR_RNDN);
        mpfr_exp(r9364, r9363, MPFR_RNDN);
        mpfr_add(r9365, r9362, r9364, MPFR_RNDN);
        mpfr_div(r9366, r9360, r9365, MPFR_RNDN);
        return mpfr_get_d(r9366, MPFR_RNDN);
}

static mpfr_t r9367, r9368, r9369, r9370, r9371, r9372, r9373;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r9367, "2", 10, MPFR_RNDN);
        mpfr_init(r9368);
        mpfr_init(r9369);
        mpfr_init(r9370);
        mpfr_init(r9371);
        mpfr_init(r9372);
        mpfr_init(r9373);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r9368, x, MPFR_RNDN);
        mpfr_exp(r9369, r9368, MPFR_RNDN);
        mpfr_neg(r9370, r9368, MPFR_RNDN);
        mpfr_exp(r9371, r9370, MPFR_RNDN);
        mpfr_add(r9372, r9369, r9371, MPFR_RNDN);
        mpfr_div(r9373, r9367, r9372, MPFR_RNDN);
        return mpfr_get_d(r9373, MPFR_RNDN);
}

static mpfr_t r9374, r9375, r9376, r9377, r9378, r9379, r9380;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r9374, "2", 10, MPFR_RNDN);
        mpfr_init(r9375);
        mpfr_init(r9376);
        mpfr_init(r9377);
        mpfr_init(r9378);
        mpfr_init(r9379);
        mpfr_init(r9380);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r9375, x, MPFR_RNDN);
        mpfr_exp(r9376, r9375, MPFR_RNDN);
        mpfr_neg(r9377, r9375, MPFR_RNDN);
        mpfr_exp(r9378, r9377, MPFR_RNDN);
        mpfr_add(r9379, r9376, r9378, MPFR_RNDN);
        mpfr_div(r9380, r9374, r9379, MPFR_RNDN);
        return mpfr_get_d(r9380, MPFR_RNDN);
}

