#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 r25786 = b;
        float r25787 = -r25786;
        float r25788 = r25786 * r25786;
        float r25789 = 4;
        float r25790 = a;
        float r25791 = r25789 * r25790;
        float r25792 = c;
        float r25793 = r25791 * r25792;
        float r25794 = r25788 - r25793;
        float r25795 = sqrt(r25794);
        float r25796 = r25787 + r25795;
        float r25797 = 2;
        float r25798 = r25797 * r25790;
        float r25799 = r25796 / r25798;
        return r25799;
}

double f_id(double a, double b, double c) {
        double r25800 = b;
        double r25801 = -r25800;
        double r25802 = r25800 * r25800;
        double r25803 = 4;
        double r25804 = a;
        double r25805 = r25803 * r25804;
        double r25806 = c;
        double r25807 = r25805 * r25806;
        double r25808 = r25802 - r25807;
        double r25809 = sqrt(r25808);
        double r25810 = r25801 + r25809;
        double r25811 = 2;
        double r25812 = r25811 * r25804;
        double r25813 = r25810 / r25812;
        return r25813;
}


double f_of(float a, float b, float c) {
        float r25814 = b;
        float r25815 = -r25814;
        float r25816 = -5.7583530328199956e-65;
        bool r25817 = r25815 <= r25816;
        float r25818 = c;
        float r25819 = -r25818;
        float r25820 = r25819 / r25814;
        float r25821 = 7.455938382452604e+91;
        bool r25822 = r25815 <= r25821;
        float r25823 = r25814 * r25814;
        float r25824 = a;
        float r25825 = 4;
        float r25826 = r25824 * r25825;
        float r25827 = r25826 * r25818;
        float r25828 = r25823 - r25827;
        float r25829 = sqrt(r25828);
        float r25830 = r25829 + r25815;
        float r25831 = 2;
        float r25832 = r25831 * r25824;
        float r25833 = r25830 / r25832;
        float r25834 = r25818 / r25814;
        float r25835 = r25814 + r25814;
        float r25836 = r25835 / r25832;
        float r25837 = r25834 - r25836;
        float r25838 = r25822 ? r25833 : r25837;
        float r25839 = r25817 ? r25820 : r25838;
        return r25839;
}

double f_od(double a, double b, double c) {
        double r25840 = b;
        double r25841 = -r25840;
        double r25842 = -5.7583530328199956e-65;
        bool r25843 = r25841 <= r25842;
        double r25844 = c;
        double r25845 = -r25844;
        double r25846 = r25845 / r25840;
        double r25847 = 7.455938382452604e+91;
        bool r25848 = r25841 <= r25847;
        double r25849 = r25840 * r25840;
        double r25850 = a;
        double r25851 = 4;
        double r25852 = r25850 * r25851;
        double r25853 = r25852 * r25844;
        double r25854 = r25849 - r25853;
        double r25855 = sqrt(r25854);
        double r25856 = r25855 + r25841;
        double r25857 = 2;
        double r25858 = r25857 * r25850;
        double r25859 = r25856 / r25858;
        double r25860 = r25844 / r25840;
        double r25861 = r25840 + r25840;
        double r25862 = r25861 / r25858;
        double r25863 = r25860 - r25862;
        double r25864 = r25848 ? r25859 : r25863;
        double r25865 = r25843 ? r25846 : r25864;
        return r25865;
}

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 r25866, r25867, r25868, r25869, r25870, r25871, r25872, r25873, r25874, r25875, r25876, r25877, r25878, r25879;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25866);
        mpfr_init(r25867);
        mpfr_init(r25868);
        mpfr_init_set_str(r25869, "4", 10, MPFR_RNDN);
        mpfr_init(r25870);
        mpfr_init(r25871);
        mpfr_init(r25872);
        mpfr_init(r25873);
        mpfr_init(r25874);
        mpfr_init(r25875);
        mpfr_init(r25876);
        mpfr_init_set_str(r25877, "2", 10, MPFR_RNDN);
        mpfr_init(r25878);
        mpfr_init(r25879);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r25866, b, MPFR_RNDN);
        mpfr_neg(r25867, r25866, MPFR_RNDN);
        mpfr_mul(r25868, r25866, r25866, MPFR_RNDN);
        ;
        mpfr_set_d(r25870, a, MPFR_RNDN);
        mpfr_mul(r25871, r25869, r25870, MPFR_RNDN);
        mpfr_set_d(r25872, c, MPFR_RNDN);
        mpfr_mul(r25873, r25871, r25872, MPFR_RNDN);
        mpfr_sub(r25874, r25868, r25873, MPFR_RNDN);
        mpfr_sqrt(r25875, r25874, MPFR_RNDN);
        mpfr_add(r25876, r25867, r25875, MPFR_RNDN);
        ;
        mpfr_mul(r25878, r25877, r25870, MPFR_RNDN);
        mpfr_div(r25879, r25876, r25878, MPFR_RNDN);
        return mpfr_get_d(r25879, MPFR_RNDN);
}

static mpfr_t r25880, r25881, r25882, r25883, r25884, r25885, r25886, r25887, r25888, r25889, r25890, r25891, r25892, r25893, r25894, r25895, r25896, r25897, r25898, r25899, r25900, r25901, r25902, r25903, r25904, r25905;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25880);
        mpfr_init(r25881);
        mpfr_init_set_str(r25882, "-5.7583530328199956e-65", 10, MPFR_RNDN);
        mpfr_init(r25883);
        mpfr_init(r25884);
        mpfr_init(r25885);
        mpfr_init(r25886);
        mpfr_init_set_str(r25887, "7.455938382452604e+91", 10, MPFR_RNDN);
        mpfr_init(r25888);
        mpfr_init(r25889);
        mpfr_init(r25890);
        mpfr_init_set_str(r25891, "4", 10, MPFR_RNDN);
        mpfr_init(r25892);
        mpfr_init(r25893);
        mpfr_init(r25894);
        mpfr_init(r25895);
        mpfr_init(r25896);
        mpfr_init_set_str(r25897, "2", 10, MPFR_RNDN);
        mpfr_init(r25898);
        mpfr_init(r25899);
        mpfr_init(r25900);
        mpfr_init(r25901);
        mpfr_init(r25902);
        mpfr_init(r25903);
        mpfr_init(r25904);
        mpfr_init(r25905);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r25880, b, MPFR_RNDN);
        mpfr_neg(r25881, r25880, MPFR_RNDN);
        ;
        mpfr_set_si(r25883, mpfr_cmp(r25881, r25882) <= 0, MPFR_RNDN);
        mpfr_set_d(r25884, c, MPFR_RNDN);
        mpfr_neg(r25885, r25884, MPFR_RNDN);
        mpfr_div(r25886, r25885, r25880, MPFR_RNDN);
        ;
        mpfr_set_si(r25888, mpfr_cmp(r25881, r25887) <= 0, MPFR_RNDN);
        mpfr_mul(r25889, r25880, r25880, MPFR_RNDN);
        mpfr_set_d(r25890, a, MPFR_RNDN);
        ;
        mpfr_mul(r25892, r25890, r25891, MPFR_RNDN);
        mpfr_mul(r25893, r25892, r25884, MPFR_RNDN);
        mpfr_sub(r25894, r25889, r25893, MPFR_RNDN);
        mpfr_sqrt(r25895, r25894, MPFR_RNDN);
        mpfr_add(r25896, r25895, r25881, MPFR_RNDN);
        ;
        mpfr_mul(r25898, r25897, r25890, MPFR_RNDN);
        mpfr_div(r25899, r25896, r25898, MPFR_RNDN);
        mpfr_div(r25900, r25884, r25880, MPFR_RNDN);
        mpfr_add(r25901, r25880, r25880, MPFR_RNDN);
        mpfr_div(r25902, r25901, r25898, MPFR_RNDN);
        mpfr_sub(r25903, r25900, r25902, MPFR_RNDN);
        if (mpfr_get_si(r25888, MPFR_RNDN)) { mpfr_set(r25904, r25899, MPFR_RNDN); } else { mpfr_set(r25904, r25903, MPFR_RNDN); };
        if (mpfr_get_si(r25883, MPFR_RNDN)) { mpfr_set(r25905, r25886, MPFR_RNDN); } else { mpfr_set(r25905, r25904, MPFR_RNDN); };
        return mpfr_get_d(r25905, MPFR_RNDN);
}

static mpfr_t r25906, r25907, r25908, r25909, r25910, r25911, r25912, r25913, r25914, r25915, r25916, r25917, r25918, r25919, r25920, r25921, r25922, r25923, r25924, r25925, r25926, r25927, r25928, r25929, r25930, r25931;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r25906);
        mpfr_init(r25907);
        mpfr_init_set_str(r25908, "-5.7583530328199956e-65", 10, MPFR_RNDN);
        mpfr_init(r25909);
        mpfr_init(r25910);
        mpfr_init(r25911);
        mpfr_init(r25912);
        mpfr_init_set_str(r25913, "7.455938382452604e+91", 10, MPFR_RNDN);
        mpfr_init(r25914);
        mpfr_init(r25915);
        mpfr_init(r25916);
        mpfr_init_set_str(r25917, "4", 10, MPFR_RNDN);
        mpfr_init(r25918);
        mpfr_init(r25919);
        mpfr_init(r25920);
        mpfr_init(r25921);
        mpfr_init(r25922);
        mpfr_init_set_str(r25923, "2", 10, MPFR_RNDN);
        mpfr_init(r25924);
        mpfr_init(r25925);
        mpfr_init(r25926);
        mpfr_init(r25927);
        mpfr_init(r25928);
        mpfr_init(r25929);
        mpfr_init(r25930);
        mpfr_init(r25931);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r25906, b, MPFR_RNDN);
        mpfr_neg(r25907, r25906, MPFR_RNDN);
        ;
        mpfr_set_si(r25909, mpfr_cmp(r25907, r25908) <= 0, MPFR_RNDN);
        mpfr_set_d(r25910, c, MPFR_RNDN);
        mpfr_neg(r25911, r25910, MPFR_RNDN);
        mpfr_div(r25912, r25911, r25906, MPFR_RNDN);
        ;
        mpfr_set_si(r25914, mpfr_cmp(r25907, r25913) <= 0, MPFR_RNDN);
        mpfr_mul(r25915, r25906, r25906, MPFR_RNDN);
        mpfr_set_d(r25916, a, MPFR_RNDN);
        ;
        mpfr_mul(r25918, r25916, r25917, MPFR_RNDN);
        mpfr_mul(r25919, r25918, r25910, MPFR_RNDN);
        mpfr_sub(r25920, r25915, r25919, MPFR_RNDN);
        mpfr_sqrt(r25921, r25920, MPFR_RNDN);
        mpfr_add(r25922, r25921, r25907, MPFR_RNDN);
        ;
        mpfr_mul(r25924, r25923, r25916, MPFR_RNDN);
        mpfr_div(r25925, r25922, r25924, MPFR_RNDN);
        mpfr_div(r25926, r25910, r25906, MPFR_RNDN);
        mpfr_add(r25927, r25906, r25906, MPFR_RNDN);
        mpfr_div(r25928, r25927, r25924, MPFR_RNDN);
        mpfr_sub(r25929, r25926, r25928, MPFR_RNDN);
        if (mpfr_get_si(r25914, MPFR_RNDN)) { mpfr_set(r25930, r25925, MPFR_RNDN); } else { mpfr_set(r25930, r25929, MPFR_RNDN); };
        if (mpfr_get_si(r25909, MPFR_RNDN)) { mpfr_set(r25931, r25912, MPFR_RNDN); } else { mpfr_set(r25931, r25930, MPFR_RNDN); };
        return mpfr_get_d(r25931, MPFR_RNDN);
}

