#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 r19759 = 0.5f;
        float r19760 = 2.0f;
        float r19761 = re;
        float r19762 = r19761 * r19761;
        float r19763 = im;
        float r19764 = r19763 * r19763;
        float r19765 = r19762 + r19764;
        float r19766 = sqrt(r19765);
        float r19767 = r19766 + r19761;
        float r19768 = r19760 * r19767;
        float r19769 = sqrt(r19768);
        float r19770 = r19759 * r19769;
        return r19770;
}

double f_id(double re, double im) {
        double r19771 = 0.5;
        double r19772 = 2.0;
        double r19773 = re;
        double r19774 = r19773 * r19773;
        double r19775 = im;
        double r19776 = r19775 * r19775;
        double r19777 = r19774 + r19776;
        double r19778 = sqrt(r19777);
        double r19779 = r19778 + r19773;
        double r19780 = r19772 * r19779;
        double r19781 = sqrt(r19780);
        double r19782 = r19771 * r19781;
        return r19782;
}


double f_of(float re, float im) {
        float r19783 = re;
        float r19784 = -3.4790326343865455e+38f;
        bool r19785 = r19783 <= r19784;
        float r19786 = 0.5f;
        float r19787 = im;
        float r19788 = r19787 * r19787;
        float r19789 = 2.0f;
        float r19790 = r19788 * r19789;
        float r19791 = sqrt(r19790);
        float r19792 = r19786 * r19791;
        float r19793 = -r19783;
        float r19794 = r19793 - r19783;
        float r19795 = sqrt(r19794);
        float r19796 = r19792 / r19795;
        float r19797 = -2.3894507261462783e-112f;
        bool r19798 = r19783 <= r19797;
        float r19799 = r19783 * r19783;
        float r19800 = r19799 + r19788;
        float r19801 = sqrt(r19800);
        float r19802 = r19801 - r19783;
        float r19803 = r19788 / r19802;
        float r19804 = r19789 * r19803;
        float r19805 = sqrt(r19804);
        float r19806 = r19786 * r19805;
        float r19807 = 4.185543182523104e-238f;
        bool r19808 = r19783 <= r19807;
        float r19809 = r19787 + r19783;
        float r19810 = r19789 * r19809;
        float r19811 = sqrt(r19810);
        float r19812 = r19786 * r19811;
        float r19813 = 1.0258373431142267e+152f;
        bool r19814 = r19783 <= r19813;
        float r19815 = cbrt(r19800);
        float r19816 = sqrt(r19815);
        float r19817 = r19816 * r19816;
        float r19818 = r19817 * (r19817 * r19817);
        float r19819 = sqrt(r19818);
        float r19820 = r19819 + r19783;
        float r19821 = r19789 * r19820;
        float r19822 = sqrt(r19821);
        float r19823 = r19786 * r19822;
        float r19824 = r19783 + r19783;
        float r19825 = r19789 * r19824;
        float r19826 = sqrt(r19825);
        float r19827 = r19786 * r19826;
        float r19828 = r19814 ? r19823 : r19827;
        float r19829 = r19808 ? r19812 : r19828;
        float r19830 = r19798 ? r19806 : r19829;
        float r19831 = r19785 ? r19796 : r19830;
        return r19831;
}

double f_od(double re, double im) {
        double r19832 = re;
        double r19833 = -3.4790326343865455e+38;
        bool r19834 = r19832 <= r19833;
        double r19835 = 0.5;
        double r19836 = im;
        double r19837 = r19836 * r19836;
        double r19838 = 2.0;
        double r19839 = r19837 * r19838;
        double r19840 = sqrt(r19839);
        double r19841 = r19835 * r19840;
        double r19842 = -r19832;
        double r19843 = r19842 - r19832;
        double r19844 = sqrt(r19843);
        double r19845 = r19841 / r19844;
        double r19846 = -2.3894507261462783e-112;
        bool r19847 = r19832 <= r19846;
        double r19848 = r19832 * r19832;
        double r19849 = r19848 + r19837;
        double r19850 = sqrt(r19849);
        double r19851 = r19850 - r19832;
        double r19852 = r19837 / r19851;
        double r19853 = r19838 * r19852;
        double r19854 = sqrt(r19853);
        double r19855 = r19835 * r19854;
        double r19856 = 4.185543182523104e-238;
        bool r19857 = r19832 <= r19856;
        double r19858 = r19836 + r19832;
        double r19859 = r19838 * r19858;
        double r19860 = sqrt(r19859);
        double r19861 = r19835 * r19860;
        double r19862 = 1.0258373431142267e+152;
        bool r19863 = r19832 <= r19862;
        double r19864 = cbrt(r19849);
        double r19865 = sqrt(r19864);
        double r19866 = r19865 * r19865;
        double r19867 = r19866 * (r19866 * r19866);
        double r19868 = sqrt(r19867);
        double r19869 = r19868 + r19832;
        double r19870 = r19838 * r19869;
        double r19871 = sqrt(r19870);
        double r19872 = r19835 * r19871;
        double r19873 = r19832 + r19832;
        double r19874 = r19838 * r19873;
        double r19875 = sqrt(r19874);
        double r19876 = r19835 * r19875;
        double r19877 = r19863 ? r19872 : r19876;
        double r19878 = r19857 ? r19861 : r19877;
        double r19879 = r19847 ? r19855 : r19878;
        double r19880 = r19834 ? r19845 : r19879;
        return r19880;
}

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 r19881, r19882, r19883, r19884, r19885, r19886, r19887, r19888, r19889, r19890, r19891, r19892;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19881, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r19882, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19883);
        mpfr_init(r19884);
        mpfr_init(r19885);
        mpfr_init(r19886);
        mpfr_init(r19887);
        mpfr_init(r19888);
        mpfr_init(r19889);
        mpfr_init(r19890);
        mpfr_init(r19891);
        mpfr_init(r19892);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r19883, re, MPFR_RNDN);
        mpfr_mul(r19884, r19883, r19883, MPFR_RNDN);
        mpfr_set_d(r19885, im, MPFR_RNDN);
        mpfr_mul(r19886, r19885, r19885, MPFR_RNDN);
        mpfr_add(r19887, r19884, r19886, MPFR_RNDN);
        mpfr_sqrt(r19888, r19887, MPFR_RNDN);
        mpfr_add(r19889, r19888, r19883, MPFR_RNDN);
        mpfr_mul(r19890, r19882, r19889, MPFR_RNDN);
        mpfr_sqrt(r19891, r19890, MPFR_RNDN);
        mpfr_mul(r19892, r19881, r19891, MPFR_RNDN);
        return mpfr_get_d(r19892, MPFR_RNDN);
}

static mpfr_t r19893, r19894, r19895, r19896, r19897, r19898, r19899, r19900, r19901, r19902, r19903, r19904, r19905, r19906, r19907, r19908, r19909, r19910, r19911, r19912, r19913, r19914, r19915, r19916, r19917, r19918, r19919, r19920, r19921, r19922, r19923, r19924, r19925, r19926, r19927, r19928, r19929, r19930, r19931, r19932, r19933, r19934, r19935, r19936, r19937, r19938, r19939, r19940, r19941;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19893);
        mpfr_init_set_str(r19894, "-3.4790326343865455e+38", 10, MPFR_RNDN);
        mpfr_init(r19895);
        mpfr_init_set_str(r19896, "0.5", 10, MPFR_RNDN);
        mpfr_init(r19897);
        mpfr_init(r19898);
        mpfr_init_set_str(r19899, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19900);
        mpfr_init(r19901);
        mpfr_init(r19902);
        mpfr_init(r19903);
        mpfr_init(r19904);
        mpfr_init(r19905);
        mpfr_init(r19906);
        mpfr_init_set_str(r19907, "-2.3894507261462783e-112", 10, MPFR_RNDN);
        mpfr_init(r19908);
        mpfr_init(r19909);
        mpfr_init(r19910);
        mpfr_init(r19911);
        mpfr_init(r19912);
        mpfr_init(r19913);
        mpfr_init(r19914);
        mpfr_init(r19915);
        mpfr_init(r19916);
        mpfr_init_set_str(r19917, "4.185543182523104e-238", 10, MPFR_RNDN);
        mpfr_init(r19918);
        mpfr_init(r19919);
        mpfr_init(r19920);
        mpfr_init(r19921);
        mpfr_init(r19922);
        mpfr_init_set_str(r19923, "1.0258373431142267e+152", 10, MPFR_RNDN);
        mpfr_init(r19924);
        mpfr_init(r19925);
        mpfr_init(r19926);
        mpfr_init(r19927);
        mpfr_init(r19928);
        mpfr_init(r19929);
        mpfr_init(r19930);
        mpfr_init(r19931);
        mpfr_init(r19932);
        mpfr_init(r19933);
        mpfr_init(r19934);
        mpfr_init(r19935);
        mpfr_init(r19936);
        mpfr_init(r19937);
        mpfr_init(r19938);
        mpfr_init(r19939);
        mpfr_init(r19940);
        mpfr_init(r19941);
}

double f_fm(double re, double im) {
        mpfr_set_d(r19893, re, MPFR_RNDN);
        ;
        mpfr_set_si(r19895, mpfr_cmp(r19893, r19894) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r19897, im, MPFR_RNDN);
        mpfr_mul(r19898, r19897, r19897, MPFR_RNDN);
        ;
        mpfr_mul(r19900, r19898, r19899, MPFR_RNDN);
        mpfr_sqrt(r19901, r19900, MPFR_RNDN);
        mpfr_mul(r19902, r19896, r19901, MPFR_RNDN);
        mpfr_neg(r19903, r19893, MPFR_RNDN);
        mpfr_sub(r19904, r19903, r19893, MPFR_RNDN);
        mpfr_sqrt(r19905, r19904, MPFR_RNDN);
        mpfr_div(r19906, r19902, r19905, MPFR_RNDN);
        ;
        mpfr_set_si(r19908, mpfr_cmp(r19893, r19907) <= 0, MPFR_RNDN);
        mpfr_sqr(r19909, r19893, MPFR_RNDN);
        mpfr_add(r19910, r19909, r19898, MPFR_RNDN);
        mpfr_sqrt(r19911, r19910, MPFR_RNDN);
        mpfr_sub(r19912, r19911, r19893, MPFR_RNDN);
        mpfr_div(r19913, r19898, r19912, MPFR_RNDN);
        mpfr_mul(r19914, r19899, r19913, MPFR_RNDN);
        mpfr_sqrt(r19915, r19914, MPFR_RNDN);
        mpfr_mul(r19916, r19896, r19915, MPFR_RNDN);
        ;
        mpfr_set_si(r19918, mpfr_cmp(r19893, r19917) <= 0, MPFR_RNDN);
        mpfr_add(r19919, r19897, r19893, MPFR_RNDN);
        mpfr_mul(r19920, r19899, r19919, MPFR_RNDN);
        mpfr_sqrt(r19921, r19920, MPFR_RNDN);
        mpfr_mul(r19922, r19896, r19921, MPFR_RNDN);
        ;
        mpfr_set_si(r19924, mpfr_cmp(r19893, r19923) <= 0, MPFR_RNDN);
        mpfr_cbrt(r19925, r19910, MPFR_RNDN);
        mpfr_sqrt(r19926, r19925, MPFR_RNDN);
        mpfr_sqr(r19927, r19926, MPFR_RNDN);
        mpfr_mul(r19928, r19927, r19927, MPFR_RNDN); mpfr_mul(r19928, r19928, r19927, MPFR_RNDN);
        mpfr_sqrt(r19929, r19928, MPFR_RNDN);
        mpfr_add(r19930, r19929, r19893, MPFR_RNDN);
        mpfr_mul(r19931, r19899, r19930, MPFR_RNDN);
        mpfr_sqrt(r19932, r19931, MPFR_RNDN);
        mpfr_mul(r19933, r19896, r19932, MPFR_RNDN);
        mpfr_add(r19934, r19893, r19893, MPFR_RNDN);
        mpfr_mul(r19935, r19899, r19934, MPFR_RNDN);
        mpfr_sqrt(r19936, r19935, MPFR_RNDN);
        mpfr_mul(r19937, r19896, r19936, MPFR_RNDN);
        if (mpfr_get_si(r19924, MPFR_RNDN)) { mpfr_set(r19938, r19933, MPFR_RNDN); } else { mpfr_set(r19938, r19937, MPFR_RNDN); };
        if (mpfr_get_si(r19918, MPFR_RNDN)) { mpfr_set(r19939, r19922, MPFR_RNDN); } else { mpfr_set(r19939, r19938, MPFR_RNDN); };
        if (mpfr_get_si(r19908, MPFR_RNDN)) { mpfr_set(r19940, r19916, MPFR_RNDN); } else { mpfr_set(r19940, r19939, MPFR_RNDN); };
        if (mpfr_get_si(r19895, MPFR_RNDN)) { mpfr_set(r19941, r19906, MPFR_RNDN); } else { mpfr_set(r19941, r19940, MPFR_RNDN); };
        return mpfr_get_d(r19941, MPFR_RNDN);
}

static mpfr_t r19942, r19943, r19944, r19945, r19946, r19947, r19948, r19949, r19950, r19951, r19952, r19953, r19954, r19955, r19956, r19957, r19958, r19959, r19960, r19961, r19962, r19963, r19964, r19965, r19966, r19967, r19968, r19969, r19970, r19971, r19972, r19973, r19974, r19975, r19976, r19977, r19978, r19979, r19980, r19981, r19982, r19983, r19984, r19985, r19986, r19987, r19988, r19989, r19990;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19942);
        mpfr_init_set_str(r19943, "-3.4790326343865455e+38", 10, MPFR_RNDN);
        mpfr_init(r19944);
        mpfr_init_set_str(r19945, "0.5", 10, MPFR_RNDN);
        mpfr_init(r19946);
        mpfr_init(r19947);
        mpfr_init_set_str(r19948, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19949);
        mpfr_init(r19950);
        mpfr_init(r19951);
        mpfr_init(r19952);
        mpfr_init(r19953);
        mpfr_init(r19954);
        mpfr_init(r19955);
        mpfr_init_set_str(r19956, "-2.3894507261462783e-112", 10, MPFR_RNDN);
        mpfr_init(r19957);
        mpfr_init(r19958);
        mpfr_init(r19959);
        mpfr_init(r19960);
        mpfr_init(r19961);
        mpfr_init(r19962);
        mpfr_init(r19963);
        mpfr_init(r19964);
        mpfr_init(r19965);
        mpfr_init_set_str(r19966, "4.185543182523104e-238", 10, MPFR_RNDN);
        mpfr_init(r19967);
        mpfr_init(r19968);
        mpfr_init(r19969);
        mpfr_init(r19970);
        mpfr_init(r19971);
        mpfr_init_set_str(r19972, "1.0258373431142267e+152", 10, MPFR_RNDN);
        mpfr_init(r19973);
        mpfr_init(r19974);
        mpfr_init(r19975);
        mpfr_init(r19976);
        mpfr_init(r19977);
        mpfr_init(r19978);
        mpfr_init(r19979);
        mpfr_init(r19980);
        mpfr_init(r19981);
        mpfr_init(r19982);
        mpfr_init(r19983);
        mpfr_init(r19984);
        mpfr_init(r19985);
        mpfr_init(r19986);
        mpfr_init(r19987);
        mpfr_init(r19988);
        mpfr_init(r19989);
        mpfr_init(r19990);
}

double f_dm(double re, double im) {
        mpfr_set_d(r19942, re, MPFR_RNDN);
        ;
        mpfr_set_si(r19944, mpfr_cmp(r19942, r19943) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r19946, im, MPFR_RNDN);
        mpfr_mul(r19947, r19946, r19946, MPFR_RNDN);
        ;
        mpfr_mul(r19949, r19947, r19948, MPFR_RNDN);
        mpfr_sqrt(r19950, r19949, MPFR_RNDN);
        mpfr_mul(r19951, r19945, r19950, MPFR_RNDN);
        mpfr_neg(r19952, r19942, MPFR_RNDN);
        mpfr_sub(r19953, r19952, r19942, MPFR_RNDN);
        mpfr_sqrt(r19954, r19953, MPFR_RNDN);
        mpfr_div(r19955, r19951, r19954, MPFR_RNDN);
        ;
        mpfr_set_si(r19957, mpfr_cmp(r19942, r19956) <= 0, MPFR_RNDN);
        mpfr_sqr(r19958, r19942, MPFR_RNDN);
        mpfr_add(r19959, r19958, r19947, MPFR_RNDN);
        mpfr_sqrt(r19960, r19959, MPFR_RNDN);
        mpfr_sub(r19961, r19960, r19942, MPFR_RNDN);
        mpfr_div(r19962, r19947, r19961, MPFR_RNDN);
        mpfr_mul(r19963, r19948, r19962, MPFR_RNDN);
        mpfr_sqrt(r19964, r19963, MPFR_RNDN);
        mpfr_mul(r19965, r19945, r19964, MPFR_RNDN);
        ;
        mpfr_set_si(r19967, mpfr_cmp(r19942, r19966) <= 0, MPFR_RNDN);
        mpfr_add(r19968, r19946, r19942, MPFR_RNDN);
        mpfr_mul(r19969, r19948, r19968, MPFR_RNDN);
        mpfr_sqrt(r19970, r19969, MPFR_RNDN);
        mpfr_mul(r19971, r19945, r19970, MPFR_RNDN);
        ;
        mpfr_set_si(r19973, mpfr_cmp(r19942, r19972) <= 0, MPFR_RNDN);
        mpfr_cbrt(r19974, r19959, MPFR_RNDN);
        mpfr_sqrt(r19975, r19974, MPFR_RNDN);
        mpfr_sqr(r19976, r19975, MPFR_RNDN);
        mpfr_mul(r19977, r19976, r19976, MPFR_RNDN); mpfr_mul(r19977, r19977, r19976, MPFR_RNDN);
        mpfr_sqrt(r19978, r19977, MPFR_RNDN);
        mpfr_add(r19979, r19978, r19942, MPFR_RNDN);
        mpfr_mul(r19980, r19948, r19979, MPFR_RNDN);
        mpfr_sqrt(r19981, r19980, MPFR_RNDN);
        mpfr_mul(r19982, r19945, r19981, MPFR_RNDN);
        mpfr_add(r19983, r19942, r19942, MPFR_RNDN);
        mpfr_mul(r19984, r19948, r19983, MPFR_RNDN);
        mpfr_sqrt(r19985, r19984, MPFR_RNDN);
        mpfr_mul(r19986, r19945, r19985, MPFR_RNDN);
        if (mpfr_get_si(r19973, MPFR_RNDN)) { mpfr_set(r19987, r19982, MPFR_RNDN); } else { mpfr_set(r19987, r19986, MPFR_RNDN); };
        if (mpfr_get_si(r19967, MPFR_RNDN)) { mpfr_set(r19988, r19971, MPFR_RNDN); } else { mpfr_set(r19988, r19987, MPFR_RNDN); };
        if (mpfr_get_si(r19957, MPFR_RNDN)) { mpfr_set(r19989, r19965, MPFR_RNDN); } else { mpfr_set(r19989, r19988, MPFR_RNDN); };
        if (mpfr_get_si(r19944, MPFR_RNDN)) { mpfr_set(r19990, r19955, MPFR_RNDN); } else { mpfr_set(r19990, r19989, MPFR_RNDN); };
        return mpfr_get_d(r19990, MPFR_RNDN);
}

