#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 r33839 = x;
        float r33840 = y;
        float r33841 = sin(r33840);
        float r33842 = r33839 * r33841;
        float r33843 = z;
        float r33844 = cos(r33840);
        float r33845 = r33843 * r33844;
        float r33846 = r33842 + r33845;
        return r33846;
}

double f_id(double x, double y, double z) {
        double r33847 = x;
        double r33848 = y;
        double r33849 = sin(r33848);
        double r33850 = r33847 * r33849;
        double r33851 = z;
        double r33852 = cos(r33848);
        double r33853 = r33851 * r33852;
        double r33854 = r33850 + r33853;
        return r33854;
}


double f_of(float x, float y, float z) {
        float r33855 = x;
        float r33856 = y;
        float r33857 = sin(r33856);
        float r33858 = r33855 * r33857;
        float r33859 = z;
        float r33860 = cos(r33856);
        float r33861 = cbrt(r33860);
        float r33862 = exp(r33861);
        float r33863 = log(r33862);
        float r33864 = r33861 * r33863;
        float r33865 = r33859 * r33864;
        float r33866 = r33865 * r33861;
        float r33867 = r33858 + r33866;
        return r33867;
}

double f_od(double x, double y, double z) {
        double r33868 = x;
        double r33869 = y;
        double r33870 = sin(r33869);
        double r33871 = r33868 * r33870;
        double r33872 = z;
        double r33873 = cos(r33869);
        double r33874 = cbrt(r33873);
        double r33875 = exp(r33874);
        double r33876 = log(r33875);
        double r33877 = r33874 * r33876;
        double r33878 = r33872 * r33877;
        double r33879 = r33878 * r33874;
        double r33880 = r33871 + r33879;
        return r33880;
}

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 r33881, r33882, r33883, r33884, r33885, r33886, r33887, r33888;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r33881);
        mpfr_init(r33882);
        mpfr_init(r33883);
        mpfr_init(r33884);
        mpfr_init(r33885);
        mpfr_init(r33886);
        mpfr_init(r33887);
        mpfr_init(r33888);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r33881, x, MPFR_RNDN);
        mpfr_set_d(r33882, y, MPFR_RNDN);
        mpfr_sin(r33883, r33882, MPFR_RNDN);
        mpfr_mul(r33884, r33881, r33883, MPFR_RNDN);
        mpfr_set_d(r33885, z, MPFR_RNDN);
        mpfr_cos(r33886, r33882, MPFR_RNDN);
        mpfr_mul(r33887, r33885, r33886, MPFR_RNDN);
        mpfr_add(r33888, r33884, r33887, MPFR_RNDN);
        return mpfr_get_d(r33888, MPFR_RNDN);
}

static mpfr_t r33889, r33890, r33891, r33892, r33893, r33894, r33895, r33896, r33897, r33898, r33899, r33900, r33901;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r33889);
        mpfr_init(r33890);
        mpfr_init(r33891);
        mpfr_init(r33892);
        mpfr_init(r33893);
        mpfr_init(r33894);
        mpfr_init(r33895);
        mpfr_init(r33896);
        mpfr_init(r33897);
        mpfr_init(r33898);
        mpfr_init(r33899);
        mpfr_init(r33900);
        mpfr_init(r33901);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r33889, x, MPFR_RNDN);
        mpfr_set_d(r33890, y, MPFR_RNDN);
        mpfr_sin(r33891, r33890, MPFR_RNDN);
        mpfr_mul(r33892, r33889, r33891, MPFR_RNDN);
        mpfr_set_d(r33893, z, MPFR_RNDN);
        mpfr_cos(r33894, r33890, MPFR_RNDN);
        mpfr_cbrt(r33895, r33894, MPFR_RNDN);
        mpfr_exp(r33896, r33895, MPFR_RNDN);
        mpfr_log(r33897, r33896, MPFR_RNDN);
        mpfr_mul(r33898, r33895, r33897, MPFR_RNDN);
        mpfr_mul(r33899, r33893, r33898, MPFR_RNDN);
        mpfr_mul(r33900, r33899, r33895, MPFR_RNDN);
        mpfr_add(r33901, r33892, r33900, MPFR_RNDN);
        return mpfr_get_d(r33901, MPFR_RNDN);
}

static mpfr_t r33902, r33903, r33904, r33905, r33906, r33907, r33908, r33909, r33910, r33911, r33912, r33913, r33914;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r33902);
        mpfr_init(r33903);
        mpfr_init(r33904);
        mpfr_init(r33905);
        mpfr_init(r33906);
        mpfr_init(r33907);
        mpfr_init(r33908);
        mpfr_init(r33909);
        mpfr_init(r33910);
        mpfr_init(r33911);
        mpfr_init(r33912);
        mpfr_init(r33913);
        mpfr_init(r33914);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r33902, x, MPFR_RNDN);
        mpfr_set_d(r33903, y, MPFR_RNDN);
        mpfr_sin(r33904, r33903, MPFR_RNDN);
        mpfr_mul(r33905, r33902, r33904, MPFR_RNDN);
        mpfr_set_d(r33906, z, MPFR_RNDN);
        mpfr_cos(r33907, r33903, MPFR_RNDN);
        mpfr_cbrt(r33908, r33907, MPFR_RNDN);
        mpfr_exp(r33909, r33908, MPFR_RNDN);
        mpfr_log(r33910, r33909, MPFR_RNDN);
        mpfr_mul(r33911, r33908, r33910, MPFR_RNDN);
        mpfr_mul(r33912, r33906, r33911, MPFR_RNDN);
        mpfr_mul(r33913, r33912, r33908, MPFR_RNDN);
        mpfr_add(r33914, r33905, r33913, MPFR_RNDN);
        return mpfr_get_d(r33914, MPFR_RNDN);
}

