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

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

double f_if(float x, float y, float z) {
        float r46657 = x;
        float r46658 = y;
        float r46659 = sin(r46658);
        float r46660 = r46659 / r46658;
        float r46661 = r46657 * r46660;
        float r46662 = z;
        float r46663 = r46661 / r46662;
        return r46663;
}

double f_id(double x, double y, double z) {
        double r46664 = x;
        double r46665 = y;
        double r46666 = sin(r46665);
        double r46667 = r46666 / r46665;
        double r46668 = r46664 * r46667;
        double r46669 = z;
        double r46670 = r46668 / r46669;
        return r46670;
}


double f_of(float x, float y, float z) {
        float r46671 = x;
        float r46672 = -197.98382271840867;
        bool r46673 = r46671 <= r46672;
        float r46674 = 1;
        float r46675 = z;
        float r46676 = y;
        float r46677 = sin(r46676);
        float r46678 = r46677 / r46676;
        float r46679 = r46671 * r46678;
        float r46680 = r46675 / r46679;
        float r46681 = r46674 / r46680;
        float r46682 = 1.1415449837537338e-08;
        bool r46683 = r46671 <= r46682;
        float r46684 = r46675 / r46678;
        float r46685 = r46671 / r46684;
        float r46686 = r46683 ? r46685 : r46681;
        float r46687 = r46673 ? r46681 : r46686;
        return r46687;
}

double f_od(double x, double y, double z) {
        double r46688 = x;
        double r46689 = -197.98382271840867;
        bool r46690 = r46688 <= r46689;
        double r46691 = 1;
        double r46692 = z;
        double r46693 = y;
        double r46694 = sin(r46693);
        double r46695 = r46694 / r46693;
        double r46696 = r46688 * r46695;
        double r46697 = r46692 / r46696;
        double r46698 = r46691 / r46697;
        double r46699 = 1.1415449837537338e-08;
        bool r46700 = r46688 <= r46699;
        double r46701 = r46692 / r46695;
        double r46702 = r46688 / r46701;
        double r46703 = r46700 ? r46702 : r46698;
        double r46704 = r46690 ? r46698 : r46703;
        return r46704;
}

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 r46705, r46706, r46707, r46708, r46709, r46710, r46711;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r46705);
        mpfr_init(r46706);
        mpfr_init(r46707);
        mpfr_init(r46708);
        mpfr_init(r46709);
        mpfr_init(r46710);
        mpfr_init(r46711);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r46705, x, MPFR_RNDN);
        mpfr_set_d(r46706, y, MPFR_RNDN);
        mpfr_sin(r46707, r46706, MPFR_RNDN);
        mpfr_div(r46708, r46707, r46706, MPFR_RNDN);
        mpfr_mul(r46709, r46705, r46708, MPFR_RNDN);
        mpfr_set_d(r46710, z, MPFR_RNDN);
        mpfr_div(r46711, r46709, r46710, MPFR_RNDN);
        return mpfr_get_d(r46711, MPFR_RNDN);
}

static mpfr_t r46712, r46713, r46714, r46715, r46716, r46717, r46718, r46719, r46720, r46721, r46722, r46723, r46724, r46725, r46726, r46727, r46728;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r46712);
        mpfr_init_set_str(r46713, "-197.98382271840867", 10, MPFR_RNDN);
        mpfr_init(r46714);
        mpfr_init_set_str(r46715, "1", 10, MPFR_RNDN);
        mpfr_init(r46716);
        mpfr_init(r46717);
        mpfr_init(r46718);
        mpfr_init(r46719);
        mpfr_init(r46720);
        mpfr_init(r46721);
        mpfr_init(r46722);
        mpfr_init_set_str(r46723, "1.1415449837537338e-08", 10, MPFR_RNDN);
        mpfr_init(r46724);
        mpfr_init(r46725);
        mpfr_init(r46726);
        mpfr_init(r46727);
        mpfr_init(r46728);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r46712, x, MPFR_RNDN);
        ;
        mpfr_set_si(r46714, mpfr_cmp(r46712, r46713) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r46716, z, MPFR_RNDN);
        mpfr_set_d(r46717, y, MPFR_RNDN);
        mpfr_sin(r46718, r46717, MPFR_RNDN);
        mpfr_div(r46719, r46718, r46717, MPFR_RNDN);
        mpfr_mul(r46720, r46712, r46719, MPFR_RNDN);
        mpfr_div(r46721, r46716, r46720, MPFR_RNDN);
        mpfr_div(r46722, r46715, r46721, MPFR_RNDN);
        ;
        mpfr_set_si(r46724, mpfr_cmp(r46712, r46723) <= 0, MPFR_RNDN);
        mpfr_div(r46725, r46716, r46719, MPFR_RNDN);
        mpfr_div(r46726, r46712, r46725, MPFR_RNDN);
        if (mpfr_get_si(r46724, MPFR_RNDN)) { mpfr_set(r46727, r46726, MPFR_RNDN); } else { mpfr_set(r46727, r46722, MPFR_RNDN); };
        if (mpfr_get_si(r46714, MPFR_RNDN)) { mpfr_set(r46728, r46722, MPFR_RNDN); } else { mpfr_set(r46728, r46727, MPFR_RNDN); };
        return mpfr_get_d(r46728, MPFR_RNDN);
}

static mpfr_t r46729, r46730, r46731, r46732, r46733, r46734, r46735, r46736, r46737, r46738, r46739, r46740, r46741, r46742, r46743, r46744, r46745;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r46729);
        mpfr_init_set_str(r46730, "-197.98382271840867", 10, MPFR_RNDN);
        mpfr_init(r46731);
        mpfr_init_set_str(r46732, "1", 10, MPFR_RNDN);
        mpfr_init(r46733);
        mpfr_init(r46734);
        mpfr_init(r46735);
        mpfr_init(r46736);
        mpfr_init(r46737);
        mpfr_init(r46738);
        mpfr_init(r46739);
        mpfr_init_set_str(r46740, "1.1415449837537338e-08", 10, MPFR_RNDN);
        mpfr_init(r46741);
        mpfr_init(r46742);
        mpfr_init(r46743);
        mpfr_init(r46744);
        mpfr_init(r46745);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r46729, x, MPFR_RNDN);
        ;
        mpfr_set_si(r46731, mpfr_cmp(r46729, r46730) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r46733, z, MPFR_RNDN);
        mpfr_set_d(r46734, y, MPFR_RNDN);
        mpfr_sin(r46735, r46734, MPFR_RNDN);
        mpfr_div(r46736, r46735, r46734, MPFR_RNDN);
        mpfr_mul(r46737, r46729, r46736, MPFR_RNDN);
        mpfr_div(r46738, r46733, r46737, MPFR_RNDN);
        mpfr_div(r46739, r46732, r46738, MPFR_RNDN);
        ;
        mpfr_set_si(r46741, mpfr_cmp(r46729, r46740) <= 0, MPFR_RNDN);
        mpfr_div(r46742, r46733, r46736, MPFR_RNDN);
        mpfr_div(r46743, r46729, r46742, MPFR_RNDN);
        if (mpfr_get_si(r46741, MPFR_RNDN)) { mpfr_set(r46744, r46743, MPFR_RNDN); } else { mpfr_set(r46744, r46739, MPFR_RNDN); };
        if (mpfr_get_si(r46731, MPFR_RNDN)) { mpfr_set(r46745, r46739, MPFR_RNDN); } else { mpfr_set(r46745, r46744, MPFR_RNDN); };
        return mpfr_get_d(r46745, MPFR_RNDN);
}

