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

char *name = "jeff quadratic root 1";

double f_if(float a, float b, float c) {
        float r8335 = b;
        float r8336 = 0;
        bool r8337 = r8335 >= r8336;
        float r8338 = -r8335;
        float r8339 = r8335 * r8335;
        float r8340 = 4;
        float r8341 = a;
        float r8342 = r8340 * r8341;
        float r8343 = c;
        float r8344 = r8342 * r8343;
        float r8345 = r8339 - r8344;
        float r8346 = sqrt(r8345);
        float r8347 = r8338 - r8346;
        float r8348 = 2;
        float r8349 = r8348 * r8341;
        float r8350 = r8347 / r8349;
        float r8351 = r8348 * r8343;
        float r8352 = r8338 + r8346;
        float r8353 = r8351 / r8352;
        float r8354 = r8337 ? r8350 : r8353;
        return r8354;
}

double f_id(double a, double b, double c) {
        double r8355 = b;
        double r8356 = 0;
        bool r8357 = r8355 >= r8356;
        double r8358 = -r8355;
        double r8359 = r8355 * r8355;
        double r8360 = 4;
        double r8361 = a;
        double r8362 = r8360 * r8361;
        double r8363 = c;
        double r8364 = r8362 * r8363;
        double r8365 = r8359 - r8364;
        double r8366 = sqrt(r8365);
        double r8367 = r8358 - r8366;
        double r8368 = 2;
        double r8369 = r8368 * r8361;
        double r8370 = r8367 / r8369;
        double r8371 = r8368 * r8363;
        double r8372 = r8358 + r8366;
        double r8373 = r8371 / r8372;
        double r8374 = r8357 ? r8370 : r8373;
        return r8374;
}


double f_of(float a, float b, float c) {
        float r8375 = b;
        float r8376 = 0;
        bool r8377 = r8375 >= r8376;
        float r8378 = -r8375;
        float r8379 = 4;
        float r8380 = a;
        float r8381 = r8379 * r8380;
        float r8382 = c;
        float r8383 = -r8382;
        float r8384 = r8375 * r8375;
        float r8385 = fma(r8381, r8383, r8384);
        float r8386 = sqrt(r8385);
        float r8387 = r8378 - r8386;
        float r8388 = 2;
        float r8389 = r8380 * r8388;
        float r8390 = r8387 / r8389;
        float r8391 = r8388 / r8376;
        float r8392 = r8377 ? r8390 : r8391;
        float r8393 = -7.330327773549733e+302;
        bool r8394 = r8392 <= r8393;
        float r8395 = r8378 - r8375;
        float r8396 = r8388 * r8380;
        float r8397 = r8395 / r8396;
        float r8398 = r8388 * r8382;
        float r8399 = r8386 - r8375;
        float r8400 = r8398 / r8399;
        float r8401 = r8377 ? r8397 : r8400;
        float r8402 = 1.397843973592205e+217;
        bool r8403 = r8392 <= r8402;
        float r8404 = r8387 / r8396;
        float r8405 = sqrt(r8386);
        float r8406 = r8405 * r8405;
        float r8407 = r8406 - r8375;
        float r8408 = r8398 / r8407;
        float r8409 = r8377 ? r8404 : r8408;
        float r8410 = r8403 ? r8409 : r8401;
        float r8411 = r8394 ? r8401 : r8410;
        return r8411;
}

double f_od(double a, double b, double c) {
        double r8412 = b;
        double r8413 = 0;
        bool r8414 = r8412 >= r8413;
        double r8415 = -r8412;
        double r8416 = 4;
        double r8417 = a;
        double r8418 = r8416 * r8417;
        double r8419 = c;
        double r8420 = -r8419;
        double r8421 = r8412 * r8412;
        double r8422 = fma(r8418, r8420, r8421);
        double r8423 = sqrt(r8422);
        double r8424 = r8415 - r8423;
        double r8425 = 2;
        double r8426 = r8417 * r8425;
        double r8427 = r8424 / r8426;
        double r8428 = r8425 / r8413;
        double r8429 = r8414 ? r8427 : r8428;
        double r8430 = -7.330327773549733e+302;
        bool r8431 = r8429 <= r8430;
        double r8432 = r8415 - r8412;
        double r8433 = r8425 * r8417;
        double r8434 = r8432 / r8433;
        double r8435 = r8425 * r8419;
        double r8436 = r8423 - r8412;
        double r8437 = r8435 / r8436;
        double r8438 = r8414 ? r8434 : r8437;
        double r8439 = 1.397843973592205e+217;
        bool r8440 = r8429 <= r8439;
        double r8441 = r8424 / r8433;
        double r8442 = sqrt(r8423);
        double r8443 = r8442 * r8442;
        double r8444 = r8443 - r8412;
        double r8445 = r8435 / r8444;
        double r8446 = r8414 ? r8441 : r8445;
        double r8447 = r8440 ? r8446 : r8438;
        double r8448 = r8431 ? r8438 : r8447;
        return r8448;
}

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 r8449, r8450, r8451, r8452, r8453, r8454, r8455, r8456, r8457, r8458, r8459, r8460, r8461, r8462, r8463, r8464, r8465, r8466, r8467, r8468;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8449);
        mpfr_init_set_str(r8450, "0", 10, MPFR_RNDN);
        mpfr_init(r8451);
        mpfr_init(r8452);
        mpfr_init(r8453);
        mpfr_init_set_str(r8454, "4", 10, MPFR_RNDN);
        mpfr_init(r8455);
        mpfr_init(r8456);
        mpfr_init(r8457);
        mpfr_init(r8458);
        mpfr_init(r8459);
        mpfr_init(r8460);
        mpfr_init(r8461);
        mpfr_init_set_str(r8462, "2", 10, MPFR_RNDN);
        mpfr_init(r8463);
        mpfr_init(r8464);
        mpfr_init(r8465);
        mpfr_init(r8466);
        mpfr_init(r8467);
        mpfr_init(r8468);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r8449, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8451, mpfr_cmp(r8449, r8450) >= 0, MPFR_RNDN);
        mpfr_neg(r8452, r8449, MPFR_RNDN);
        mpfr_mul(r8453, r8449, r8449, MPFR_RNDN);
        ;
        mpfr_set_d(r8455, a, MPFR_RNDN);
        mpfr_mul(r8456, r8454, r8455, MPFR_RNDN);
        mpfr_set_d(r8457, c, MPFR_RNDN);
        mpfr_mul(r8458, r8456, r8457, MPFR_RNDN);
        mpfr_sub(r8459, r8453, r8458, MPFR_RNDN);
        mpfr_sqrt(r8460, r8459, MPFR_RNDN);
        mpfr_sub(r8461, r8452, r8460, MPFR_RNDN);
        ;
        mpfr_mul(r8463, r8462, r8455, MPFR_RNDN);
        mpfr_div(r8464, r8461, r8463, MPFR_RNDN);
        mpfr_mul(r8465, r8462, r8457, MPFR_RNDN);
        mpfr_add(r8466, r8452, r8460, MPFR_RNDN);
        mpfr_div(r8467, r8465, r8466, MPFR_RNDN);
        if (mpfr_get_si(r8451, MPFR_RNDN)) { mpfr_set(r8468, r8464, MPFR_RNDN); } else { mpfr_set(r8468, r8467, MPFR_RNDN); };
        return mpfr_get_d(r8468, MPFR_RNDN);
}

static mpfr_t r8469, r8470, r8471, r8472, r8473, r8474, r8475, r8476, r8477, r8478, r8479, r8480, r8481, r8482, r8483, r8484, r8485, r8486, r8487, r8488, r8489, r8490, r8491, r8492, r8493, r8494, r8495, r8496, r8497, r8498, r8499, r8500, r8501, r8502, r8503, r8504, r8505;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8469);
        mpfr_init_set_str(r8470, "0", 10, MPFR_RNDN);
        mpfr_init(r8471);
        mpfr_init(r8472);
        mpfr_init_set_str(r8473, "4", 10, MPFR_RNDN);
        mpfr_init(r8474);
        mpfr_init(r8475);
        mpfr_init(r8476);
        mpfr_init(r8477);
        mpfr_init(r8478);
        mpfr_init(r8479);
        mpfr_init(r8480);
        mpfr_init(r8481);
        mpfr_init_set_str(r8482, "2", 10, MPFR_RNDN);
        mpfr_init(r8483);
        mpfr_init(r8484);
        mpfr_init(r8485);
        mpfr_init(r8486);
        mpfr_init_set_str(r8487, "-7.330327773549733e+302", 10, MPFR_RNDN);
        mpfr_init(r8488);
        mpfr_init(r8489);
        mpfr_init(r8490);
        mpfr_init(r8491);
        mpfr_init(r8492);
        mpfr_init(r8493);
        mpfr_init(r8494);
        mpfr_init(r8495);
        mpfr_init_set_str(r8496, "1.397843973592205e+217", 10, MPFR_RNDN);
        mpfr_init(r8497);
        mpfr_init(r8498);
        mpfr_init(r8499);
        mpfr_init(r8500);
        mpfr_init(r8501);
        mpfr_init(r8502);
        mpfr_init(r8503);
        mpfr_init(r8504);
        mpfr_init(r8505);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r8469, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8471, mpfr_cmp(r8469, r8470) >= 0, MPFR_RNDN);
        mpfr_neg(r8472, r8469, MPFR_RNDN);
        ;
        mpfr_set_d(r8474, a, MPFR_RNDN);
        mpfr_mul(r8475, r8473, r8474, MPFR_RNDN);
        mpfr_set_d(r8476, c, MPFR_RNDN);
        mpfr_neg(r8477, r8476, MPFR_RNDN);
        mpfr_mul(r8478, r8469, r8469, MPFR_RNDN);
        mpfr_fma(r8479, r8475, r8477, r8478, MPFR_RNDN);
        mpfr_sqrt(r8480, r8479, MPFR_RNDN);
        mpfr_sub(r8481, r8472, r8480, MPFR_RNDN);
        ;
        mpfr_mul(r8483, r8474, r8482, MPFR_RNDN);
        mpfr_div(r8484, r8481, r8483, MPFR_RNDN);
        mpfr_div(r8485, r8482, r8470, MPFR_RNDN);
        if (mpfr_get_si(r8471, MPFR_RNDN)) { mpfr_set(r8486, r8484, MPFR_RNDN); } else { mpfr_set(r8486, r8485, MPFR_RNDN); };
        ;
        mpfr_set_si(r8488, mpfr_cmp(r8486, r8487) <= 0, MPFR_RNDN);
        mpfr_sub(r8489, r8472, r8469, MPFR_RNDN);
        mpfr_mul(r8490, r8482, r8474, MPFR_RNDN);
        mpfr_div(r8491, r8489, r8490, MPFR_RNDN);
        mpfr_mul(r8492, r8482, r8476, MPFR_RNDN);
        mpfr_sub(r8493, r8480, r8469, MPFR_RNDN);
        mpfr_div(r8494, r8492, r8493, MPFR_RNDN);
        if (mpfr_get_si(r8471, MPFR_RNDN)) { mpfr_set(r8495, r8491, MPFR_RNDN); } else { mpfr_set(r8495, r8494, MPFR_RNDN); };
        ;
        mpfr_set_si(r8497, mpfr_cmp(r8486, r8496) <= 0, MPFR_RNDN);
        mpfr_div(r8498, r8481, r8490, MPFR_RNDN);
        mpfr_sqrt(r8499, r8480, MPFR_RNDN);
        mpfr_mul(r8500, r8499, r8499, MPFR_RNDN);
        mpfr_sub(r8501, r8500, r8469, MPFR_RNDN);
        mpfr_div(r8502, r8492, r8501, MPFR_RNDN);
        if (mpfr_get_si(r8471, MPFR_RNDN)) { mpfr_set(r8503, r8498, MPFR_RNDN); } else { mpfr_set(r8503, r8502, MPFR_RNDN); };
        if (mpfr_get_si(r8497, MPFR_RNDN)) { mpfr_set(r8504, r8503, MPFR_RNDN); } else { mpfr_set(r8504, r8495, MPFR_RNDN); };
        if (mpfr_get_si(r8488, MPFR_RNDN)) { mpfr_set(r8505, r8495, MPFR_RNDN); } else { mpfr_set(r8505, r8504, MPFR_RNDN); };
        return mpfr_get_d(r8505, MPFR_RNDN);
}

static mpfr_t r8506, r8507, r8508, r8509, r8510, r8511, r8512, r8513, r8514, r8515, r8516, r8517, r8518, r8519, r8520, r8521, r8522, r8523, r8524, r8525, r8526, r8527, r8528, r8529, r8530, r8531, r8532, r8533, r8534, r8535, r8536, r8537, r8538, r8539, r8540, r8541, r8542;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8506);
        mpfr_init_set_str(r8507, "0", 10, MPFR_RNDN);
        mpfr_init(r8508);
        mpfr_init(r8509);
        mpfr_init_set_str(r8510, "4", 10, MPFR_RNDN);
        mpfr_init(r8511);
        mpfr_init(r8512);
        mpfr_init(r8513);
        mpfr_init(r8514);
        mpfr_init(r8515);
        mpfr_init(r8516);
        mpfr_init(r8517);
        mpfr_init(r8518);
        mpfr_init_set_str(r8519, "2", 10, MPFR_RNDN);
        mpfr_init(r8520);
        mpfr_init(r8521);
        mpfr_init(r8522);
        mpfr_init(r8523);
        mpfr_init_set_str(r8524, "-7.330327773549733e+302", 10, MPFR_RNDN);
        mpfr_init(r8525);
        mpfr_init(r8526);
        mpfr_init(r8527);
        mpfr_init(r8528);
        mpfr_init(r8529);
        mpfr_init(r8530);
        mpfr_init(r8531);
        mpfr_init(r8532);
        mpfr_init_set_str(r8533, "1.397843973592205e+217", 10, MPFR_RNDN);
        mpfr_init(r8534);
        mpfr_init(r8535);
        mpfr_init(r8536);
        mpfr_init(r8537);
        mpfr_init(r8538);
        mpfr_init(r8539);
        mpfr_init(r8540);
        mpfr_init(r8541);
        mpfr_init(r8542);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r8506, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8508, mpfr_cmp(r8506, r8507) >= 0, MPFR_RNDN);
        mpfr_neg(r8509, r8506, MPFR_RNDN);
        ;
        mpfr_set_d(r8511, a, MPFR_RNDN);
        mpfr_mul(r8512, r8510, r8511, MPFR_RNDN);
        mpfr_set_d(r8513, c, MPFR_RNDN);
        mpfr_neg(r8514, r8513, MPFR_RNDN);
        mpfr_mul(r8515, r8506, r8506, MPFR_RNDN);
        mpfr_fma(r8516, r8512, r8514, r8515, MPFR_RNDN);
        mpfr_sqrt(r8517, r8516, MPFR_RNDN);
        mpfr_sub(r8518, r8509, r8517, MPFR_RNDN);
        ;
        mpfr_mul(r8520, r8511, r8519, MPFR_RNDN);
        mpfr_div(r8521, r8518, r8520, MPFR_RNDN);
        mpfr_div(r8522, r8519, r8507, MPFR_RNDN);
        if (mpfr_get_si(r8508, MPFR_RNDN)) { mpfr_set(r8523, r8521, MPFR_RNDN); } else { mpfr_set(r8523, r8522, MPFR_RNDN); };
        ;
        mpfr_set_si(r8525, mpfr_cmp(r8523, r8524) <= 0, MPFR_RNDN);
        mpfr_sub(r8526, r8509, r8506, MPFR_RNDN);
        mpfr_mul(r8527, r8519, r8511, MPFR_RNDN);
        mpfr_div(r8528, r8526, r8527, MPFR_RNDN);
        mpfr_mul(r8529, r8519, r8513, MPFR_RNDN);
        mpfr_sub(r8530, r8517, r8506, MPFR_RNDN);
        mpfr_div(r8531, r8529, r8530, MPFR_RNDN);
        if (mpfr_get_si(r8508, MPFR_RNDN)) { mpfr_set(r8532, r8528, MPFR_RNDN); } else { mpfr_set(r8532, r8531, MPFR_RNDN); };
        ;
        mpfr_set_si(r8534, mpfr_cmp(r8523, r8533) <= 0, MPFR_RNDN);
        mpfr_div(r8535, r8518, r8527, MPFR_RNDN);
        mpfr_sqrt(r8536, r8517, MPFR_RNDN);
        mpfr_mul(r8537, r8536, r8536, MPFR_RNDN);
        mpfr_sub(r8538, r8537, r8506, MPFR_RNDN);
        mpfr_div(r8539, r8529, r8538, MPFR_RNDN);
        if (mpfr_get_si(r8508, MPFR_RNDN)) { mpfr_set(r8540, r8535, MPFR_RNDN); } else { mpfr_set(r8540, r8539, MPFR_RNDN); };
        if (mpfr_get_si(r8534, MPFR_RNDN)) { mpfr_set(r8541, r8540, MPFR_RNDN); } else { mpfr_set(r8541, r8532, MPFR_RNDN); };
        if (mpfr_get_si(r8525, MPFR_RNDN)) { mpfr_set(r8542, r8532, MPFR_RNDN); } else { mpfr_set(r8542, r8541, MPFR_RNDN); };
        return mpfr_get_d(r8542, MPFR_RNDN);
}

