#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 r19696 = 0.5f;
        float r19697 = 2.0f;
        float r19698 = re;
        float r19699 = r19698 * r19698;
        float r19700 = im;
        float r19701 = r19700 * r19700;
        float r19702 = r19699 + r19701;
        float r19703 = sqrt(r19702);
        float r19704 = r19703 + r19698;
        float r19705 = r19697 * r19704;
        float r19706 = sqrt(r19705);
        float r19707 = r19696 * r19706;
        return r19707;
}

double f_id(double re, double im) {
        double r19708 = 0.5;
        double r19709 = 2.0;
        double r19710 = re;
        double r19711 = r19710 * r19710;
        double r19712 = im;
        double r19713 = r19712 * r19712;
        double r19714 = r19711 + r19713;
        double r19715 = sqrt(r19714);
        double r19716 = r19715 + r19710;
        double r19717 = r19709 * r19716;
        double r19718 = sqrt(r19717);
        double r19719 = r19708 * r19718;
        return r19719;
}


double f_of(float re, float im) {
        float r19720 = re;
        float r19721 = -6.203254496817905e+35f;
        bool r19722 = r19720 <= r19721;
        float r19723 = 0.5f;
        float r19724 = im;
        float r19725 = r19724 * r19724;
        float r19726 = 2.0f;
        float r19727 = r19725 * r19726;
        float r19728 = sqrt(r19727);
        float r19729 = r19723 * r19728;
        float r19730 = -r19720;
        float r19731 = r19730 - r19720;
        float r19732 = sqrt(r19731);
        float r19733 = r19729 / r19732;
        float r19734 = -1.5608708420993077e-235f;
        bool r19735 = r19720 <= r19734;
        float r19736 = r19720 * r19720;
        float r19737 = r19736 + r19725;
        float r19738 = sqrt(r19737);
        float r19739 = r19738 - r19720;
        float r19740 = r19725 / r19739;
        float r19741 = r19726 * r19740;
        float r19742 = sqrt(r19741);
        float r19743 = r19723 * r19742;
        float r19744 = -2.3665634646026902e-293f;
        bool r19745 = r19720 <= r19744;
        float r19746 = r19724 + r19720;
        float r19747 = r19726 * r19746;
        float r19748 = sqrt(r19747);
        float r19749 = r19723 * r19748;
        float r19750 = 1.245134237263001e-160f;
        bool r19751 = r19720 <= r19750;
        float r19752 = 1.9998665483824554e-138f;
        bool r19753 = r19720 <= r19752;
        float r19754 = r19720 + r19720;
        float r19755 = r19726 * r19754;
        float r19756 = sqrt(r19755);
        float r19757 = r19723 * r19756;
        float r19758 = 2.56976209479494e+109f;
        bool r19759 = r19720 <= r19758;
        float r19760 = r19720 * r19720;
        float r19761 = r19760 + r19725;
        float r19762 = sqrt(r19761);
        float r19763 = r19762 + r19720;
        float r19764 = r19726 * r19763;
        float r19765 = sqrt(r19764);
        float r19766 = log(r19765);
        float r19767 = exp(r19766);
        float r19768 = r19723 * r19767;
        float r19769 = r19759 ? r19768 : r19757;
        float r19770 = r19753 ? r19757 : r19769;
        float r19771 = r19751 ? r19743 : r19770;
        float r19772 = r19745 ? r19749 : r19771;
        float r19773 = r19735 ? r19743 : r19772;
        float r19774 = r19722 ? r19733 : r19773;
        return r19774;
}

double f_od(double re, double im) {
        double r19775 = re;
        double r19776 = -6.203254496817905e+35;
        bool r19777 = r19775 <= r19776;
        double r19778 = 0.5;
        double r19779 = im;
        double r19780 = r19779 * r19779;
        double r19781 = 2.0;
        double r19782 = r19780 * r19781;
        double r19783 = sqrt(r19782);
        double r19784 = r19778 * r19783;
        double r19785 = -r19775;
        double r19786 = r19785 - r19775;
        double r19787 = sqrt(r19786);
        double r19788 = r19784 / r19787;
        double r19789 = -1.5608708420993077e-235;
        bool r19790 = r19775 <= r19789;
        double r19791 = r19775 * r19775;
        double r19792 = r19791 + r19780;
        double r19793 = sqrt(r19792);
        double r19794 = r19793 - r19775;
        double r19795 = r19780 / r19794;
        double r19796 = r19781 * r19795;
        double r19797 = sqrt(r19796);
        double r19798 = r19778 * r19797;
        double r19799 = -2.3665634646026902e-293;
        bool r19800 = r19775 <= r19799;
        double r19801 = r19779 + r19775;
        double r19802 = r19781 * r19801;
        double r19803 = sqrt(r19802);
        double r19804 = r19778 * r19803;
        double r19805 = 1.245134237263001e-160;
        bool r19806 = r19775 <= r19805;
        double r19807 = 1.9998665483824554e-138;
        bool r19808 = r19775 <= r19807;
        double r19809 = r19775 + r19775;
        double r19810 = r19781 * r19809;
        double r19811 = sqrt(r19810);
        double r19812 = r19778 * r19811;
        double r19813 = 2.56976209479494e+109;
        bool r19814 = r19775 <= r19813;
        double r19815 = r19775 * r19775;
        double r19816 = r19815 + r19780;
        double r19817 = sqrt(r19816);
        double r19818 = r19817 + r19775;
        double r19819 = r19781 * r19818;
        double r19820 = sqrt(r19819);
        double r19821 = log(r19820);
        double r19822 = exp(r19821);
        double r19823 = r19778 * r19822;
        double r19824 = r19814 ? r19823 : r19812;
        double r19825 = r19808 ? r19812 : r19824;
        double r19826 = r19806 ? r19798 : r19825;
        double r19827 = r19800 ? r19804 : r19826;
        double r19828 = r19790 ? r19798 : r19827;
        double r19829 = r19777 ? r19788 : r19828;
        return r19829;
}

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 r19830, r19831, r19832, r19833, r19834, r19835, r19836, r19837, r19838, r19839, r19840, r19841;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r19830, "0.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r19831, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19832);
        mpfr_init(r19833);
        mpfr_init(r19834);
        mpfr_init(r19835);
        mpfr_init(r19836);
        mpfr_init(r19837);
        mpfr_init(r19838);
        mpfr_init(r19839);
        mpfr_init(r19840);
        mpfr_init(r19841);
}

double f_im(double re, double im) {
        ;
        ;
        mpfr_set_d(r19832, re, MPFR_RNDN);
        mpfr_mul(r19833, r19832, r19832, MPFR_RNDN);
        mpfr_set_d(r19834, im, MPFR_RNDN);
        mpfr_mul(r19835, r19834, r19834, MPFR_RNDN);
        mpfr_add(r19836, r19833, r19835, MPFR_RNDN);
        mpfr_sqrt(r19837, r19836, MPFR_RNDN);
        mpfr_add(r19838, r19837, r19832, MPFR_RNDN);
        mpfr_mul(r19839, r19831, r19838, MPFR_RNDN);
        mpfr_sqrt(r19840, r19839, MPFR_RNDN);
        mpfr_mul(r19841, r19830, r19840, MPFR_RNDN);
        return mpfr_get_d(r19841, MPFR_RNDN);
}

static mpfr_t r19842, r19843, r19844, r19845, r19846, r19847, r19848, r19849, r19850, r19851, r19852, r19853, r19854, r19855, r19856, r19857, r19858, r19859, r19860, r19861, r19862, r19863, r19864, r19865, r19866, r19867, r19868, r19869, r19870, r19871, r19872, r19873, r19874, r19875, r19876, r19877, r19878, r19879, r19880, r19881, r19882, r19883, r19884, r19885, r19886, r19887, r19888, r19889, r19890, r19891, r19892, r19893, r19894, r19895, r19896;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19842);
        mpfr_init_set_str(r19843, "-6.203254496817905e+35", 10, MPFR_RNDN);
        mpfr_init(r19844);
        mpfr_init_set_str(r19845, "0.5", 10, MPFR_RNDN);
        mpfr_init(r19846);
        mpfr_init(r19847);
        mpfr_init_set_str(r19848, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19849);
        mpfr_init(r19850);
        mpfr_init(r19851);
        mpfr_init(r19852);
        mpfr_init(r19853);
        mpfr_init(r19854);
        mpfr_init(r19855);
        mpfr_init_set_str(r19856, "-1.5608708420993077e-235", 10, MPFR_RNDN);
        mpfr_init(r19857);
        mpfr_init(r19858);
        mpfr_init(r19859);
        mpfr_init(r19860);
        mpfr_init(r19861);
        mpfr_init(r19862);
        mpfr_init(r19863);
        mpfr_init(r19864);
        mpfr_init(r19865);
        mpfr_init_set_str(r19866, "-2.3665634646026902e-293", 10, MPFR_RNDN);
        mpfr_init(r19867);
        mpfr_init(r19868);
        mpfr_init(r19869);
        mpfr_init(r19870);
        mpfr_init(r19871);
        mpfr_init_set_str(r19872, "1.245134237263001e-160", 10, MPFR_RNDN);
        mpfr_init(r19873);
        mpfr_init_set_str(r19874, "1.9998665483824554e-138", 10, MPFR_RNDN);
        mpfr_init(r19875);
        mpfr_init(r19876);
        mpfr_init(r19877);
        mpfr_init(r19878);
        mpfr_init(r19879);
        mpfr_init_set_str(r19880, "2.56976209479494e+109", 10, MPFR_RNDN);
        mpfr_init(r19881);
        mpfr_init(r19882);
        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);
        mpfr_init(r19893);
        mpfr_init(r19894);
        mpfr_init(r19895);
        mpfr_init(r19896);
}

double f_fm(double re, double im) {
        mpfr_set_d(r19842, re, MPFR_RNDN);
        ;
        mpfr_set_si(r19844, mpfr_cmp(r19842, r19843) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r19846, im, MPFR_RNDN);
        mpfr_mul(r19847, r19846, r19846, MPFR_RNDN);
        ;
        mpfr_mul(r19849, r19847, r19848, MPFR_RNDN);
        mpfr_sqrt(r19850, r19849, MPFR_RNDN);
        mpfr_mul(r19851, r19845, r19850, MPFR_RNDN);
        mpfr_neg(r19852, r19842, MPFR_RNDN);
        mpfr_sub(r19853, r19852, r19842, MPFR_RNDN);
        mpfr_sqrt(r19854, r19853, MPFR_RNDN);
        mpfr_div(r19855, r19851, r19854, MPFR_RNDN);
        ;
        mpfr_set_si(r19857, mpfr_cmp(r19842, r19856) <= 0, MPFR_RNDN);
        mpfr_sqr(r19858, r19842, MPFR_RNDN);
        mpfr_add(r19859, r19858, r19847, MPFR_RNDN);
        mpfr_sqrt(r19860, r19859, MPFR_RNDN);
        mpfr_sub(r19861, r19860, r19842, MPFR_RNDN);
        mpfr_div(r19862, r19847, r19861, MPFR_RNDN);
        mpfr_mul(r19863, r19848, r19862, MPFR_RNDN);
        mpfr_sqrt(r19864, r19863, MPFR_RNDN);
        mpfr_mul(r19865, r19845, r19864, MPFR_RNDN);
        ;
        mpfr_set_si(r19867, mpfr_cmp(r19842, r19866) <= 0, MPFR_RNDN);
        mpfr_add(r19868, r19846, r19842, MPFR_RNDN);
        mpfr_mul(r19869, r19848, r19868, MPFR_RNDN);
        mpfr_sqrt(r19870, r19869, MPFR_RNDN);
        mpfr_mul(r19871, r19845, r19870, MPFR_RNDN);
        ;
        mpfr_set_si(r19873, mpfr_cmp(r19842, r19872) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r19875, mpfr_cmp(r19842, r19874) <= 0, MPFR_RNDN);
        mpfr_add(r19876, r19842, r19842, MPFR_RNDN);
        mpfr_mul(r19877, r19848, r19876, MPFR_RNDN);
        mpfr_sqrt(r19878, r19877, MPFR_RNDN);
        mpfr_mul(r19879, r19845, r19878, MPFR_RNDN);
        ;
        mpfr_set_si(r19881, mpfr_cmp(r19842, r19880) <= 0, MPFR_RNDN);
        mpfr_mul(r19882, r19842, r19842, MPFR_RNDN);
        mpfr_add(r19883, r19882, r19847, MPFR_RNDN);
        mpfr_sqrt(r19884, r19883, MPFR_RNDN);
        mpfr_add(r19885, r19884, r19842, MPFR_RNDN);
        mpfr_mul(r19886, r19848, r19885, MPFR_RNDN);
        mpfr_sqrt(r19887, r19886, MPFR_RNDN);
        mpfr_log(r19888, r19887, MPFR_RNDN);
        mpfr_exp(r19889, r19888, MPFR_RNDN);
        mpfr_mul(r19890, r19845, r19889, MPFR_RNDN);
        if (mpfr_get_si(r19881, MPFR_RNDN)) { mpfr_set(r19891, r19890, MPFR_RNDN); } else { mpfr_set(r19891, r19879, MPFR_RNDN); };
        if (mpfr_get_si(r19875, MPFR_RNDN)) { mpfr_set(r19892, r19879, MPFR_RNDN); } else { mpfr_set(r19892, r19891, MPFR_RNDN); };
        if (mpfr_get_si(r19873, MPFR_RNDN)) { mpfr_set(r19893, r19865, MPFR_RNDN); } else { mpfr_set(r19893, r19892, MPFR_RNDN); };
        if (mpfr_get_si(r19867, MPFR_RNDN)) { mpfr_set(r19894, r19871, MPFR_RNDN); } else { mpfr_set(r19894, r19893, MPFR_RNDN); };
        if (mpfr_get_si(r19857, MPFR_RNDN)) { mpfr_set(r19895, r19865, MPFR_RNDN); } else { mpfr_set(r19895, r19894, MPFR_RNDN); };
        if (mpfr_get_si(r19844, MPFR_RNDN)) { mpfr_set(r19896, r19855, MPFR_RNDN); } else { mpfr_set(r19896, r19895, MPFR_RNDN); };
        return mpfr_get_d(r19896, MPFR_RNDN);
}

static mpfr_t 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, r19942, r19943, r19944, r19945, r19946, r19947, r19948, r19949, r19950, r19951;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r19897);
        mpfr_init_set_str(r19898, "-6.203254496817905e+35", 10, MPFR_RNDN);
        mpfr_init(r19899);
        mpfr_init_set_str(r19900, "0.5", 10, MPFR_RNDN);
        mpfr_init(r19901);
        mpfr_init(r19902);
        mpfr_init_set_str(r19903, "2.0", 10, MPFR_RNDN);
        mpfr_init(r19904);
        mpfr_init(r19905);
        mpfr_init(r19906);
        mpfr_init(r19907);
        mpfr_init(r19908);
        mpfr_init(r19909);
        mpfr_init(r19910);
        mpfr_init_set_str(r19911, "-1.5608708420993077e-235", 10, MPFR_RNDN);
        mpfr_init(r19912);
        mpfr_init(r19913);
        mpfr_init(r19914);
        mpfr_init(r19915);
        mpfr_init(r19916);
        mpfr_init(r19917);
        mpfr_init(r19918);
        mpfr_init(r19919);
        mpfr_init(r19920);
        mpfr_init_set_str(r19921, "-2.3665634646026902e-293", 10, MPFR_RNDN);
        mpfr_init(r19922);
        mpfr_init(r19923);
        mpfr_init(r19924);
        mpfr_init(r19925);
        mpfr_init(r19926);
        mpfr_init_set_str(r19927, "1.245134237263001e-160", 10, MPFR_RNDN);
        mpfr_init(r19928);
        mpfr_init_set_str(r19929, "1.9998665483824554e-138", 10, MPFR_RNDN);
        mpfr_init(r19930);
        mpfr_init(r19931);
        mpfr_init(r19932);
        mpfr_init(r19933);
        mpfr_init(r19934);
        mpfr_init_set_str(r19935, "2.56976209479494e+109", 10, MPFR_RNDN);
        mpfr_init(r19936);
        mpfr_init(r19937);
        mpfr_init(r19938);
        mpfr_init(r19939);
        mpfr_init(r19940);
        mpfr_init(r19941);
        mpfr_init(r19942);
        mpfr_init(r19943);
        mpfr_init(r19944);
        mpfr_init(r19945);
        mpfr_init(r19946);
        mpfr_init(r19947);
        mpfr_init(r19948);
        mpfr_init(r19949);
        mpfr_init(r19950);
        mpfr_init(r19951);
}

double f_dm(double re, double im) {
        mpfr_set_d(r19897, re, MPFR_RNDN);
        ;
        mpfr_set_si(r19899, mpfr_cmp(r19897, r19898) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r19901, im, MPFR_RNDN);
        mpfr_mul(r19902, r19901, r19901, MPFR_RNDN);
        ;
        mpfr_mul(r19904, r19902, r19903, MPFR_RNDN);
        mpfr_sqrt(r19905, r19904, MPFR_RNDN);
        mpfr_mul(r19906, r19900, r19905, MPFR_RNDN);
        mpfr_neg(r19907, r19897, MPFR_RNDN);
        mpfr_sub(r19908, r19907, r19897, MPFR_RNDN);
        mpfr_sqrt(r19909, r19908, MPFR_RNDN);
        mpfr_div(r19910, r19906, r19909, MPFR_RNDN);
        ;
        mpfr_set_si(r19912, mpfr_cmp(r19897, r19911) <= 0, MPFR_RNDN);
        mpfr_sqr(r19913, r19897, MPFR_RNDN);
        mpfr_add(r19914, r19913, r19902, MPFR_RNDN);
        mpfr_sqrt(r19915, r19914, MPFR_RNDN);
        mpfr_sub(r19916, r19915, r19897, MPFR_RNDN);
        mpfr_div(r19917, r19902, r19916, MPFR_RNDN);
        mpfr_mul(r19918, r19903, r19917, MPFR_RNDN);
        mpfr_sqrt(r19919, r19918, MPFR_RNDN);
        mpfr_mul(r19920, r19900, r19919, MPFR_RNDN);
        ;
        mpfr_set_si(r19922, mpfr_cmp(r19897, r19921) <= 0, MPFR_RNDN);
        mpfr_add(r19923, r19901, r19897, MPFR_RNDN);
        mpfr_mul(r19924, r19903, r19923, MPFR_RNDN);
        mpfr_sqrt(r19925, r19924, MPFR_RNDN);
        mpfr_mul(r19926, r19900, r19925, MPFR_RNDN);
        ;
        mpfr_set_si(r19928, mpfr_cmp(r19897, r19927) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r19930, mpfr_cmp(r19897, r19929) <= 0, MPFR_RNDN);
        mpfr_add(r19931, r19897, r19897, MPFR_RNDN);
        mpfr_mul(r19932, r19903, r19931, MPFR_RNDN);
        mpfr_sqrt(r19933, r19932, MPFR_RNDN);
        mpfr_mul(r19934, r19900, r19933, MPFR_RNDN);
        ;
        mpfr_set_si(r19936, mpfr_cmp(r19897, r19935) <= 0, MPFR_RNDN);
        mpfr_mul(r19937, r19897, r19897, MPFR_RNDN);
        mpfr_add(r19938, r19937, r19902, MPFR_RNDN);
        mpfr_sqrt(r19939, r19938, MPFR_RNDN);
        mpfr_add(r19940, r19939, r19897, MPFR_RNDN);
        mpfr_mul(r19941, r19903, r19940, MPFR_RNDN);
        mpfr_sqrt(r19942, r19941, MPFR_RNDN);
        mpfr_log(r19943, r19942, MPFR_RNDN);
        mpfr_exp(r19944, r19943, MPFR_RNDN);
        mpfr_mul(r19945, r19900, r19944, MPFR_RNDN);
        if (mpfr_get_si(r19936, MPFR_RNDN)) { mpfr_set(r19946, r19945, MPFR_RNDN); } else { mpfr_set(r19946, r19934, MPFR_RNDN); };
        if (mpfr_get_si(r19930, MPFR_RNDN)) { mpfr_set(r19947, r19934, MPFR_RNDN); } else { mpfr_set(r19947, r19946, MPFR_RNDN); };
        if (mpfr_get_si(r19928, MPFR_RNDN)) { mpfr_set(r19948, r19920, MPFR_RNDN); } else { mpfr_set(r19948, r19947, MPFR_RNDN); };
        if (mpfr_get_si(r19922, MPFR_RNDN)) { mpfr_set(r19949, r19926, MPFR_RNDN); } else { mpfr_set(r19949, r19948, MPFR_RNDN); };
        if (mpfr_get_si(r19912, MPFR_RNDN)) { mpfr_set(r19950, r19920, MPFR_RNDN); } else { mpfr_set(r19950, r19949, MPFR_RNDN); };
        if (mpfr_get_si(r19899, MPFR_RNDN)) { mpfr_set(r19951, r19910, MPFR_RNDN); } else { mpfr_set(r19951, r19950, MPFR_RNDN); };
        return mpfr_get_d(r19951, MPFR_RNDN);
}

