#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 r33765 = x;
        float r33766 = y;
        float r33767 = sin(r33766);
        float r33768 = r33765 * r33767;
        float r33769 = z;
        float r33770 = cos(r33766);
        float r33771 = r33769 * r33770;
        float r33772 = r33768 + r33771;
        return r33772;
}

double f_id(double x, double y, double z) {
        double r33773 = x;
        double r33774 = y;
        double r33775 = sin(r33774);
        double r33776 = r33773 * r33775;
        double r33777 = z;
        double r33778 = cos(r33774);
        double r33779 = r33777 * r33778;
        double r33780 = r33776 + r33779;
        return r33780;
}


double f_of(float x, float y, float z) {
        float r33781 = x;
        float r33782 = y;
        float r33783 = sin(r33782);
        float r33784 = r33781 * r33783;
        float r33785 = z;
        float r33786 = cos(r33782);
        float r33787 = cbrt(r33786);
        float r33788 = exp(r33787);
        float r33789 = log(r33788);
        float r33790 = r33787 * r33789;
        float r33791 = r33785 * r33790;
        float r33792 = r33791 * r33787;
        float r33793 = r33784 + r33792;
        return r33793;
}

double f_od(double x, double y, double z) {
        double r33794 = x;
        double r33795 = y;
        double r33796 = sin(r33795);
        double r33797 = r33794 * r33796;
        double r33798 = z;
        double r33799 = cos(r33795);
        double r33800 = cbrt(r33799);
        double r33801 = exp(r33800);
        double r33802 = log(r33801);
        double r33803 = r33800 * r33802;
        double r33804 = r33798 * r33803;
        double r33805 = r33804 * r33800;
        double r33806 = r33797 + r33805;
        return r33806;
}

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 r33807, r33808, r33809, r33810, r33811, r33812, r33813, r33814;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r33807);
        mpfr_init(r33808);
        mpfr_init(r33809);
        mpfr_init(r33810);
        mpfr_init(r33811);
        mpfr_init(r33812);
        mpfr_init(r33813);
        mpfr_init(r33814);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r33807, x, MPFR_RNDN);
        mpfr_set_d(r33808, y, MPFR_RNDN);
        mpfr_sin(r33809, r33808, MPFR_RNDN);
        mpfr_mul(r33810, r33807, r33809, MPFR_RNDN);
        mpfr_set_d(r33811, z, MPFR_RNDN);
        mpfr_cos(r33812, r33808, MPFR_RNDN);
        mpfr_mul(r33813, r33811, r33812, MPFR_RNDN);
        mpfr_add(r33814, r33810, r33813, MPFR_RNDN);
        return mpfr_get_d(r33814, MPFR_RNDN);
}

static mpfr_t r33815, r33816, r33817, r33818, r33819, r33820, r33821, r33822, r33823, r33824, r33825, r33826, r33827;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r33815);
        mpfr_init(r33816);
        mpfr_init(r33817);
        mpfr_init(r33818);
        mpfr_init(r33819);
        mpfr_init(r33820);
        mpfr_init(r33821);
        mpfr_init(r33822);
        mpfr_init(r33823);
        mpfr_init(r33824);
        mpfr_init(r33825);
        mpfr_init(r33826);
        mpfr_init(r33827);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r33815, x, MPFR_RNDN);
        mpfr_set_d(r33816, y, MPFR_RNDN);
        mpfr_sin(r33817, r33816, MPFR_RNDN);
        mpfr_mul(r33818, r33815, r33817, MPFR_RNDN);
        mpfr_set_d(r33819, z, MPFR_RNDN);
        mpfr_cos(r33820, r33816, MPFR_RNDN);
        mpfr_cbrt(r33821, r33820, MPFR_RNDN);
        mpfr_exp(r33822, r33821, MPFR_RNDN);
        mpfr_log(r33823, r33822, MPFR_RNDN);
        mpfr_mul(r33824, r33821, r33823, MPFR_RNDN);
        mpfr_mul(r33825, r33819, r33824, MPFR_RNDN);
        mpfr_mul(r33826, r33825, r33821, MPFR_RNDN);
        mpfr_add(r33827, r33818, r33826, MPFR_RNDN);
        return mpfr_get_d(r33827, MPFR_RNDN);
}

static mpfr_t r33828, r33829, r33830, r33831, r33832, r33833, r33834, r33835, r33836, r33837, r33838, r33839, r33840;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r33828);
        mpfr_init(r33829);
        mpfr_init(r33830);
        mpfr_init(r33831);
        mpfr_init(r33832);
        mpfr_init(r33833);
        mpfr_init(r33834);
        mpfr_init(r33835);
        mpfr_init(r33836);
        mpfr_init(r33837);
        mpfr_init(r33838);
        mpfr_init(r33839);
        mpfr_init(r33840);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r33828, x, MPFR_RNDN);
        mpfr_set_d(r33829, y, MPFR_RNDN);
        mpfr_sin(r33830, r33829, MPFR_RNDN);
        mpfr_mul(r33831, r33828, r33830, MPFR_RNDN);
        mpfr_set_d(r33832, z, MPFR_RNDN);
        mpfr_cos(r33833, r33829, MPFR_RNDN);
        mpfr_cbrt(r33834, r33833, MPFR_RNDN);
        mpfr_exp(r33835, r33834, MPFR_RNDN);
        mpfr_log(r33836, r33835, MPFR_RNDN);
        mpfr_mul(r33837, r33834, r33836, MPFR_RNDN);
        mpfr_mul(r33838, r33832, r33837, MPFR_RNDN);
        mpfr_mul(r33839, r33838, r33834, MPFR_RNDN);
        mpfr_add(r33840, r33831, r33839, MPFR_RNDN);
        return mpfr_get_d(r33840, MPFR_RNDN);
}

