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

char *name = "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, B";

double f_if(float x, float y, float z) {
        float r34207 = x;
        float r34208 = y;
        float r34209 = sin(r34208);
        float r34210 = r34207 * r34209;
        float r34211 = z;
        float r34212 = cos(r34208);
        float r34213 = r34211 * r34212;
        float r34214 = r34210 + r34213;
        return r34214;
}

double f_id(double x, double y, double z) {
        double r34215 = x;
        double r34216 = y;
        double r34217 = sin(r34216);
        double r34218 = r34215 * r34217;
        double r34219 = z;
        double r34220 = cos(r34216);
        double r34221 = r34219 * r34220;
        double r34222 = r34218 + r34221;
        return r34222;
}


double f_of(float x, float y, float z) {
        float r34223 = x;
        float r34224 = y;
        float r34225 = sin(r34224);
        float r34226 = r34223 * r34225;
        float r34227 = z;
        float r34228 = cos(r34224);
        float r34229 = cbrt(r34228);
        float r34230 = exp(r34229);
        float r34231 = log(r34230);
        float r34232 = r34229 * r34231;
        float r34233 = r34227 * r34232;
        float r34234 = r34233 * r34229;
        float r34235 = r34226 + r34234;
        return r34235;
}

double f_od(double x, double y, double z) {
        double r34236 = x;
        double r34237 = y;
        double r34238 = sin(r34237);
        double r34239 = r34236 * r34238;
        double r34240 = z;
        double r34241 = cos(r34237);
        double r34242 = cbrt(r34241);
        double r34243 = exp(r34242);
        double r34244 = log(r34243);
        double r34245 = r34242 * r34244;
        double r34246 = r34240 * r34245;
        double r34247 = r34246 * r34242;
        double r34248 = r34239 + r34247;
        return r34248;
}

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 r34249, r34250, r34251, r34252, r34253, r34254, r34255, r34256;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r34249);
        mpfr_init(r34250);
        mpfr_init(r34251);
        mpfr_init(r34252);
        mpfr_init(r34253);
        mpfr_init(r34254);
        mpfr_init(r34255);
        mpfr_init(r34256);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r34249, x, MPFR_RNDN);
        mpfr_set_d(r34250, y, MPFR_RNDN);
        mpfr_sin(r34251, r34250, MPFR_RNDN);
        mpfr_mul(r34252, r34249, r34251, MPFR_RNDN);
        mpfr_set_d(r34253, z, MPFR_RNDN);
        mpfr_cos(r34254, r34250, MPFR_RNDN);
        mpfr_mul(r34255, r34253, r34254, MPFR_RNDN);
        mpfr_add(r34256, r34252, r34255, MPFR_RNDN);
        return mpfr_get_d(r34256, MPFR_RNDN);
}

static mpfr_t r34257, r34258, r34259, r34260, r34261, r34262, r34263, r34264, r34265, r34266, r34267, r34268, r34269;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34257);
        mpfr_init(r34258);
        mpfr_init(r34259);
        mpfr_init(r34260);
        mpfr_init(r34261);
        mpfr_init(r34262);
        mpfr_init(r34263);
        mpfr_init(r34264);
        mpfr_init(r34265);
        mpfr_init(r34266);
        mpfr_init(r34267);
        mpfr_init(r34268);
        mpfr_init(r34269);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r34257, x, MPFR_RNDN);
        mpfr_set_d(r34258, y, MPFR_RNDN);
        mpfr_sin(r34259, r34258, MPFR_RNDN);
        mpfr_mul(r34260, r34257, r34259, MPFR_RNDN);
        mpfr_set_d(r34261, z, MPFR_RNDN);
        mpfr_cos(r34262, r34258, MPFR_RNDN);
        mpfr_cbrt(r34263, r34262, MPFR_RNDN);
        mpfr_exp(r34264, r34263, MPFR_RNDN);
        mpfr_log(r34265, r34264, MPFR_RNDN);
        mpfr_mul(r34266, r34263, r34265, MPFR_RNDN);
        mpfr_mul(r34267, r34261, r34266, MPFR_RNDN);
        mpfr_mul(r34268, r34267, r34263, MPFR_RNDN);
        mpfr_add(r34269, r34260, r34268, MPFR_RNDN);
        return mpfr_get_d(r34269, MPFR_RNDN);
}

static mpfr_t r34270, r34271, r34272, r34273, r34274, r34275, r34276, r34277, r34278, r34279, r34280, r34281, r34282;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r34270);
        mpfr_init(r34271);
        mpfr_init(r34272);
        mpfr_init(r34273);
        mpfr_init(r34274);
        mpfr_init(r34275);
        mpfr_init(r34276);
        mpfr_init(r34277);
        mpfr_init(r34278);
        mpfr_init(r34279);
        mpfr_init(r34280);
        mpfr_init(r34281);
        mpfr_init(r34282);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r34270, x, MPFR_RNDN);
        mpfr_set_d(r34271, y, MPFR_RNDN);
        mpfr_sin(r34272, r34271, MPFR_RNDN);
        mpfr_mul(r34273, r34270, r34272, MPFR_RNDN);
        mpfr_set_d(r34274, z, MPFR_RNDN);
        mpfr_cos(r34275, r34271, MPFR_RNDN);
        mpfr_cbrt(r34276, r34275, MPFR_RNDN);
        mpfr_exp(r34277, r34276, MPFR_RNDN);
        mpfr_log(r34278, r34277, MPFR_RNDN);
        mpfr_mul(r34279, r34276, r34278, MPFR_RNDN);
        mpfr_mul(r34280, r34274, r34279, MPFR_RNDN);
        mpfr_mul(r34281, r34280, r34276, MPFR_RNDN);
        mpfr_add(r34282, r34273, r34281, MPFR_RNDN);
        return mpfr_get_d(r34282, MPFR_RNDN);
}

