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

char *name = "The quadratic formula (r1)";

double f_if(float a, float b, float c) {
        float r25758 = b;
        float r25759 = -r25758;
        float r25760 = r25758 * r25758;
        float r25761 = 4;
        float r25762 = a;
        float r25763 = r25761 * r25762;
        float r25764 = c;
        float r25765 = r25763 * r25764;
        float r25766 = r25760 - r25765;
        float r25767 = sqrt(r25766);
        float r25768 = r25759 + r25767;
        float r25769 = 2;
        float r25770 = r25769 * r25762;
        float r25771 = r25768 / r25770;
        return r25771;
}

double f_id(double a, double b, double c) {
        double r25772 = b;
        double r25773 = -r25772;
        double r25774 = r25772 * r25772;
        double r25775 = 4;
        double r25776 = a;
        double r25777 = r25775 * r25776;
        double r25778 = c;
        double r25779 = r25777 * r25778;
        double r25780 = r25774 - r25779;
        double r25781 = sqrt(r25780);
        double r25782 = r25773 + r25781;
        double r25783 = 2;
        double r25784 = r25783 * r25776;
        double r25785 = r25782 / r25784;
        return r25785;
}


double f_of(float a, float b, float c) {
        float r25786 = b;
        float r25787 = -1.3026234282048264e+154;
        bool r25788 = r25786 <= r25787;
        float r25789 = c;
        float r25790 = r25789 / r25786;
        float r25791 = a;
        float r25792 = r25786 / r25791;
        float r25793 = r25790 - r25792;
        float r25794 = 1.890842606323641e-157;
        bool r25795 = r25786 <= r25794;
        float r25796 = -r25786;
        float r25797 = r25786 * r25786;
        float r25798 = 4;
        float r25799 = r25791 * r25798;
        float r25800 = r25799 * r25789;
        float r25801 = r25797 - r25800;
        float r25802 = sqrt(r25801);
        float r25803 = r25796 + r25802;
        float r25804 = 2;
        float r25805 = r25804 * r25791;
        float r25806 = r25803 / r25805;
        float r25807 = 3.3748231022183743e-25;
        bool r25808 = r25786 <= r25807;
        float r25809 = r25796 - r25802;
        float r25810 = r25800 / r25809;
        float r25811 = r25810 / r25805;
        float r25812 = -r25789;
        float r25813 = r25812 / r25786;
        float r25814 = r25808 ? r25811 : r25813;
        float r25815 = r25795 ? r25806 : r25814;
        float r25816 = r25788 ? r25793 : r25815;
        return r25816;
}

double f_od(double a, double b, double c) {
        double r25817 = b;
        double r25818 = -1.3026234282048264e+154;
        bool r25819 = r25817 <= r25818;
        double r25820 = c;
        double r25821 = r25820 / r25817;
        double r25822 = a;
        double r25823 = r25817 / r25822;
        double r25824 = r25821 - r25823;
        double r25825 = 1.890842606323641e-157;
        bool r25826 = r25817 <= r25825;
        double r25827 = -r25817;
        double r25828 = r25817 * r25817;
        double r25829 = 4;
        double r25830 = r25822 * r25829;
        double r25831 = r25830 * r25820;
        double r25832 = r25828 - r25831;
        double r25833 = sqrt(r25832);
        double r25834 = r25827 + r25833;
        double r25835 = 2;
        double r25836 = r25835 * r25822;
        double r25837 = r25834 / r25836;
        double r25838 = 3.3748231022183743e-25;
        bool r25839 = r25817 <= r25838;
        double r25840 = r25827 - r25833;
        double r25841 = r25831 / r25840;
        double r25842 = r25841 / r25836;
        double r25843 = -r25820;
        double r25844 = r25843 / r25817;
        double r25845 = r25839 ? r25842 : r25844;
        double r25846 = r25826 ? r25837 : r25845;
        double r25847 = r25819 ? r25824 : r25846;
        return r25847;
}

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 r25848, r25849, r25850, r25851, r25852, r25853, r25854, r25855, r25856, r25857, r25858, r25859, r25860, r25861;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25848);
        mpfr_init(r25849);
        mpfr_init(r25850);
        mpfr_init_set_str(r25851, "4", 10, MPFR_RNDN);
        mpfr_init(r25852);
        mpfr_init(r25853);
        mpfr_init(r25854);
        mpfr_init(r25855);
        mpfr_init(r25856);
        mpfr_init(r25857);
        mpfr_init(r25858);
        mpfr_init_set_str(r25859, "2", 10, MPFR_RNDN);
        mpfr_init(r25860);
        mpfr_init(r25861);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r25848, b, MPFR_RNDN);
        mpfr_neg(r25849, r25848, MPFR_RNDN);
        mpfr_mul(r25850, r25848, r25848, MPFR_RNDN);
        ;
        mpfr_set_d(r25852, a, MPFR_RNDN);
        mpfr_mul(r25853, r25851, r25852, MPFR_RNDN);
        mpfr_set_d(r25854, c, MPFR_RNDN);
        mpfr_mul(r25855, r25853, r25854, MPFR_RNDN);
        mpfr_sub(r25856, r25850, r25855, MPFR_RNDN);
        mpfr_sqrt(r25857, r25856, MPFR_RNDN);
        mpfr_add(r25858, r25849, r25857, MPFR_RNDN);
        ;
        mpfr_mul(r25860, r25859, r25852, MPFR_RNDN);
        mpfr_div(r25861, r25858, r25860, MPFR_RNDN);
        return mpfr_get_d(r25861, MPFR_RNDN);
}

static mpfr_t r25862, r25863, r25864, r25865, r25866, r25867, r25868, r25869, r25870, r25871, r25872, r25873, r25874, r25875, r25876, r25877, r25878, r25879, r25880, r25881, r25882, r25883, r25884, r25885, r25886, r25887, r25888, r25889, r25890, r25891, r25892;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25862);
        mpfr_init_set_str(r25863, "-1.3026234282048264e+154", 10, MPFR_RNDN);
        mpfr_init(r25864);
        mpfr_init(r25865);
        mpfr_init(r25866);
        mpfr_init(r25867);
        mpfr_init(r25868);
        mpfr_init(r25869);
        mpfr_init_set_str(r25870, "1.890842606323641e-157", 10, MPFR_RNDN);
        mpfr_init(r25871);
        mpfr_init(r25872);
        mpfr_init(r25873);
        mpfr_init_set_str(r25874, "4", 10, MPFR_RNDN);
        mpfr_init(r25875);
        mpfr_init(r25876);
        mpfr_init(r25877);
        mpfr_init(r25878);
        mpfr_init(r25879);
        mpfr_init_set_str(r25880, "2", 10, MPFR_RNDN);
        mpfr_init(r25881);
        mpfr_init(r25882);
        mpfr_init_set_str(r25883, "3.3748231022183743e-25", 10, MPFR_RNDN);
        mpfr_init(r25884);
        mpfr_init(r25885);
        mpfr_init(r25886);
        mpfr_init(r25887);
        mpfr_init(r25888);
        mpfr_init(r25889);
        mpfr_init(r25890);
        mpfr_init(r25891);
        mpfr_init(r25892);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r25862, b, MPFR_RNDN);
        ;
        mpfr_set_si(r25864, mpfr_cmp(r25862, r25863) <= 0, MPFR_RNDN);
        mpfr_set_d(r25865, c, MPFR_RNDN);
        mpfr_div(r25866, r25865, r25862, MPFR_RNDN);
        mpfr_set_d(r25867, a, MPFR_RNDN);
        mpfr_div(r25868, r25862, r25867, MPFR_RNDN);
        mpfr_sub(r25869, r25866, r25868, MPFR_RNDN);
        ;
        mpfr_set_si(r25871, mpfr_cmp(r25862, r25870) <= 0, MPFR_RNDN);
        mpfr_neg(r25872, r25862, MPFR_RNDN);
        mpfr_mul(r25873, r25862, r25862, MPFR_RNDN);
        ;
        mpfr_mul(r25875, r25867, r25874, MPFR_RNDN);
        mpfr_mul(r25876, r25875, r25865, MPFR_RNDN);
        mpfr_sub(r25877, r25873, r25876, MPFR_RNDN);
        mpfr_sqrt(r25878, r25877, MPFR_RNDN);
        mpfr_add(r25879, r25872, r25878, MPFR_RNDN);
        ;
        mpfr_mul(r25881, r25880, r25867, MPFR_RNDN);
        mpfr_div(r25882, r25879, r25881, MPFR_RNDN);
        ;
        mpfr_set_si(r25884, mpfr_cmp(r25862, r25883) <= 0, MPFR_RNDN);
        mpfr_sub(r25885, r25872, r25878, MPFR_RNDN);
        mpfr_div(r25886, r25876, r25885, MPFR_RNDN);
        mpfr_div(r25887, r25886, r25881, MPFR_RNDN);
        mpfr_neg(r25888, r25865, MPFR_RNDN);
        mpfr_div(r25889, r25888, r25862, MPFR_RNDN);
        if (mpfr_get_si(r25884, MPFR_RNDN)) { mpfr_set(r25890, r25887, MPFR_RNDN); } else { mpfr_set(r25890, r25889, MPFR_RNDN); };
        if (mpfr_get_si(r25871, MPFR_RNDN)) { mpfr_set(r25891, r25882, MPFR_RNDN); } else { mpfr_set(r25891, r25890, MPFR_RNDN); };
        if (mpfr_get_si(r25864, MPFR_RNDN)) { mpfr_set(r25892, r25869, MPFR_RNDN); } else { mpfr_set(r25892, r25891, MPFR_RNDN); };
        return mpfr_get_d(r25892, MPFR_RNDN);
}

static mpfr_t r25893, r25894, r25895, r25896, r25897, r25898, r25899, r25900, r25901, r25902, r25903, r25904, r25905, r25906, r25907, r25908, r25909, r25910, r25911, r25912, r25913, r25914, r25915, r25916, r25917, r25918, r25919, r25920, r25921, r25922, r25923;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25893);
        mpfr_init_set_str(r25894, "-1.3026234282048264e+154", 10, MPFR_RNDN);
        mpfr_init(r25895);
        mpfr_init(r25896);
        mpfr_init(r25897);
        mpfr_init(r25898);
        mpfr_init(r25899);
        mpfr_init(r25900);
        mpfr_init_set_str(r25901, "1.890842606323641e-157", 10, MPFR_RNDN);
        mpfr_init(r25902);
        mpfr_init(r25903);
        mpfr_init(r25904);
        mpfr_init_set_str(r25905, "4", 10, MPFR_RNDN);
        mpfr_init(r25906);
        mpfr_init(r25907);
        mpfr_init(r25908);
        mpfr_init(r25909);
        mpfr_init(r25910);
        mpfr_init_set_str(r25911, "2", 10, MPFR_RNDN);
        mpfr_init(r25912);
        mpfr_init(r25913);
        mpfr_init_set_str(r25914, "3.3748231022183743e-25", 10, MPFR_RNDN);
        mpfr_init(r25915);
        mpfr_init(r25916);
        mpfr_init(r25917);
        mpfr_init(r25918);
        mpfr_init(r25919);
        mpfr_init(r25920);
        mpfr_init(r25921);
        mpfr_init(r25922);
        mpfr_init(r25923);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r25893, b, MPFR_RNDN);
        ;
        mpfr_set_si(r25895, mpfr_cmp(r25893, r25894) <= 0, MPFR_RNDN);
        mpfr_set_d(r25896, c, MPFR_RNDN);
        mpfr_div(r25897, r25896, r25893, MPFR_RNDN);
        mpfr_set_d(r25898, a, MPFR_RNDN);
        mpfr_div(r25899, r25893, r25898, MPFR_RNDN);
        mpfr_sub(r25900, r25897, r25899, MPFR_RNDN);
        ;
        mpfr_set_si(r25902, mpfr_cmp(r25893, r25901) <= 0, MPFR_RNDN);
        mpfr_neg(r25903, r25893, MPFR_RNDN);
        mpfr_mul(r25904, r25893, r25893, MPFR_RNDN);
        ;
        mpfr_mul(r25906, r25898, r25905, MPFR_RNDN);
        mpfr_mul(r25907, r25906, r25896, MPFR_RNDN);
        mpfr_sub(r25908, r25904, r25907, MPFR_RNDN);
        mpfr_sqrt(r25909, r25908, MPFR_RNDN);
        mpfr_add(r25910, r25903, r25909, MPFR_RNDN);
        ;
        mpfr_mul(r25912, r25911, r25898, MPFR_RNDN);
        mpfr_div(r25913, r25910, r25912, MPFR_RNDN);
        ;
        mpfr_set_si(r25915, mpfr_cmp(r25893, r25914) <= 0, MPFR_RNDN);
        mpfr_sub(r25916, r25903, r25909, MPFR_RNDN);
        mpfr_div(r25917, r25907, r25916, MPFR_RNDN);
        mpfr_div(r25918, r25917, r25912, MPFR_RNDN);
        mpfr_neg(r25919, r25896, MPFR_RNDN);
        mpfr_div(r25920, r25919, r25893, MPFR_RNDN);
        if (mpfr_get_si(r25915, MPFR_RNDN)) { mpfr_set(r25921, r25918, MPFR_RNDN); } else { mpfr_set(r25921, r25920, MPFR_RNDN); };
        if (mpfr_get_si(r25902, MPFR_RNDN)) { mpfr_set(r25922, r25913, MPFR_RNDN); } else { mpfr_set(r25922, r25921, MPFR_RNDN); };
        if (mpfr_get_si(r25895, MPFR_RNDN)) { mpfr_set(r25923, r25900, MPFR_RNDN); } else { mpfr_set(r25923, r25922, MPFR_RNDN); };
        return mpfr_get_d(r25923, MPFR_RNDN);
}

