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

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

double f_if(float a, float b, float c) {
        float r16280706 = b;
        float r16280707 = -r16280706;
        float r16280708 = r16280706 * r16280706;
        float r16280709 = 4;
        float r16280710 = a;
        float r16280711 = c;
        float r16280712 = r16280710 * r16280711;
        float r16280713 = r16280709 * r16280712;
        float r16280714 = r16280708 - r16280713;
        float r16280715 = sqrt(r16280714);
        float r16280716 = r16280707 - r16280715;
        float r16280717 = 2;
        float r16280718 = r16280717 * r16280710;
        float r16280719 = r16280716 / r16280718;
        return r16280719;
}

double f_id(double a, double b, double c) {
        double r16280720 = b;
        double r16280721 = -r16280720;
        double r16280722 = r16280720 * r16280720;
        double r16280723 = 4;
        double r16280724 = a;
        double r16280725 = c;
        double r16280726 = r16280724 * r16280725;
        double r16280727 = r16280723 * r16280726;
        double r16280728 = r16280722 - r16280727;
        double r16280729 = sqrt(r16280728);
        double r16280730 = r16280721 - r16280729;
        double r16280731 = 2;
        double r16280732 = r16280731 * r16280724;
        double r16280733 = r16280730 / r16280732;
        return r16280733;
}


double f_of(float a, float b, float c) {
        float r16280734 = b;
        float r16280735 = -9.854202694263567e+42;
        bool r16280736 = r16280734 <= r16280735;
        float r16280737 = 4;
        float r16280738 = c;
        float r16280739 = r16280737 * r16280738;
        float r16280740 = -r16280734;
        float r16280741 = r16280740 - r16280734;
        float r16280742 = r16280738 + r16280738;
        float r16280743 = a;
        float r16280744 = r16280734 / r16280743;
        float r16280745 = r16280742 / r16280744;
        float r16280746 = r16280741 + r16280745;
        float r16280747 = r16280739 / r16280746;
        float r16280748 = 2;
        float r16280749 = r16280747 / r16280748;
        float r16280750 = -8.012318443752844e-94;
        bool r16280751 = r16280734 <= r16280750;
        float r16280752 = r16280738 * r16280743;
        float r16280753 = r16280752 * r16280737;
        float r16280754 = r16280734 * r16280734;
        float r16280755 = r16280743 * r16280738;
        float r16280756 = r16280737 * r16280755;
        float r16280757 = r16280754 - r16280756;
        float r16280758 = sqrt(r16280757);
        float r16280759 = r16280740 + r16280758;
        float r16280760 = r16280753 / r16280759;
        float r16280761 = r16280748 * r16280743;
        float r16280762 = r16280760 / r16280761;
        float r16280763 = 3.274275238011497e+87;
        bool r16280764 = r16280734 <= r16280763;
        float r16280765 = r16280740 / r16280761;
        float r16280766 = r16280758 / r16280761;
        float r16280767 = r16280765 - r16280766;
        float r16280768 = r16280738 / r16280734;
        float r16280769 = 1;
        float r16280770 = r16280768 / r16280769;
        float r16280771 = r16280770 - r16280744;
        float r16280772 = r16280764 ? r16280767 : r16280771;
        float r16280773 = r16280751 ? r16280762 : r16280772;
        float r16280774 = r16280736 ? r16280749 : r16280773;
        return r16280774;
}

double f_od(double a, double b, double c) {
        double r16280775 = b;
        double r16280776 = -9.854202694263567e+42;
        bool r16280777 = r16280775 <= r16280776;
        double r16280778 = 4;
        double r16280779 = c;
        double r16280780 = r16280778 * r16280779;
        double r16280781 = -r16280775;
        double r16280782 = r16280781 - r16280775;
        double r16280783 = r16280779 + r16280779;
        double r16280784 = a;
        double r16280785 = r16280775 / r16280784;
        double r16280786 = r16280783 / r16280785;
        double r16280787 = r16280782 + r16280786;
        double r16280788 = r16280780 / r16280787;
        double r16280789 = 2;
        double r16280790 = r16280788 / r16280789;
        double r16280791 = -8.012318443752844e-94;
        bool r16280792 = r16280775 <= r16280791;
        double r16280793 = r16280779 * r16280784;
        double r16280794 = r16280793 * r16280778;
        double r16280795 = r16280775 * r16280775;
        double r16280796 = r16280784 * r16280779;
        double r16280797 = r16280778 * r16280796;
        double r16280798 = r16280795 - r16280797;
        double r16280799 = sqrt(r16280798);
        double r16280800 = r16280781 + r16280799;
        double r16280801 = r16280794 / r16280800;
        double r16280802 = r16280789 * r16280784;
        double r16280803 = r16280801 / r16280802;
        double r16280804 = 3.274275238011497e+87;
        bool r16280805 = r16280775 <= r16280804;
        double r16280806 = r16280781 / r16280802;
        double r16280807 = r16280799 / r16280802;
        double r16280808 = r16280806 - r16280807;
        double r16280809 = r16280779 / r16280775;
        double r16280810 = 1;
        double r16280811 = r16280809 / r16280810;
        double r16280812 = r16280811 - r16280785;
        double r16280813 = r16280805 ? r16280808 : r16280812;
        double r16280814 = r16280792 ? r16280803 : r16280813;
        double r16280815 = r16280777 ? r16280790 : r16280814;
        return r16280815;
}

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 r16280816, r16280817, r16280818, r16280819, r16280820, r16280821, r16280822, r16280823, r16280824, r16280825, r16280826, r16280827, r16280828, r16280829;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3472);
        mpfr_init(r16280816);
        mpfr_init(r16280817);
        mpfr_init(r16280818);
        mpfr_init_set_str(r16280819, "4", 10, MPFR_RNDN);
        mpfr_init(r16280820);
        mpfr_init(r16280821);
        mpfr_init(r16280822);
        mpfr_init(r16280823);
        mpfr_init(r16280824);
        mpfr_init(r16280825);
        mpfr_init(r16280826);
        mpfr_init_set_str(r16280827, "2", 10, MPFR_RNDN);
        mpfr_init(r16280828);
        mpfr_init(r16280829);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r16280816, b, MPFR_RNDN);
        mpfr_neg(r16280817, r16280816, MPFR_RNDN);
        mpfr_mul(r16280818, r16280816, r16280816, MPFR_RNDN);
        ;
        mpfr_set_d(r16280820, a, MPFR_RNDN);
        mpfr_set_d(r16280821, c, MPFR_RNDN);
        mpfr_mul(r16280822, r16280820, r16280821, MPFR_RNDN);
        mpfr_mul(r16280823, r16280819, r16280822, MPFR_RNDN);
        mpfr_sub(r16280824, r16280818, r16280823, MPFR_RNDN);
        mpfr_sqrt(r16280825, r16280824, MPFR_RNDN);
        mpfr_sub(r16280826, r16280817, r16280825, MPFR_RNDN);
        ;
        mpfr_mul(r16280828, r16280827, r16280820, MPFR_RNDN);
        mpfr_div(r16280829, r16280826, r16280828, MPFR_RNDN);
        return mpfr_get_d(r16280829, MPFR_RNDN);
}

static mpfr_t r16280830, r16280831, r16280832, r16280833, r16280834, r16280835, r16280836, r16280837, r16280838, r16280839, r16280840, r16280841, r16280842, r16280843, r16280844, r16280845, r16280846, r16280847, r16280848, r16280849, r16280850, r16280851, r16280852, r16280853, r16280854, r16280855, r16280856, r16280857, r16280858, r16280859, r16280860, r16280861, r16280862, r16280863, r16280864, r16280865, r16280866, r16280867, r16280868, r16280869, r16280870;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r16280830);
        mpfr_init_set_str(r16280831, "-9.854202694263567e+42", 10, MPFR_RNDN);
        mpfr_init(r16280832);
        mpfr_init_set_str(r16280833, "4", 10, MPFR_RNDN);
        mpfr_init(r16280834);
        mpfr_init(r16280835);
        mpfr_init(r16280836);
        mpfr_init(r16280837);
        mpfr_init(r16280838);
        mpfr_init(r16280839);
        mpfr_init(r16280840);
        mpfr_init(r16280841);
        mpfr_init(r16280842);
        mpfr_init(r16280843);
        mpfr_init_set_str(r16280844, "2", 10, MPFR_RNDN);
        mpfr_init(r16280845);
        mpfr_init_set_str(r16280846, "-8.012318443752844e-94", 10, MPFR_RNDN);
        mpfr_init(r16280847);
        mpfr_init(r16280848);
        mpfr_init(r16280849);
        mpfr_init(r16280850);
        mpfr_init(r16280851);
        mpfr_init(r16280852);
        mpfr_init(r16280853);
        mpfr_init(r16280854);
        mpfr_init(r16280855);
        mpfr_init(r16280856);
        mpfr_init(r16280857);
        mpfr_init(r16280858);
        mpfr_init_set_str(r16280859, "3.274275238011497e+87", 10, MPFR_RNDN);
        mpfr_init(r16280860);
        mpfr_init(r16280861);
        mpfr_init(r16280862);
        mpfr_init(r16280863);
        mpfr_init(r16280864);
        mpfr_init_set_str(r16280865, "1", 10, MPFR_RNDN);
        mpfr_init(r16280866);
        mpfr_init(r16280867);
        mpfr_init(r16280868);
        mpfr_init(r16280869);
        mpfr_init(r16280870);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r16280830, b, MPFR_RNDN);
        ;
        mpfr_set_si(r16280832, mpfr_cmp(r16280830, r16280831) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r16280834, c, MPFR_RNDN);
        mpfr_mul(r16280835, r16280833, r16280834, MPFR_RNDN);
        mpfr_neg(r16280836, r16280830, MPFR_RNDN);
        mpfr_sub(r16280837, r16280836, r16280830, MPFR_RNDN);
        mpfr_add(r16280838, r16280834, r16280834, MPFR_RNDN);
        mpfr_set_d(r16280839, a, MPFR_RNDN);
        mpfr_div(r16280840, r16280830, r16280839, MPFR_RNDN);
        mpfr_div(r16280841, r16280838, r16280840, MPFR_RNDN);
        mpfr_add(r16280842, r16280837, r16280841, MPFR_RNDN);
        mpfr_div(r16280843, r16280835, r16280842, MPFR_RNDN);
        ;
        mpfr_div(r16280845, r16280843, r16280844, MPFR_RNDN);
        ;
        mpfr_set_si(r16280847, mpfr_cmp(r16280830, r16280846) <= 0, MPFR_RNDN);
        mpfr_mul(r16280848, r16280834, r16280839, MPFR_RNDN);
        mpfr_mul(r16280849, r16280848, r16280833, MPFR_RNDN);
        mpfr_mul(r16280850, r16280830, r16280830, MPFR_RNDN);
        mpfr_mul(r16280851, r16280839, r16280834, MPFR_RNDN);
        mpfr_mul(r16280852, r16280833, r16280851, MPFR_RNDN);
        mpfr_sub(r16280853, r16280850, r16280852, MPFR_RNDN);
        mpfr_sqrt(r16280854, r16280853, MPFR_RNDN);
        mpfr_add(r16280855, r16280836, r16280854, MPFR_RNDN);
        mpfr_div(r16280856, r16280849, r16280855, MPFR_RNDN);
        mpfr_mul(r16280857, r16280844, r16280839, MPFR_RNDN);
        mpfr_div(r16280858, r16280856, r16280857, MPFR_RNDN);
        ;
        mpfr_set_si(r16280860, mpfr_cmp(r16280830, r16280859) <= 0, MPFR_RNDN);
        mpfr_div(r16280861, r16280836, r16280857, MPFR_RNDN);
        mpfr_div(r16280862, r16280854, r16280857, MPFR_RNDN);
        mpfr_sub(r16280863, r16280861, r16280862, MPFR_RNDN);
        mpfr_div(r16280864, r16280834, r16280830, MPFR_RNDN);
        ;
        mpfr_div(r16280866, r16280864, r16280865, MPFR_RNDN);
        mpfr_sub(r16280867, r16280866, r16280840, MPFR_RNDN);
        if (mpfr_get_si(r16280860, MPFR_RNDN)) { mpfr_set(r16280868, r16280863, MPFR_RNDN); } else { mpfr_set(r16280868, r16280867, MPFR_RNDN); };
        if (mpfr_get_si(r16280847, MPFR_RNDN)) { mpfr_set(r16280869, r16280858, MPFR_RNDN); } else { mpfr_set(r16280869, r16280868, MPFR_RNDN); };
        if (mpfr_get_si(r16280832, MPFR_RNDN)) { mpfr_set(r16280870, r16280845, MPFR_RNDN); } else { mpfr_set(r16280870, r16280869, MPFR_RNDN); };
        return mpfr_get_d(r16280870, MPFR_RNDN);
}

static mpfr_t r16280871, r16280872, r16280873, r16280874, r16280875, r16280876, r16280877, r16280878, r16280879, r16280880, r16280881, r16280882, r16280883, r16280884, r16280885, r16280886, r16280887, r16280888, r16280889, r16280890, r16280891, r16280892, r16280893, r16280894, r16280895, r16280896, r16280897, r16280898, r16280899, r16280900, r16280901, r16280902, r16280903, r16280904, r16280905, r16280906, r16280907, r16280908, r16280909, r16280910, r16280911;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3472);
        mpfr_init(r16280871);
        mpfr_init_set_str(r16280872, "-9.854202694263567e+42", 10, MPFR_RNDN);
        mpfr_init(r16280873);
        mpfr_init_set_str(r16280874, "4", 10, MPFR_RNDN);
        mpfr_init(r16280875);
        mpfr_init(r16280876);
        mpfr_init(r16280877);
        mpfr_init(r16280878);
        mpfr_init(r16280879);
        mpfr_init(r16280880);
        mpfr_init(r16280881);
        mpfr_init(r16280882);
        mpfr_init(r16280883);
        mpfr_init(r16280884);
        mpfr_init_set_str(r16280885, "2", 10, MPFR_RNDN);
        mpfr_init(r16280886);
        mpfr_init_set_str(r16280887, "-8.012318443752844e-94", 10, MPFR_RNDN);
        mpfr_init(r16280888);
        mpfr_init(r16280889);
        mpfr_init(r16280890);
        mpfr_init(r16280891);
        mpfr_init(r16280892);
        mpfr_init(r16280893);
        mpfr_init(r16280894);
        mpfr_init(r16280895);
        mpfr_init(r16280896);
        mpfr_init(r16280897);
        mpfr_init(r16280898);
        mpfr_init(r16280899);
        mpfr_init_set_str(r16280900, "3.274275238011497e+87", 10, MPFR_RNDN);
        mpfr_init(r16280901);
        mpfr_init(r16280902);
        mpfr_init(r16280903);
        mpfr_init(r16280904);
        mpfr_init(r16280905);
        mpfr_init_set_str(r16280906, "1", 10, MPFR_RNDN);
        mpfr_init(r16280907);
        mpfr_init(r16280908);
        mpfr_init(r16280909);
        mpfr_init(r16280910);
        mpfr_init(r16280911);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r16280871, b, MPFR_RNDN);
        ;
        mpfr_set_si(r16280873, mpfr_cmp(r16280871, r16280872) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r16280875, c, MPFR_RNDN);
        mpfr_mul(r16280876, r16280874, r16280875, MPFR_RNDN);
        mpfr_neg(r16280877, r16280871, MPFR_RNDN);
        mpfr_sub(r16280878, r16280877, r16280871, MPFR_RNDN);
        mpfr_add(r16280879, r16280875, r16280875, MPFR_RNDN);
        mpfr_set_d(r16280880, a, MPFR_RNDN);
        mpfr_div(r16280881, r16280871, r16280880, MPFR_RNDN);
        mpfr_div(r16280882, r16280879, r16280881, MPFR_RNDN);
        mpfr_add(r16280883, r16280878, r16280882, MPFR_RNDN);
        mpfr_div(r16280884, r16280876, r16280883, MPFR_RNDN);
        ;
        mpfr_div(r16280886, r16280884, r16280885, MPFR_RNDN);
        ;
        mpfr_set_si(r16280888, mpfr_cmp(r16280871, r16280887) <= 0, MPFR_RNDN);
        mpfr_mul(r16280889, r16280875, r16280880, MPFR_RNDN);
        mpfr_mul(r16280890, r16280889, r16280874, MPFR_RNDN);
        mpfr_mul(r16280891, r16280871, r16280871, MPFR_RNDN);
        mpfr_mul(r16280892, r16280880, r16280875, MPFR_RNDN);
        mpfr_mul(r16280893, r16280874, r16280892, MPFR_RNDN);
        mpfr_sub(r16280894, r16280891, r16280893, MPFR_RNDN);
        mpfr_sqrt(r16280895, r16280894, MPFR_RNDN);
        mpfr_add(r16280896, r16280877, r16280895, MPFR_RNDN);
        mpfr_div(r16280897, r16280890, r16280896, MPFR_RNDN);
        mpfr_mul(r16280898, r16280885, r16280880, MPFR_RNDN);
        mpfr_div(r16280899, r16280897, r16280898, MPFR_RNDN);
        ;
        mpfr_set_si(r16280901, mpfr_cmp(r16280871, r16280900) <= 0, MPFR_RNDN);
        mpfr_div(r16280902, r16280877, r16280898, MPFR_RNDN);
        mpfr_div(r16280903, r16280895, r16280898, MPFR_RNDN);
        mpfr_sub(r16280904, r16280902, r16280903, MPFR_RNDN);
        mpfr_div(r16280905, r16280875, r16280871, MPFR_RNDN);
        ;
        mpfr_div(r16280907, r16280905, r16280906, MPFR_RNDN);
        mpfr_sub(r16280908, r16280907, r16280881, MPFR_RNDN);
        if (mpfr_get_si(r16280901, MPFR_RNDN)) { mpfr_set(r16280909, r16280904, MPFR_RNDN); } else { mpfr_set(r16280909, r16280908, MPFR_RNDN); };
        if (mpfr_get_si(r16280888, MPFR_RNDN)) { mpfr_set(r16280910, r16280899, MPFR_RNDN); } else { mpfr_set(r16280910, r16280909, MPFR_RNDN); };
        if (mpfr_get_si(r16280873, MPFR_RNDN)) { mpfr_set(r16280911, r16280886, MPFR_RNDN); } else { mpfr_set(r16280911, r16280910, MPFR_RNDN); };
        return mpfr_get_d(r16280911, MPFR_RNDN);
}

