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

char *name = "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, A";

double f_if(float x, float y, float z, float t, float a) {
        float r49781 = x;
        float r49782 = y;
        float r49783 = z;
        float r49784 = r49782 - r49783;
        float r49785 = t;
        float r49786 = r49784 * r49785;
        float r49787 = a;
        float r49788 = r49787 - r49783;
        float r49789 = r49786 / r49788;
        float r49790 = r49781 + r49789;
        return r49790;
}

double f_id(double x, double y, double z, double t, double a) {
        double r49791 = x;
        double r49792 = y;
        double r49793 = z;
        double r49794 = r49792 - r49793;
        double r49795 = t;
        double r49796 = r49794 * r49795;
        double r49797 = a;
        double r49798 = r49797 - r49793;
        double r49799 = r49796 / r49798;
        double r49800 = r49791 + r49799;
        return r49800;
}


double f_of(float x, float y, float z, float t, float a) {
        float r49801 = t;
        float r49802 = -1.532784384461878e-15;
        bool r49803 = r49801 <= r49802;
        float r49804 = x;
        float r49805 = y;
        float r49806 = z;
        float r49807 = r49805 - r49806;
        float r49808 = 1;
        float r49809 = r49807 / r49808;
        float r49810 = a;
        float r49811 = r49810 - r49806;
        float r49812 = r49801 / r49811;
        float r49813 = r49809 * r49812;
        float r49814 = r49804 + r49813;
        float r49815 = 4.5861660332534916e+80;
        bool r49816 = r49801 <= r49815;
        float r49817 = r49807 * r49801;
        float r49818 = r49808 / r49811;
        float r49819 = r49817 * r49818;
        float r49820 = r49804 + r49819;
        float r49821 = cbrt(r49811);
        float r49822 = r49821 * r49821;
        float r49823 = r49807 / r49822;
        float r49824 = r49801 / r49821;
        float r49825 = r49823 * r49824;
        float r49826 = cbrt(r49825);
        float r49827 = r49826 * r49826;
        float r49828 = r49827 * r49826;
        float r49829 = r49804 + r49828;
        float r49830 = r49816 ? r49820 : r49829;
        float r49831 = r49803 ? r49814 : r49830;
        return r49831;
}

double f_od(double x, double y, double z, double t, double a) {
        double r49832 = t;
        double r49833 = -1.532784384461878e-15;
        bool r49834 = r49832 <= r49833;
        double r49835 = x;
        double r49836 = y;
        double r49837 = z;
        double r49838 = r49836 - r49837;
        double r49839 = 1;
        double r49840 = r49838 / r49839;
        double r49841 = a;
        double r49842 = r49841 - r49837;
        double r49843 = r49832 / r49842;
        double r49844 = r49840 * r49843;
        double r49845 = r49835 + r49844;
        double r49846 = 4.5861660332534916e+80;
        bool r49847 = r49832 <= r49846;
        double r49848 = r49838 * r49832;
        double r49849 = r49839 / r49842;
        double r49850 = r49848 * r49849;
        double r49851 = r49835 + r49850;
        double r49852 = cbrt(r49842);
        double r49853 = r49852 * r49852;
        double r49854 = r49838 / r49853;
        double r49855 = r49832 / r49852;
        double r49856 = r49854 * r49855;
        double r49857 = cbrt(r49856);
        double r49858 = r49857 * r49857;
        double r49859 = r49858 * r49857;
        double r49860 = r49835 + r49859;
        double r49861 = r49847 ? r49851 : r49860;
        double r49862 = r49834 ? r49845 : r49861;
        return r49862;
}

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 r49863, r49864, r49865, r49866, r49867, r49868, r49869, r49870, r49871, r49872;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(656);
        mpfr_init(r49863);
        mpfr_init(r49864);
        mpfr_init(r49865);
        mpfr_init(r49866);
        mpfr_init(r49867);
        mpfr_init(r49868);
        mpfr_init(r49869);
        mpfr_init(r49870);
        mpfr_init(r49871);
        mpfr_init(r49872);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49863, x, MPFR_RNDN);
        mpfr_set_d(r49864, y, MPFR_RNDN);
        mpfr_set_d(r49865, z, MPFR_RNDN);
        mpfr_sub(r49866, r49864, r49865, MPFR_RNDN);
        mpfr_set_d(r49867, t, MPFR_RNDN);
        mpfr_mul(r49868, r49866, r49867, MPFR_RNDN);
        mpfr_set_d(r49869, a, MPFR_RNDN);
        mpfr_sub(r49870, r49869, r49865, MPFR_RNDN);
        mpfr_div(r49871, r49868, r49870, MPFR_RNDN);
        mpfr_add(r49872, r49863, r49871, MPFR_RNDN);
        return mpfr_get_d(r49872, MPFR_RNDN);
}

static mpfr_t r49873, r49874, r49875, r49876, r49877, r49878, r49879, r49880, r49881, r49882, r49883, r49884, r49885, r49886, r49887, r49888, r49889, r49890, r49891, r49892, r49893, r49894, r49895, r49896, r49897, r49898, r49899, r49900, r49901, r49902, r49903;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(656);
        mpfr_init(r49873);
        mpfr_init_set_str(r49874, "-1.532784384461878e-15", 10, MPFR_RNDN);
        mpfr_init(r49875);
        mpfr_init(r49876);
        mpfr_init(r49877);
        mpfr_init(r49878);
        mpfr_init(r49879);
        mpfr_init_set_str(r49880, "1", 10, MPFR_RNDN);
        mpfr_init(r49881);
        mpfr_init(r49882);
        mpfr_init(r49883);
        mpfr_init(r49884);
        mpfr_init(r49885);
        mpfr_init(r49886);
        mpfr_init_set_str(r49887, "4.5861660332534916e+80", 10, MPFR_RNDN);
        mpfr_init(r49888);
        mpfr_init(r49889);
        mpfr_init(r49890);
        mpfr_init(r49891);
        mpfr_init(r49892);
        mpfr_init(r49893);
        mpfr_init(r49894);
        mpfr_init(r49895);
        mpfr_init(r49896);
        mpfr_init(r49897);
        mpfr_init(r49898);
        mpfr_init(r49899);
        mpfr_init(r49900);
        mpfr_init(r49901);
        mpfr_init(r49902);
        mpfr_init(r49903);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49873, t, MPFR_RNDN);
        ;
        mpfr_set_si(r49875, mpfr_cmp(r49873, r49874) <= 0, MPFR_RNDN);
        mpfr_set_d(r49876, x, MPFR_RNDN);
        mpfr_set_d(r49877, y, MPFR_RNDN);
        mpfr_set_d(r49878, z, MPFR_RNDN);
        mpfr_sub(r49879, r49877, r49878, MPFR_RNDN);
        ;
        mpfr_div(r49881, r49879, r49880, MPFR_RNDN);
        mpfr_set_d(r49882, a, MPFR_RNDN);
        mpfr_sub(r49883, r49882, r49878, MPFR_RNDN);
        mpfr_div(r49884, r49873, r49883, MPFR_RNDN);
        mpfr_mul(r49885, r49881, r49884, MPFR_RNDN);
        mpfr_add(r49886, r49876, r49885, MPFR_RNDN);
        ;
        mpfr_set_si(r49888, mpfr_cmp(r49873, r49887) <= 0, MPFR_RNDN);
        mpfr_mul(r49889, r49879, r49873, MPFR_RNDN);
        mpfr_div(r49890, r49880, r49883, MPFR_RNDN);
        mpfr_mul(r49891, r49889, r49890, MPFR_RNDN);
        mpfr_add(r49892, r49876, r49891, MPFR_RNDN);
        mpfr_cbrt(r49893, r49883, MPFR_RNDN);
        mpfr_mul(r49894, r49893, r49893, MPFR_RNDN);
        mpfr_div(r49895, r49879, r49894, MPFR_RNDN);
        mpfr_div(r49896, r49873, r49893, MPFR_RNDN);
        mpfr_mul(r49897, r49895, r49896, MPFR_RNDN);
        mpfr_cbrt(r49898, r49897, MPFR_RNDN);
        mpfr_mul(r49899, r49898, r49898, MPFR_RNDN);
        mpfr_mul(r49900, r49899, r49898, MPFR_RNDN);
        mpfr_add(r49901, r49876, r49900, MPFR_RNDN);
        if (mpfr_get_si(r49888, MPFR_RNDN)) { mpfr_set(r49902, r49892, MPFR_RNDN); } else { mpfr_set(r49902, r49901, MPFR_RNDN); };
        if (mpfr_get_si(r49875, MPFR_RNDN)) { mpfr_set(r49903, r49886, MPFR_RNDN); } else { mpfr_set(r49903, r49902, MPFR_RNDN); };
        return mpfr_get_d(r49903, MPFR_RNDN);
}

static mpfr_t r49904, r49905, r49906, r49907, r49908, r49909, r49910, r49911, r49912, r49913, r49914, r49915, r49916, r49917, r49918, r49919, r49920, r49921, r49922, r49923, r49924, r49925, r49926, r49927, r49928, r49929, r49930, r49931, r49932, r49933, r49934;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(656);
        mpfr_init(r49904);
        mpfr_init_set_str(r49905, "-1.532784384461878e-15", 10, MPFR_RNDN);
        mpfr_init(r49906);
        mpfr_init(r49907);
        mpfr_init(r49908);
        mpfr_init(r49909);
        mpfr_init(r49910);
        mpfr_init_set_str(r49911, "1", 10, MPFR_RNDN);
        mpfr_init(r49912);
        mpfr_init(r49913);
        mpfr_init(r49914);
        mpfr_init(r49915);
        mpfr_init(r49916);
        mpfr_init(r49917);
        mpfr_init_set_str(r49918, "4.5861660332534916e+80", 10, MPFR_RNDN);
        mpfr_init(r49919);
        mpfr_init(r49920);
        mpfr_init(r49921);
        mpfr_init(r49922);
        mpfr_init(r49923);
        mpfr_init(r49924);
        mpfr_init(r49925);
        mpfr_init(r49926);
        mpfr_init(r49927);
        mpfr_init(r49928);
        mpfr_init(r49929);
        mpfr_init(r49930);
        mpfr_init(r49931);
        mpfr_init(r49932);
        mpfr_init(r49933);
        mpfr_init(r49934);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r49904, t, MPFR_RNDN);
        ;
        mpfr_set_si(r49906, mpfr_cmp(r49904, r49905) <= 0, MPFR_RNDN);
        mpfr_set_d(r49907, x, MPFR_RNDN);
        mpfr_set_d(r49908, y, MPFR_RNDN);
        mpfr_set_d(r49909, z, MPFR_RNDN);
        mpfr_sub(r49910, r49908, r49909, MPFR_RNDN);
        ;
        mpfr_div(r49912, r49910, r49911, MPFR_RNDN);
        mpfr_set_d(r49913, a, MPFR_RNDN);
        mpfr_sub(r49914, r49913, r49909, MPFR_RNDN);
        mpfr_div(r49915, r49904, r49914, MPFR_RNDN);
        mpfr_mul(r49916, r49912, r49915, MPFR_RNDN);
        mpfr_add(r49917, r49907, r49916, MPFR_RNDN);
        ;
        mpfr_set_si(r49919, mpfr_cmp(r49904, r49918) <= 0, MPFR_RNDN);
        mpfr_mul(r49920, r49910, r49904, MPFR_RNDN);
        mpfr_div(r49921, r49911, r49914, MPFR_RNDN);
        mpfr_mul(r49922, r49920, r49921, MPFR_RNDN);
        mpfr_add(r49923, r49907, r49922, MPFR_RNDN);
        mpfr_cbrt(r49924, r49914, MPFR_RNDN);
        mpfr_mul(r49925, r49924, r49924, MPFR_RNDN);
        mpfr_div(r49926, r49910, r49925, MPFR_RNDN);
        mpfr_div(r49927, r49904, r49924, MPFR_RNDN);
        mpfr_mul(r49928, r49926, r49927, MPFR_RNDN);
        mpfr_cbrt(r49929, r49928, MPFR_RNDN);
        mpfr_mul(r49930, r49929, r49929, MPFR_RNDN);
        mpfr_mul(r49931, r49930, r49929, MPFR_RNDN);
        mpfr_add(r49932, r49907, r49931, MPFR_RNDN);
        if (mpfr_get_si(r49919, MPFR_RNDN)) { mpfr_set(r49933, r49923, MPFR_RNDN); } else { mpfr_set(r49933, r49932, MPFR_RNDN); };
        if (mpfr_get_si(r49906, MPFR_RNDN)) { mpfr_set(r49934, r49917, MPFR_RNDN); } else { mpfr_set(r49934, r49933, MPFR_RNDN); };
        return mpfr_get_d(r49934, MPFR_RNDN);
}

