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

char *name = "Linear.Quaternion:$csin from linear-1.19.1.3";

double f_if(float x, float y) {
        float r29575 = x;
        float r29576 = cos(r29575);
        float r29577 = y;
        float r29578 = sinh(r29577);
        float r29579 = r29578 / r29577;
        float r29580 = r29576 * r29579;
        return r29580;
}

double f_id(double x, double y) {
        double r29581 = x;
        double r29582 = cos(r29581);
        double r29583 = y;
        double r29584 = sinh(r29583);
        double r29585 = r29584 / r29583;
        double r29586 = r29582 * r29585;
        return r29586;
}


double f_of(float x, float y) {
        float r29587 = x;
        float r29588 = cos(r29587);
        float r29589 = y;
        float r29590 = sinh(r29589);
        float r29591 = r29590 / r29589;
        float r29592 = r29588 * r29591;
        return r29592;
}

double f_od(double x, double y) {
        double r29593 = x;
        double r29594 = cos(r29593);
        double r29595 = y;
        double r29596 = sinh(r29595);
        double r29597 = r29596 / r29595;
        double r29598 = r29594 * r29597;
        return r29598;
}

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 r29599, r29600, r29601, r29602, r29603, r29604;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r29599);
        mpfr_init(r29600);
        mpfr_init(r29601);
        mpfr_init(r29602);
        mpfr_init(r29603);
        mpfr_init(r29604);
}

double f_im(double x, double y) {
        mpfr_set_d(r29599, x, MPFR_RNDN);
        mpfr_cos(r29600, r29599, MPFR_RNDN);
        mpfr_set_d(r29601, y, MPFR_RNDN);
        mpfr_sinh(r29602, r29601, MPFR_RNDN);
        mpfr_div(r29603, r29602, r29601, MPFR_RNDN);
        mpfr_mul(r29604, r29600, r29603, MPFR_RNDN);
        return mpfr_get_d(r29604, MPFR_RNDN);
}

static mpfr_t r29605, r29606, r29607, r29608, r29609, r29610;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29605);
        mpfr_init(r29606);
        mpfr_init(r29607);
        mpfr_init(r29608);
        mpfr_init(r29609);
        mpfr_init(r29610);
}

double f_fm(double x, double y) {
        mpfr_set_d(r29605, x, MPFR_RNDN);
        mpfr_cos(r29606, r29605, MPFR_RNDN);
        mpfr_set_d(r29607, y, MPFR_RNDN);
        mpfr_sinh(r29608, r29607, MPFR_RNDN);
        mpfr_div(r29609, r29608, r29607, MPFR_RNDN);
        mpfr_mul(r29610, r29606, r29609, MPFR_RNDN);
        return mpfr_get_d(r29610, MPFR_RNDN);
}

static mpfr_t r29611, r29612, r29613, r29614, r29615, r29616;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r29611);
        mpfr_init(r29612);
        mpfr_init(r29613);
        mpfr_init(r29614);
        mpfr_init(r29615);
        mpfr_init(r29616);
}

double f_dm(double x, double y) {
        mpfr_set_d(r29611, x, MPFR_RNDN);
        mpfr_cos(r29612, r29611, MPFR_RNDN);
        mpfr_set_d(r29613, y, MPFR_RNDN);
        mpfr_sinh(r29614, r29613, MPFR_RNDN);
        mpfr_div(r29615, r29614, r29613, MPFR_RNDN);
        mpfr_mul(r29616, r29612, r29615, MPFR_RNDN);
        return mpfr_get_d(r29616, MPFR_RNDN);
}

