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

char *name = "r*sin(b)/cos(a+b), B";

double f_if(float r, float a, float b) {
        float r7885 = r;
        float r7886 = b;
        float r7887 = sin(r7886);
        float r7888 = a;
        float r7889 = r7888 + r7886;
        float r7890 = cos(r7889);
        float r7891 = r7887 / r7890;
        float r7892 = r7885 * r7891;
        return r7892;
}

double f_id(double r, double a, double b) {
        double r7893 = r;
        double r7894 = b;
        double r7895 = sin(r7894);
        double r7896 = a;
        double r7897 = r7896 + r7894;
        double r7898 = cos(r7897);
        double r7899 = r7895 / r7898;
        double r7900 = r7893 * r7899;
        return r7900;
}


double f_of(float r, float a, float b) {
        float r7901 = r;
        float r7902 = b;
        float r7903 = sin(r7902);
        float r7904 = 1;
        float r7905 = a;
        float r7906 = cos(r7905);
        float r7907 = cos(r7902);
        float r7908 = r7906 * r7907;
        float r7909 = sin(r7905);
        float r7910 = r7909 * r7903;
        float r7911 = r7908 - r7910;
        float r7912 = r7904 / r7911;
        float r7913 = r7903 * r7912;
        float r7914 = r7901 * r7913;
        return r7914;
}

double f_od(double r, double a, double b) {
        double r7915 = r;
        double r7916 = b;
        double r7917 = sin(r7916);
        double r7918 = 1;
        double r7919 = a;
        double r7920 = cos(r7919);
        double r7921 = cos(r7916);
        double r7922 = r7920 * r7921;
        double r7923 = sin(r7919);
        double r7924 = r7923 * r7917;
        double r7925 = r7922 - r7924;
        double r7926 = r7918 / r7925;
        double r7927 = r7917 * r7926;
        double r7928 = r7915 * r7927;
        return r7928;
}

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 r7929, r7930, r7931, r7932, r7933, r7934, r7935, r7936;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r7929);
        mpfr_init(r7930);
        mpfr_init(r7931);
        mpfr_init(r7932);
        mpfr_init(r7933);
        mpfr_init(r7934);
        mpfr_init(r7935);
        mpfr_init(r7936);
}

double f_im(double r, double a, double b) {
        mpfr_set_d(r7929, r, MPFR_RNDN);
        mpfr_set_d(r7930, b, MPFR_RNDN);
        mpfr_sin(r7931, r7930, MPFR_RNDN);
        mpfr_set_d(r7932, a, MPFR_RNDN);
        mpfr_add(r7933, r7932, r7930, MPFR_RNDN);
        mpfr_cos(r7934, r7933, MPFR_RNDN);
        mpfr_div(r7935, r7931, r7934, MPFR_RNDN);
        mpfr_mul(r7936, r7929, r7935, MPFR_RNDN);
        return mpfr_get_d(r7936, MPFR_RNDN);
}

static mpfr_t r7937, r7938, r7939, r7940, r7941, r7942, r7943, r7944, r7945, r7946, r7947, r7948, r7949, r7950;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r7937);
        mpfr_init(r7938);
        mpfr_init(r7939);
        mpfr_init_set_str(r7940, "1", 10, MPFR_RNDN);
        mpfr_init(r7941);
        mpfr_init(r7942);
        mpfr_init(r7943);
        mpfr_init(r7944);
        mpfr_init(r7945);
        mpfr_init(r7946);
        mpfr_init(r7947);
        mpfr_init(r7948);
        mpfr_init(r7949);
        mpfr_init(r7950);
}

double f_fm(double r, double a, double b) {
        mpfr_set_d(r7937, r, MPFR_RNDN);
        mpfr_set_d(r7938, b, MPFR_RNDN);
        mpfr_sin(r7939, r7938, MPFR_RNDN);
        ;
        mpfr_set_d(r7941, a, MPFR_RNDN);
        mpfr_cos(r7942, r7941, MPFR_RNDN);
        mpfr_cos(r7943, r7938, MPFR_RNDN);
        mpfr_mul(r7944, r7942, r7943, MPFR_RNDN);
        mpfr_sin(r7945, r7941, MPFR_RNDN);
        mpfr_mul(r7946, r7945, r7939, MPFR_RNDN);
        mpfr_sub(r7947, r7944, r7946, MPFR_RNDN);
        mpfr_div(r7948, r7940, r7947, MPFR_RNDN);
        mpfr_mul(r7949, r7939, r7948, MPFR_RNDN);
        mpfr_mul(r7950, r7937, r7949, MPFR_RNDN);
        return mpfr_get_d(r7950, MPFR_RNDN);
}

static mpfr_t r7951, r7952, r7953, r7954, r7955, r7956, r7957, r7958, r7959, r7960, r7961, r7962, r7963, r7964;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r7951);
        mpfr_init(r7952);
        mpfr_init(r7953);
        mpfr_init_set_str(r7954, "1", 10, MPFR_RNDN);
        mpfr_init(r7955);
        mpfr_init(r7956);
        mpfr_init(r7957);
        mpfr_init(r7958);
        mpfr_init(r7959);
        mpfr_init(r7960);
        mpfr_init(r7961);
        mpfr_init(r7962);
        mpfr_init(r7963);
        mpfr_init(r7964);
}

double f_dm(double r, double a, double b) {
        mpfr_set_d(r7951, r, MPFR_RNDN);
        mpfr_set_d(r7952, b, MPFR_RNDN);
        mpfr_sin(r7953, r7952, MPFR_RNDN);
        ;
        mpfr_set_d(r7955, a, MPFR_RNDN);
        mpfr_cos(r7956, r7955, MPFR_RNDN);
        mpfr_cos(r7957, r7952, MPFR_RNDN);
        mpfr_mul(r7958, r7956, r7957, MPFR_RNDN);
        mpfr_sin(r7959, r7955, MPFR_RNDN);
        mpfr_mul(r7960, r7959, r7953, MPFR_RNDN);
        mpfr_sub(r7961, r7958, r7960, MPFR_RNDN);
        mpfr_div(r7962, r7954, r7961, MPFR_RNDN);
        mpfr_mul(r7963, r7953, r7962, MPFR_RNDN);
        mpfr_mul(r7964, r7951, r7963, MPFR_RNDN);
        return mpfr_get_d(r7964, MPFR_RNDN);
}

