#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 r25778 = 0.5;
        float r25779 = 2.0;
        float r25780 = re;
        float r25781 = r25780 * r25780;
        float r25782 = im;
        float r25783 = r25782 * r25782;
        float r25784 = r25781 + r25783;
        float r25785 = sqrt(r25784);
        float r25786 = r25785 + r25780;
        float r25787 = r25779 * r25786;
        float r25788 = sqrt(r25787);
        float r25789 = r25778 * r25788;
        return r25789;
}

double f_id(double re, double im) {
        double r25790 = 0.5;
        double r25791 = 2.0;
        double r25792 = re;
        double r25793 = r25792 * r25792;
        double r25794 = im;
        double r25795 = r25794 * r25794;
        double r25796 = r25793 + r25795;
        double r25797 = sqrt(r25796);
        double r25798 = r25797 + r25792;
        double r25799 = r25791 * r25798;
        double r25800 = sqrt(r25799);
        double r25801 = r25790 * r25800;
        return r25801;
}


double f_of(float re, float im) {
        float r25802 = 2.0;
        float r25803 = im;
        float r25804 = re;
        float r25805 = r25803 + r25804;
        float r25806 = r25802 * r25805;
        float r25807 = -3.887222573094217e+156;
        bool r25808 = r25806 <= r25807;
        float r25809 = sqrt(r25802);
        float r25810 = 0.5;
        float r25811 = fabs(r25803);
        float r25812 = r25810 * r25811;
        float r25813 = r25809 * r25812;
        float r25814 = -r25804;
        float r25815 = r25814 - r25804;
        float r25816 = sqrt(r25815);
        float r25817 = r25813 / r25816;
        float r25818 = 2.7825009110149333e-269;
        bool r25819 = r25806 <= r25818;
        float r25820 = r25804 * r25804;
        float r25821 = r25803 * r25803;
        float r25822 = r25820 + r25821;
        float r25823 = sqrt(r25822);
        float r25824 = r25823 - r25804;
        float r25825 = sqrt(r25824);
        float r25826 = r25811 / r25825;
        float r25827 = r25809 * r25826;
        float r25828 = r25810 * r25827;
        float r25829 = 1.9429233413685528e-125;
        bool r25830 = r25806 <= r25829;
        float r25831 = sqrt(r25806);
        float r25832 = r25810 * r25831;
        float r25833 = 2.661281128952963e+166;
        bool r25834 = r25806 <= r25833;
        float r25835 = r25823 + r25804;
        float r25836 = sqrt(r25835);
        float r25837 = r25809 * r25836;
        float r25838 = r25810 * r25837;
        float r25839 = 3.6901729893920858e+196;
        bool r25840 = r25806 <= r25839;
        float r25841 = r25804 + r25804;
        float r25842 = r25802 * r25841;
        float r25843 = sqrt(r25842);
        float r25844 = r25810 * r25843;
        float r25845 = 1.4128593872344988e+229;
        bool r25846 = r25806 <= r25845;
        float r25847 = r25846 ? r25832 : r25844;
        float r25848 = r25840 ? r25844 : r25847;
        float r25849 = r25834 ? r25838 : r25848;
        float r25850 = r25830 ? r25832 : r25849;
        float r25851 = r25819 ? r25828 : r25850;
        float r25852 = r25808 ? r25817 : r25851;
        return r25852;
}

double f_od(double re, double im) {
        double r25853 = 2.0;
        double r25854 = im;
        double r25855 = re;
        double r25856 = r25854 + r25855;
        double r25857 = r25853 * r25856;
        double r25858 = -3.887222573094217e+156;
        bool r25859 = r25857 <= r25858;
        double r25860 = sqrt(r25853);
        double r25861 = 0.5;
        double r25862 = fabs(r25854);
        double r25863 = r25861 * r25862;
        double r25864 = r25860 * r25863;
        double r25865 = -r25855;
        double r25866 = r25865 - r25855;
        double r25867 = sqrt(r25866);
        double r25868 = r25864 / r25867;
        double r25869 = 2.7825009110149333e-269;
        bool r25870 = r25857 <= r25869;
        double r25871 = r25855 * r25855;
        double r25872 = r25854 * r25854;
        double r25873 = r25871 + r25872;
        double r25874 = sqrt(r25873);
        double r25875 = r25874 - r25855;
        double r25876 = sqrt(r25875);
        double r25877 = r25862 / r25876;
        double r25878 = r25860 * r25877;
        double r25879 = r25861 * r25878;
        double r25880 = 1.9429233413685528e-125;
        bool r25881 = r25857 <= r25880;
        double r25882 = sqrt(r25857);
        double r25883 = r25861 * r25882;
        double r25884 = 2.661281128952963e+166;
        bool r25885 = r25857 <= r25884;
        double r25886 = r25874 + r25855;
        double r25887 = sqrt(r25886);
        double r25888 = r25860 * r25887;
        double r25889 = r25861 * r25888;
        double r25890 = 3.6901729893920858e+196;
        bool r25891 = r25857 <= r25890;
        double r25892 = r25855 + r25855;
        double r25893 = r25853 * r25892;
        double r25894 = sqrt(r25893);
        double r25895 = r25861 * r25894;
        double r25896 = 1.4128593872344988e+229;
        bool r25897 = r25857 <= r25896;
        double r25898 = r25897 ? r25883 : r25895;
        double r25899 = r25891 ? r25895 : r25898;
        double r25900 = r25885 ? r25889 : r25899;
        double r25901 = r25881 ? r25883 : r25900;
        double r25902 = r25870 ? r25879 : r25901;
        double r25903 = r25859 ? r25868 : r25902;
        return r25903;
}

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 r25904, r25905, r25906, r25907, r25908, r25909, r25910, r25911, r25912, r25913, r25914, r25915;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init_set_str(r25904, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r25905, "2.0", 10, MPFR_RNDN);
        mpfr_init(r25906);
        mpfr_init(r25907);
        mpfr_init(r25908);
        mpfr_init(r25909);
        mpfr_init(r25910);
        mpfr_init(r25911);
        mpfr_init(r25912);
        mpfr_init(r25913);
        mpfr_init(r25914);
        mpfr_init(r25915);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r25906, re, MPFR_RNDN);
        mpfr_mul(r25907, r25906, r25906, MPFR_RNDN);
        mpfr_set_d(r25908, im, MPFR_RNDN);
        mpfr_mul(r25909, r25908, r25908, MPFR_RNDN);
        mpfr_add(r25910, r25907, r25909, MPFR_RNDN);
        mpfr_sqrt(r25911, r25910, MPFR_RNDN);
        mpfr_add(r25912, r25911, r25906, MPFR_RNDN);
        mpfr_mul(r25913, r25905, r25912, MPFR_RNDN);
        mpfr_sqrt(r25914, r25913, MPFR_RNDN);
        mpfr_mul(r25915, r25904, r25914, MPFR_RNDN);
        return mpfr_get_d(r25915, MPFR_RNDN);
}

static mpfr_t r25916, r25917, r25918, r25919, r25920, r25921, r25922, r25923, r25924, r25925, r25926, r25927, r25928, r25929, r25930, r25931, r25932, r25933, r25934, r25935, r25936, r25937, r25938, r25939, r25940, r25941, r25942, r25943, r25944, r25945, r25946, r25947, r25948, r25949, r25950, r25951, r25952, r25953, r25954, r25955, r25956, r25957, r25958, r25959, r25960, r25961, r25962, r25963, r25964, r25965, r25966;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init_set_str(r25916, "2.0", 10, MPFR_RNDN);
        mpfr_init(r25917);
        mpfr_init(r25918);
        mpfr_init(r25919);
        mpfr_init(r25920);
        mpfr_init_set_str(r25921, "-3.887222573094217e+156", 10, MPFR_RNDN);
        mpfr_init(r25922);
        mpfr_init(r25923);
        mpfr_init_set_str(r25924, "0.5", 10, MPFR_RNDN);
        mpfr_init(r25925);
        mpfr_init(r25926);
        mpfr_init(r25927);
        mpfr_init(r25928);
        mpfr_init(r25929);
        mpfr_init(r25930);
        mpfr_init(r25931);
        mpfr_init_set_str(r25932, "2.7825009110149333e-269", 10, MPFR_RNDN);
        mpfr_init(r25933);
        mpfr_init(r25934);
        mpfr_init(r25935);
        mpfr_init(r25936);
        mpfr_init(r25937);
        mpfr_init(r25938);
        mpfr_init(r25939);
        mpfr_init(r25940);
        mpfr_init(r25941);
        mpfr_init(r25942);
        mpfr_init_set_str(r25943, "1.9429233413685528e-125", 10, MPFR_RNDN);
        mpfr_init(r25944);
        mpfr_init(r25945);
        mpfr_init(r25946);
        mpfr_init_set_str(r25947, "2.661281128952963e+166", 10, MPFR_RNDN);
        mpfr_init(r25948);
        mpfr_init(r25949);
        mpfr_init(r25950);
        mpfr_init(r25951);
        mpfr_init(r25952);
        mpfr_init_set_str(r25953, "3.6901729893920858e+196", 10, MPFR_RNDN);
        mpfr_init(r25954);
        mpfr_init(r25955);
        mpfr_init(r25956);
        mpfr_init(r25957);
        mpfr_init(r25958);
        mpfr_init_set_str(r25959, "1.4128593872344988e+229", 10, MPFR_RNDN);
        mpfr_init(r25960);
        mpfr_init(r25961);
        mpfr_init(r25962);
        mpfr_init(r25963);
        mpfr_init(r25964);
        mpfr_init(r25965);
        mpfr_init(r25966);
}

double f_fm(double re, double im) {
        ;
        mpfr_set_d(r25917, im, MPFR_RNDN);
        mpfr_set_d(r25918, re, MPFR_RNDN);
        mpfr_add(r25919, r25917, r25918, MPFR_RNDN);
        mpfr_mul(r25920, r25916, r25919, MPFR_RNDN);
        ;
        mpfr_set_si(r25922, mpfr_cmp(r25920, r25921) <= 0, MPFR_RNDN);
        mpfr_sqrt(r25923, r25916, MPFR_RNDN);
        ;
        mpfr_abs(r25925, r25917, MPFR_RNDN);
        mpfr_mul(r25926, r25924, r25925, MPFR_RNDN);
        mpfr_mul(r25927, r25923, r25926, MPFR_RNDN);
        mpfr_neg(r25928, r25918, MPFR_RNDN);
        mpfr_sub(r25929, r25928, r25918, MPFR_RNDN);
        mpfr_sqrt(r25930, r25929, MPFR_RNDN);
        mpfr_div(r25931, r25927, r25930, MPFR_RNDN);
        ;
        mpfr_set_si(r25933, mpfr_cmp(r25920, r25932) <= 0, MPFR_RNDN);
        mpfr_mul(r25934, r25918, r25918, MPFR_RNDN);
        mpfr_mul(r25935, r25917, r25917, MPFR_RNDN);
        mpfr_add(r25936, r25934, r25935, MPFR_RNDN);
        mpfr_sqrt(r25937, r25936, MPFR_RNDN);
        mpfr_sub(r25938, r25937, r25918, MPFR_RNDN);
        mpfr_sqrt(r25939, r25938, MPFR_RNDN);
        mpfr_div(r25940, r25925, r25939, MPFR_RNDN);
        mpfr_mul(r25941, r25923, r25940, MPFR_RNDN);
        mpfr_mul(r25942, r25924, r25941, MPFR_RNDN);
        ;
        mpfr_set_si(r25944, mpfr_cmp(r25920, r25943) <= 0, MPFR_RNDN);
        mpfr_sqrt(r25945, r25920, MPFR_RNDN);
        mpfr_mul(r25946, r25924, r25945, MPFR_RNDN);
        ;
        mpfr_set_si(r25948, mpfr_cmp(r25920, r25947) <= 0, MPFR_RNDN);
        mpfr_add(r25949, r25937, r25918, MPFR_RNDN);
        mpfr_sqrt(r25950, r25949, MPFR_RNDN);
        mpfr_mul(r25951, r25923, r25950, MPFR_RNDN);
        mpfr_mul(r25952, r25924, r25951, MPFR_RNDN);
        ;
        mpfr_set_si(r25954, mpfr_cmp(r25920, r25953) <= 0, MPFR_RNDN);
        mpfr_add(r25955, r25918, r25918, MPFR_RNDN);
        mpfr_mul(r25956, r25916, r25955, MPFR_RNDN);
        mpfr_sqrt(r25957, r25956, MPFR_RNDN);
        mpfr_mul(r25958, r25924, r25957, MPFR_RNDN);
        ;
        mpfr_set_si(r25960, mpfr_cmp(r25920, r25959) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r25960, MPFR_RNDN)) { mpfr_set(r25961, r25946, MPFR_RNDN); } else { mpfr_set(r25961, r25958, MPFR_RNDN); };
        if (mpfr_get_si(r25954, MPFR_RNDN)) { mpfr_set(r25962, r25958, MPFR_RNDN); } else { mpfr_set(r25962, r25961, MPFR_RNDN); };
        if (mpfr_get_si(r25948, MPFR_RNDN)) { mpfr_set(r25963, r25952, MPFR_RNDN); } else { mpfr_set(r25963, r25962, MPFR_RNDN); };
        if (mpfr_get_si(r25944, MPFR_RNDN)) { mpfr_set(r25964, r25946, MPFR_RNDN); } else { mpfr_set(r25964, r25963, MPFR_RNDN); };
        if (mpfr_get_si(r25933, MPFR_RNDN)) { mpfr_set(r25965, r25942, MPFR_RNDN); } else { mpfr_set(r25965, r25964, MPFR_RNDN); };
        if (mpfr_get_si(r25922, MPFR_RNDN)) { mpfr_set(r25966, r25931, MPFR_RNDN); } else { mpfr_set(r25966, r25965, MPFR_RNDN); };
        return mpfr_get_d(r25966, MPFR_RNDN);
}

static mpfr_t r25967, r25968, r25969, r25970, r25971, r25972, r25973, r25974, r25975, r25976, r25977, r25978, r25979, r25980, r25981, r25982, r25983, r25984, r25985, r25986, r25987, r25988, r25989, r25990, r25991, r25992, r25993, r25994, r25995, r25996, r25997, r25998, r25999, r26000, r26001, r26002, r26003, r26004, r26005, r26006, r26007, r26008, r26009, r26010, r26011, r26012, r26013, r26014, r26015, r26016, r26017;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init_set_str(r25967, "2.0", 10, MPFR_RNDN);
        mpfr_init(r25968);
        mpfr_init(r25969);
        mpfr_init(r25970);
        mpfr_init(r25971);
        mpfr_init_set_str(r25972, "-3.887222573094217e+156", 10, MPFR_RNDN);
        mpfr_init(r25973);
        mpfr_init(r25974);
        mpfr_init_set_str(r25975, "0.5", 10, MPFR_RNDN);
        mpfr_init(r25976);
        mpfr_init(r25977);
        mpfr_init(r25978);
        mpfr_init(r25979);
        mpfr_init(r25980);
        mpfr_init(r25981);
        mpfr_init(r25982);
        mpfr_init_set_str(r25983, "2.7825009110149333e-269", 10, MPFR_RNDN);
        mpfr_init(r25984);
        mpfr_init(r25985);
        mpfr_init(r25986);
        mpfr_init(r25987);
        mpfr_init(r25988);
        mpfr_init(r25989);
        mpfr_init(r25990);
        mpfr_init(r25991);
        mpfr_init(r25992);
        mpfr_init(r25993);
        mpfr_init_set_str(r25994, "1.9429233413685528e-125", 10, MPFR_RNDN);
        mpfr_init(r25995);
        mpfr_init(r25996);
        mpfr_init(r25997);
        mpfr_init_set_str(r25998, "2.661281128952963e+166", 10, MPFR_RNDN);
        mpfr_init(r25999);
        mpfr_init(r26000);
        mpfr_init(r26001);
        mpfr_init(r26002);
        mpfr_init(r26003);
        mpfr_init_set_str(r26004, "3.6901729893920858e+196", 10, MPFR_RNDN);
        mpfr_init(r26005);
        mpfr_init(r26006);
        mpfr_init(r26007);
        mpfr_init(r26008);
        mpfr_init(r26009);
        mpfr_init_set_str(r26010, "1.4128593872344988e+229", 10, MPFR_RNDN);
        mpfr_init(r26011);
        mpfr_init(r26012);
        mpfr_init(r26013);
        mpfr_init(r26014);
        mpfr_init(r26015);
        mpfr_init(r26016);
        mpfr_init(r26017);
}

double f_dm(double re, double im) {
        ;
        mpfr_set_d(r25968, im, MPFR_RNDN);
        mpfr_set_d(r25969, re, MPFR_RNDN);
        mpfr_add(r25970, r25968, r25969, MPFR_RNDN);
        mpfr_mul(r25971, r25967, r25970, MPFR_RNDN);
        ;
        mpfr_set_si(r25973, mpfr_cmp(r25971, r25972) <= 0, MPFR_RNDN);
        mpfr_sqrt(r25974, r25967, MPFR_RNDN);
        ;
        mpfr_abs(r25976, r25968, MPFR_RNDN);
        mpfr_mul(r25977, r25975, r25976, MPFR_RNDN);
        mpfr_mul(r25978, r25974, r25977, MPFR_RNDN);
        mpfr_neg(r25979, r25969, MPFR_RNDN);
        mpfr_sub(r25980, r25979, r25969, MPFR_RNDN);
        mpfr_sqrt(r25981, r25980, MPFR_RNDN);
        mpfr_div(r25982, r25978, r25981, MPFR_RNDN);
        ;
        mpfr_set_si(r25984, mpfr_cmp(r25971, r25983) <= 0, MPFR_RNDN);
        mpfr_mul(r25985, r25969, r25969, MPFR_RNDN);
        mpfr_mul(r25986, r25968, r25968, MPFR_RNDN);
        mpfr_add(r25987, r25985, r25986, MPFR_RNDN);
        mpfr_sqrt(r25988, r25987, MPFR_RNDN);
        mpfr_sub(r25989, r25988, r25969, MPFR_RNDN);
        mpfr_sqrt(r25990, r25989, MPFR_RNDN);
        mpfr_div(r25991, r25976, r25990, MPFR_RNDN);
        mpfr_mul(r25992, r25974, r25991, MPFR_RNDN);
        mpfr_mul(r25993, r25975, r25992, MPFR_RNDN);
        ;
        mpfr_set_si(r25995, mpfr_cmp(r25971, r25994) <= 0, MPFR_RNDN);
        mpfr_sqrt(r25996, r25971, MPFR_RNDN);
        mpfr_mul(r25997, r25975, r25996, MPFR_RNDN);
        ;
        mpfr_set_si(r25999, mpfr_cmp(r25971, r25998) <= 0, MPFR_RNDN);
        mpfr_add(r26000, r25988, r25969, MPFR_RNDN);
        mpfr_sqrt(r26001, r26000, MPFR_RNDN);
        mpfr_mul(r26002, r25974, r26001, MPFR_RNDN);
        mpfr_mul(r26003, r25975, r26002, MPFR_RNDN);
        ;
        mpfr_set_si(r26005, mpfr_cmp(r25971, r26004) <= 0, MPFR_RNDN);
        mpfr_add(r26006, r25969, r25969, MPFR_RNDN);
        mpfr_mul(r26007, r25967, r26006, MPFR_RNDN);
        mpfr_sqrt(r26008, r26007, MPFR_RNDN);
        mpfr_mul(r26009, r25975, r26008, MPFR_RNDN);
        ;
        mpfr_set_si(r26011, mpfr_cmp(r25971, r26010) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r26011, MPFR_RNDN)) { mpfr_set(r26012, r25997, MPFR_RNDN); } else { mpfr_set(r26012, r26009, MPFR_RNDN); };
        if (mpfr_get_si(r26005, MPFR_RNDN)) { mpfr_set(r26013, r26009, MPFR_RNDN); } else { mpfr_set(r26013, r26012, MPFR_RNDN); };
        if (mpfr_get_si(r25999, MPFR_RNDN)) { mpfr_set(r26014, r26003, MPFR_RNDN); } else { mpfr_set(r26014, r26013, MPFR_RNDN); };
        if (mpfr_get_si(r25995, MPFR_RNDN)) { mpfr_set(r26015, r25997, MPFR_RNDN); } else { mpfr_set(r26015, r26014, MPFR_RNDN); };
        if (mpfr_get_si(r25984, MPFR_RNDN)) { mpfr_set(r26016, r25993, MPFR_RNDN); } else { mpfr_set(r26016, r26015, MPFR_RNDN); };
        if (mpfr_get_si(r25973, MPFR_RNDN)) { mpfr_set(r26017, r25982, MPFR_RNDN); } else { mpfr_set(r26017, r26016, MPFR_RNDN); };
        return mpfr_get_d(r26017, MPFR_RNDN);
}

