#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 r46928 = x;
        float r46929 = y;
        float r46930 = sin(r46929);
        float r46931 = r46930 / r46929;
        float r46932 = r46928 * r46931;
        float r46933 = z;
        float r46934 = r46932 / r46933;
        return r46934;
}

double f_id(double x, double y, double z) {
        double r46935 = x;
        double r46936 = y;
        double r46937 = sin(r46936);
        double r46938 = r46937 / r46936;
        double r46939 = r46935 * r46938;
        double r46940 = z;
        double r46941 = r46939 / r46940;
        return r46941;
}


double f_of(float x, float y, float z) {
        float r46942 = x;
        float r46943 = -892037.4565711613;
        bool r46944 = r46942 <= r46943;
        float r46945 = 1;
        float r46946 = z;
        float r46947 = y;
        float r46948 = sin(r46947);
        float r46949 = r46948 / r46947;
        float r46950 = r46942 * r46949;
        float r46951 = r46946 / r46950;
        float r46952 = r46945 / r46951;
        float r46953 = 1.0345313266279413e-08;
        bool r46954 = r46942 <= r46953;
        float r46955 = r46946 / r46949;
        float r46956 = r46942 / r46955;
        float r46957 = r46954 ? r46956 : r46952;
        float r46958 = r46944 ? r46952 : r46957;
        return r46958;
}

double f_od(double x, double y, double z) {
        double r46959 = x;
        double r46960 = -892037.4565711613;
        bool r46961 = r46959 <= r46960;
        double r46962 = 1;
        double r46963 = z;
        double r46964 = y;
        double r46965 = sin(r46964);
        double r46966 = r46965 / r46964;
        double r46967 = r46959 * r46966;
        double r46968 = r46963 / r46967;
        double r46969 = r46962 / r46968;
        double r46970 = 1.0345313266279413e-08;
        bool r46971 = r46959 <= r46970;
        double r46972 = r46963 / r46966;
        double r46973 = r46959 / r46972;
        double r46974 = r46971 ? r46973 : r46969;
        double r46975 = r46961 ? r46969 : r46974;
        return r46975;
}

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 r46976, r46977, r46978, r46979, r46980, r46981, r46982;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r46976);
        mpfr_init(r46977);
        mpfr_init(r46978);
        mpfr_init(r46979);
        mpfr_init(r46980);
        mpfr_init(r46981);
        mpfr_init(r46982);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r46976, x, MPFR_RNDN);
        mpfr_set_d(r46977, y, MPFR_RNDN);
        mpfr_sin(r46978, r46977, MPFR_RNDN);
        mpfr_div(r46979, r46978, r46977, MPFR_RNDN);
        mpfr_mul(r46980, r46976, r46979, MPFR_RNDN);
        mpfr_set_d(r46981, z, MPFR_RNDN);
        mpfr_div(r46982, r46980, r46981, MPFR_RNDN);
        return mpfr_get_d(r46982, MPFR_RNDN);
}

static mpfr_t r46983, r46984, r46985, r46986, r46987, r46988, r46989, r46990, r46991, r46992, r46993, r46994, r46995, r46996, r46997, r46998, r46999;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r46983);
        mpfr_init_set_str(r46984, "-892037.4565711613", 10, MPFR_RNDN);
        mpfr_init(r46985);
        mpfr_init_set_str(r46986, "1", 10, MPFR_RNDN);
        mpfr_init(r46987);
        mpfr_init(r46988);
        mpfr_init(r46989);
        mpfr_init(r46990);
        mpfr_init(r46991);
        mpfr_init(r46992);
        mpfr_init(r46993);
        mpfr_init_set_str(r46994, "1.0345313266279413e-08", 10, MPFR_RNDN);
        mpfr_init(r46995);
        mpfr_init(r46996);
        mpfr_init(r46997);
        mpfr_init(r46998);
        mpfr_init(r46999);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r46983, x, MPFR_RNDN);
        ;
        mpfr_set_si(r46985, mpfr_cmp(r46983, r46984) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r46987, z, MPFR_RNDN);
        mpfr_set_d(r46988, y, MPFR_RNDN);
        mpfr_sin(r46989, r46988, MPFR_RNDN);
        mpfr_div(r46990, r46989, r46988, MPFR_RNDN);
        mpfr_mul(r46991, r46983, r46990, MPFR_RNDN);
        mpfr_div(r46992, r46987, r46991, MPFR_RNDN);
        mpfr_div(r46993, r46986, r46992, MPFR_RNDN);
        ;
        mpfr_set_si(r46995, mpfr_cmp(r46983, r46994) <= 0, MPFR_RNDN);
        mpfr_div(r46996, r46987, r46990, MPFR_RNDN);
        mpfr_div(r46997, r46983, r46996, MPFR_RNDN);
        if (mpfr_get_si(r46995, MPFR_RNDN)) { mpfr_set(r46998, r46997, MPFR_RNDN); } else { mpfr_set(r46998, r46993, MPFR_RNDN); };
        if (mpfr_get_si(r46985, MPFR_RNDN)) { mpfr_set(r46999, r46993, MPFR_RNDN); } else { mpfr_set(r46999, r46998, MPFR_RNDN); };
        return mpfr_get_d(r46999, MPFR_RNDN);
}

static mpfr_t r47000, r47001, r47002, r47003, r47004, r47005, r47006, r47007, r47008, r47009, r47010, r47011, r47012, r47013, r47014, r47015, r47016;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r47000);
        mpfr_init_set_str(r47001, "-892037.4565711613", 10, MPFR_RNDN);
        mpfr_init(r47002);
        mpfr_init_set_str(r47003, "1", 10, MPFR_RNDN);
        mpfr_init(r47004);
        mpfr_init(r47005);
        mpfr_init(r47006);
        mpfr_init(r47007);
        mpfr_init(r47008);
        mpfr_init(r47009);
        mpfr_init(r47010);
        mpfr_init_set_str(r47011, "1.0345313266279413e-08", 10, MPFR_RNDN);
        mpfr_init(r47012);
        mpfr_init(r47013);
        mpfr_init(r47014);
        mpfr_init(r47015);
        mpfr_init(r47016);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r47000, x, MPFR_RNDN);
        ;
        mpfr_set_si(r47002, mpfr_cmp(r47000, r47001) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r47004, z, MPFR_RNDN);
        mpfr_set_d(r47005, y, MPFR_RNDN);
        mpfr_sin(r47006, r47005, MPFR_RNDN);
        mpfr_div(r47007, r47006, r47005, MPFR_RNDN);
        mpfr_mul(r47008, r47000, r47007, MPFR_RNDN);
        mpfr_div(r47009, r47004, r47008, MPFR_RNDN);
        mpfr_div(r47010, r47003, r47009, MPFR_RNDN);
        ;
        mpfr_set_si(r47012, mpfr_cmp(r47000, r47011) <= 0, MPFR_RNDN);
        mpfr_div(r47013, r47004, r47007, MPFR_RNDN);
        mpfr_div(r47014, r47000, r47013, MPFR_RNDN);
        if (mpfr_get_si(r47012, MPFR_RNDN)) { mpfr_set(r47015, r47014, MPFR_RNDN); } else { mpfr_set(r47015, r47010, MPFR_RNDN); };
        if (mpfr_get_si(r47002, MPFR_RNDN)) { mpfr_set(r47016, r47010, MPFR_RNDN); } else { mpfr_set(r47016, r47015, MPFR_RNDN); };
        return mpfr_get_d(r47016, MPFR_RNDN);
}

