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

char *name = "math.sqrt on complex, real part";

double f_if(float re, float im) {
        float r11773 = 0.5f;
        float r11774 = 2.0f;
        float r11775 = re;
        float r11776 = r11775 * r11775;
        float r11777 = im;
        float r11778 = r11777 * r11777;
        float r11779 = r11776 + r11778;
        float r11780 = sqrt(r11779);
        float r11781 = r11780 + r11775;
        float r11782 = r11774 * r11781;
        float r11783 = sqrt(r11782);
        float r11784 = r11773 * r11783;
        return r11784;
}

double f_id(double re, double im) {
        double r11785 = 0.5;
        double r11786 = 2.0;
        double r11787 = re;
        double r11788 = r11787 * r11787;
        double r11789 = im;
        double r11790 = r11789 * r11789;
        double r11791 = r11788 + r11790;
        double r11792 = sqrt(r11791);
        double r11793 = r11792 + r11787;
        double r11794 = r11786 * r11793;
        double r11795 = sqrt(r11794);
        double r11796 = r11785 * r11795;
        return r11796;
}


double f_of(float re, float im) {
        float r11797 = 0.5f;
        float r11798 = 2.0f;
        float r11799 = re;
        float r11800 = im;
        float r11801 = r11799 + r11800;
        float r11802 = r11798 * r11801;
        float r11803 = sqrt(r11802);
        float r11804 = r11797 * r11803;
        float r11805 = 2.008863767088536e-81f;
        bool r11806 = r11804 <= r11805;
        float r11807 = 6.071525498542669e+61f;
        bool r11808 = r11804 <= r11807;
        float r11809 = r11799 * r11799;
        float r11810 = r11800 * r11800;
        float r11811 = r11809 + r11810;
        float r11812 = sqrt(r11811);
        float r11813 = cbrt(r11812);
        float r11814 = r11813 * r11813;
        float r11815 = log(r11813);
        float r11816 = exp(r11815);
        float r11817 = r11814 * r11816;
        float r11818 = r11817 + r11799;
        float r11819 = cbrt(r11818);
        float r11820 = r11819 * r11819;
        float r11821 = r11820 * r11819;
        float r11822 = r11798 * r11821;
        float r11823 = sqrt(r11822);
        float r11824 = r11797 * r11823;
        float r11825 = 1.6835103256362358e+98f;
        bool r11826 = r11804 <= r11825;
        float r11827 = r11799 + r11799;
        float r11828 = r11827 * r11798;
        float r11829 = sqrt(r11828);
        float r11830 = r11829 * r11797;
        float r11831 = 7.483158341143002e+121f;
        bool r11832 = r11804 <= r11831;
        float r11833 = 1.5137352765525574e+153f;
        bool r11834 = r11804 <= r11833;
        float r11835 = r11798 * r11810;
        float r11836 = sqrt(r11835);
        float r11837 = r11812 - r11799;
        float r11838 = sqrt(r11837);
        float r11839 = r11836 / r11838;
        float r11840 = r11797 * r11839;
        float r11841 = r11834 ? r11830 : r11840;
        float r11842 = r11832 ? r11804 : r11841;
        float r11843 = r11826 ? r11830 : r11842;
        float r11844 = r11808 ? r11824 : r11843;
        float r11845 = r11806 ? r11804 : r11844;
        return r11845;
}

double f_od(double re, double im) {
        double r11846 = 0.5;
        double r11847 = 2.0;
        double r11848 = re;
        double r11849 = im;
        double r11850 = r11848 + r11849;
        double r11851 = r11847 * r11850;
        double r11852 = sqrt(r11851);
        double r11853 = r11846 * r11852;
        double r11854 = 2.008863767088536e-81;
        bool r11855 = r11853 <= r11854;
        double r11856 = 6.071525498542669e+61;
        bool r11857 = r11853 <= r11856;
        double r11858 = r11848 * r11848;
        double r11859 = r11849 * r11849;
        double r11860 = r11858 + r11859;
        double r11861 = sqrt(r11860);
        double r11862 = cbrt(r11861);
        double r11863 = r11862 * r11862;
        double r11864 = log(r11862);
        double r11865 = exp(r11864);
        double r11866 = r11863 * r11865;
        double r11867 = r11866 + r11848;
        double r11868 = cbrt(r11867);
        double r11869 = r11868 * r11868;
        double r11870 = r11869 * r11868;
        double r11871 = r11847 * r11870;
        double r11872 = sqrt(r11871);
        double r11873 = r11846 * r11872;
        double r11874 = 1.6835103256362358e+98;
        bool r11875 = r11853 <= r11874;
        double r11876 = r11848 + r11848;
        double r11877 = r11876 * r11847;
        double r11878 = sqrt(r11877);
        double r11879 = r11878 * r11846;
        double r11880 = 7.483158341143002e+121;
        bool r11881 = r11853 <= r11880;
        double r11882 = 1.5137352765525574e+153;
        bool r11883 = r11853 <= r11882;
        double r11884 = r11847 * r11859;
        double r11885 = sqrt(r11884);
        double r11886 = r11861 - r11848;
        double r11887 = sqrt(r11886);
        double r11888 = r11885 / r11887;
        double r11889 = r11846 * r11888;
        double r11890 = r11883 ? r11879 : r11889;
        double r11891 = r11881 ? r11853 : r11890;
        double r11892 = r11875 ? r11879 : r11891;
        double r11893 = r11857 ? r11873 : r11892;
        double r11894 = r11855 ? r11853 : r11893;
        return r11894;
}

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 r11895, r11896, r11897, r11898, r11899, r11900, r11901, r11902, r11903, r11904, r11905, r11906;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r11895, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r11896, "2.0", 10, MPFR_RNDN);
        mpfr_init(r11897);
        mpfr_init(r11898);
        mpfr_init(r11899);
        mpfr_init(r11900);
        mpfr_init(r11901);
        mpfr_init(r11902);
        mpfr_init(r11903);
        mpfr_init(r11904);
        mpfr_init(r11905);
        mpfr_init(r11906);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r11897, re, MPFR_RNDN);
        mpfr_mul(r11898, r11897, r11897, MPFR_RNDN);
        mpfr_set_d(r11899, im, MPFR_RNDN);
        mpfr_mul(r11900, r11899, r11899, MPFR_RNDN);
        mpfr_add(r11901, r11898, r11900, MPFR_RNDN);
        mpfr_sqrt(r11902, r11901, MPFR_RNDN);
        mpfr_add(r11903, r11902, r11897, MPFR_RNDN);
        mpfr_mul(r11904, r11896, r11903, MPFR_RNDN);
        mpfr_sqrt(r11905, r11904, MPFR_RNDN);
        mpfr_mul(r11906, r11895, r11905, MPFR_RNDN);
        return mpfr_get_d(r11906, MPFR_RNDN);
}

static mpfr_t r11907, r11908, r11909, r11910, r11911, r11912, r11913, r11914, r11915, r11916, r11917, r11918, r11919, r11920, r11921, r11922, r11923, r11924, r11925, r11926, r11927, r11928, r11929, r11930, r11931, r11932, r11933, r11934, r11935, r11936, r11937, r11938, r11939, r11940, r11941, r11942, r11943, r11944, r11945, r11946, r11947, r11948, r11949, r11950, r11951, r11952, r11953, r11954, r11955;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r11907, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r11908, "2.0", 10, MPFR_RNDN);
        mpfr_init(r11909);
        mpfr_init(r11910);
        mpfr_init(r11911);
        mpfr_init(r11912);
        mpfr_init(r11913);
        mpfr_init(r11914);
        mpfr_init_set_str(r11915, "2.008863767088536e-81", 10, MPFR_RNDN);
        mpfr_init(r11916);
        mpfr_init_set_str(r11917, "6.071525498542669e+61", 10, MPFR_RNDN);
        mpfr_init(r11918);
        mpfr_init(r11919);
        mpfr_init(r11920);
        mpfr_init(r11921);
        mpfr_init(r11922);
        mpfr_init(r11923);
        mpfr_init(r11924);
        mpfr_init(r11925);
        mpfr_init(r11926);
        mpfr_init(r11927);
        mpfr_init(r11928);
        mpfr_init(r11929);
        mpfr_init(r11930);
        mpfr_init(r11931);
        mpfr_init(r11932);
        mpfr_init(r11933);
        mpfr_init(r11934);
        mpfr_init_set_str(r11935, "1.6835103256362358e+98", 10, MPFR_RNDN);
        mpfr_init(r11936);
        mpfr_init(r11937);
        mpfr_init(r11938);
        mpfr_init(r11939);
        mpfr_init(r11940);
        mpfr_init_set_str(r11941, "7.483158341143002e+121", 10, MPFR_RNDN);
        mpfr_init(r11942);
        mpfr_init_set_str(r11943, "1.5137352765525574e+153", 10, MPFR_RNDN);
        mpfr_init(r11944);
        mpfr_init(r11945);
        mpfr_init(r11946);
        mpfr_init(r11947);
        mpfr_init(r11948);
        mpfr_init(r11949);
        mpfr_init(r11950);
        mpfr_init(r11951);
        mpfr_init(r11952);
        mpfr_init(r11953);
        mpfr_init(r11954);
        mpfr_init(r11955);
}

double f_fm(double re, double im) {
        ;
        ;
        mpfr_set_d(r11909, re, MPFR_RNDN);
        mpfr_set_d(r11910, im, MPFR_RNDN);
        mpfr_add(r11911, r11909, r11910, MPFR_RNDN);
        mpfr_mul(r11912, r11908, r11911, MPFR_RNDN);
        mpfr_sqrt(r11913, r11912, MPFR_RNDN);
        mpfr_mul(r11914, r11907, r11913, MPFR_RNDN);
        ;
        mpfr_set_si(r11916, mpfr_cmp(r11914, r11915) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r11918, mpfr_cmp(r11914, r11917) <= 0, MPFR_RNDN);
        mpfr_mul(r11919, r11909, r11909, MPFR_RNDN);
        mpfr_mul(r11920, r11910, r11910, MPFR_RNDN);
        mpfr_add(r11921, r11919, r11920, MPFR_RNDN);
        mpfr_sqrt(r11922, r11921, MPFR_RNDN);
        mpfr_cbrt(r11923, r11922, MPFR_RNDN);
        mpfr_mul(r11924, r11923, r11923, MPFR_RNDN);
        mpfr_log(r11925, r11923, MPFR_RNDN);
        mpfr_exp(r11926, r11925, MPFR_RNDN);
        mpfr_mul(r11927, r11924, r11926, MPFR_RNDN);
        mpfr_add(r11928, r11927, r11909, MPFR_RNDN);
        mpfr_cbrt(r11929, r11928, MPFR_RNDN);
        mpfr_mul(r11930, r11929, r11929, MPFR_RNDN);
        mpfr_mul(r11931, r11930, r11929, MPFR_RNDN);
        mpfr_mul(r11932, r11908, r11931, MPFR_RNDN);
        mpfr_sqrt(r11933, r11932, MPFR_RNDN);
        mpfr_mul(r11934, r11907, r11933, MPFR_RNDN);
        ;
        mpfr_set_si(r11936, mpfr_cmp(r11914, r11935) <= 0, MPFR_RNDN);
        mpfr_add(r11937, r11909, r11909, MPFR_RNDN);
        mpfr_mul(r11938, r11937, r11908, MPFR_RNDN);
        mpfr_sqrt(r11939, r11938, MPFR_RNDN);
        mpfr_mul(r11940, r11939, r11907, MPFR_RNDN);
        ;
        mpfr_set_si(r11942, mpfr_cmp(r11914, r11941) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r11944, mpfr_cmp(r11914, r11943) <= 0, MPFR_RNDN);
        mpfr_mul(r11945, r11908, r11920, MPFR_RNDN);
        mpfr_sqrt(r11946, r11945, MPFR_RNDN);
        mpfr_sub(r11947, r11922, r11909, MPFR_RNDN);
        mpfr_sqrt(r11948, r11947, MPFR_RNDN);
        mpfr_div(r11949, r11946, r11948, MPFR_RNDN);
        mpfr_mul(r11950, r11907, r11949, MPFR_RNDN);
        if (mpfr_get_si(r11944, MPFR_RNDN)) { mpfr_set(r11951, r11940, MPFR_RNDN); } else { mpfr_set(r11951, r11950, MPFR_RNDN); };
        if (mpfr_get_si(r11942, MPFR_RNDN)) { mpfr_set(r11952, r11914, MPFR_RNDN); } else { mpfr_set(r11952, r11951, MPFR_RNDN); };
        if (mpfr_get_si(r11936, MPFR_RNDN)) { mpfr_set(r11953, r11940, MPFR_RNDN); } else { mpfr_set(r11953, r11952, MPFR_RNDN); };
        if (mpfr_get_si(r11918, MPFR_RNDN)) { mpfr_set(r11954, r11934, MPFR_RNDN); } else { mpfr_set(r11954, r11953, MPFR_RNDN); };
        if (mpfr_get_si(r11916, MPFR_RNDN)) { mpfr_set(r11955, r11914, MPFR_RNDN); } else { mpfr_set(r11955, r11954, MPFR_RNDN); };
        return mpfr_get_d(r11955, MPFR_RNDN);
}

static mpfr_t r11956, r11957, r11958, r11959, r11960, r11961, r11962, r11963, r11964, r11965, r11966, r11967, r11968, r11969, r11970, r11971, r11972, r11973, r11974, r11975, r11976, r11977, r11978, r11979, r11980, r11981, r11982, r11983, r11984, r11985, r11986, r11987, r11988, r11989, r11990, r11991, r11992, r11993, r11994, r11995, r11996, r11997, r11998, r11999, r12000, r12001, r12002, r12003, r12004;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init_set_str(r11956, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r11957, "2.0", 10, MPFR_RNDN);
        mpfr_init(r11958);
        mpfr_init(r11959);
        mpfr_init(r11960);
        mpfr_init(r11961);
        mpfr_init(r11962);
        mpfr_init(r11963);
        mpfr_init_set_str(r11964, "2.008863767088536e-81", 10, MPFR_RNDN);
        mpfr_init(r11965);
        mpfr_init_set_str(r11966, "6.071525498542669e+61", 10, MPFR_RNDN);
        mpfr_init(r11967);
        mpfr_init(r11968);
        mpfr_init(r11969);
        mpfr_init(r11970);
        mpfr_init(r11971);
        mpfr_init(r11972);
        mpfr_init(r11973);
        mpfr_init(r11974);
        mpfr_init(r11975);
        mpfr_init(r11976);
        mpfr_init(r11977);
        mpfr_init(r11978);
        mpfr_init(r11979);
        mpfr_init(r11980);
        mpfr_init(r11981);
        mpfr_init(r11982);
        mpfr_init(r11983);
        mpfr_init_set_str(r11984, "1.6835103256362358e+98", 10, MPFR_RNDN);
        mpfr_init(r11985);
        mpfr_init(r11986);
        mpfr_init(r11987);
        mpfr_init(r11988);
        mpfr_init(r11989);
        mpfr_init_set_str(r11990, "7.483158341143002e+121", 10, MPFR_RNDN);
        mpfr_init(r11991);
        mpfr_init_set_str(r11992, "1.5137352765525574e+153", 10, MPFR_RNDN);
        mpfr_init(r11993);
        mpfr_init(r11994);
        mpfr_init(r11995);
        mpfr_init(r11996);
        mpfr_init(r11997);
        mpfr_init(r11998);
        mpfr_init(r11999);
        mpfr_init(r12000);
        mpfr_init(r12001);
        mpfr_init(r12002);
        mpfr_init(r12003);
        mpfr_init(r12004);
}

double f_dm(double re, double im) {
        ;
        ;
        mpfr_set_d(r11958, re, MPFR_RNDN);
        mpfr_set_d(r11959, im, MPFR_RNDN);
        mpfr_add(r11960, r11958, r11959, MPFR_RNDN);
        mpfr_mul(r11961, r11957, r11960, MPFR_RNDN);
        mpfr_sqrt(r11962, r11961, MPFR_RNDN);
        mpfr_mul(r11963, r11956, r11962, MPFR_RNDN);
        ;
        mpfr_set_si(r11965, mpfr_cmp(r11963, r11964) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r11967, mpfr_cmp(r11963, r11966) <= 0, MPFR_RNDN);
        mpfr_mul(r11968, r11958, r11958, MPFR_RNDN);
        mpfr_mul(r11969, r11959, r11959, MPFR_RNDN);
        mpfr_add(r11970, r11968, r11969, MPFR_RNDN);
        mpfr_sqrt(r11971, r11970, MPFR_RNDN);
        mpfr_cbrt(r11972, r11971, MPFR_RNDN);
        mpfr_mul(r11973, r11972, r11972, MPFR_RNDN);
        mpfr_log(r11974, r11972, MPFR_RNDN);
        mpfr_exp(r11975, r11974, MPFR_RNDN);
        mpfr_mul(r11976, r11973, r11975, MPFR_RNDN);
        mpfr_add(r11977, r11976, r11958, MPFR_RNDN);
        mpfr_cbrt(r11978, r11977, MPFR_RNDN);
        mpfr_mul(r11979, r11978, r11978, MPFR_RNDN);
        mpfr_mul(r11980, r11979, r11978, MPFR_RNDN);
        mpfr_mul(r11981, r11957, r11980, MPFR_RNDN);
        mpfr_sqrt(r11982, r11981, MPFR_RNDN);
        mpfr_mul(r11983, r11956, r11982, MPFR_RNDN);
        ;
        mpfr_set_si(r11985, mpfr_cmp(r11963, r11984) <= 0, MPFR_RNDN);
        mpfr_add(r11986, r11958, r11958, MPFR_RNDN);
        mpfr_mul(r11987, r11986, r11957, MPFR_RNDN);
        mpfr_sqrt(r11988, r11987, MPFR_RNDN);
        mpfr_mul(r11989, r11988, r11956, MPFR_RNDN);
        ;
        mpfr_set_si(r11991, mpfr_cmp(r11963, r11990) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r11993, mpfr_cmp(r11963, r11992) <= 0, MPFR_RNDN);
        mpfr_mul(r11994, r11957, r11969, MPFR_RNDN);
        mpfr_sqrt(r11995, r11994, MPFR_RNDN);
        mpfr_sub(r11996, r11971, r11958, MPFR_RNDN);
        mpfr_sqrt(r11997, r11996, MPFR_RNDN);
        mpfr_div(r11998, r11995, r11997, MPFR_RNDN);
        mpfr_mul(r11999, r11956, r11998, MPFR_RNDN);
        if (mpfr_get_si(r11993, MPFR_RNDN)) { mpfr_set(r12000, r11989, MPFR_RNDN); } else { mpfr_set(r12000, r11999, MPFR_RNDN); };
        if (mpfr_get_si(r11991, MPFR_RNDN)) { mpfr_set(r12001, r11963, MPFR_RNDN); } else { mpfr_set(r12001, r12000, MPFR_RNDN); };
        if (mpfr_get_si(r11985, MPFR_RNDN)) { mpfr_set(r12002, r11989, MPFR_RNDN); } else { mpfr_set(r12002, r12001, MPFR_RNDN); };
        if (mpfr_get_si(r11967, MPFR_RNDN)) { mpfr_set(r12003, r11983, MPFR_RNDN); } else { mpfr_set(r12003, r12002, MPFR_RNDN); };
        if (mpfr_get_si(r11965, MPFR_RNDN)) { mpfr_set(r12004, r11963, MPFR_RNDN); } else { mpfr_set(r12004, r12003, MPFR_RNDN); };
        return mpfr_get_d(r12004, MPFR_RNDN);
}

