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

char *name = "jeff quadratic root 2";

double f_if(float a, float b, float c) {
        float r8273 = b;
        float r8274 = 0;
        bool r8275 = r8273 >= r8274;
        float r8276 = 2;
        float r8277 = c;
        float r8278 = r8276 * r8277;
        float r8279 = -r8273;
        float r8280 = r8273 * r8273;
        float r8281 = 4;
        float r8282 = a;
        float r8283 = r8281 * r8282;
        float r8284 = r8283 * r8277;
        float r8285 = r8280 - r8284;
        float r8286 = sqrt(r8285);
        float r8287 = r8279 - r8286;
        float r8288 = r8278 / r8287;
        float r8289 = r8279 + r8286;
        float r8290 = r8276 * r8282;
        float r8291 = r8289 / r8290;
        float r8292 = r8275 ? r8288 : r8291;
        return r8292;
}

double f_id(double a, double b, double c) {
        double r8293 = b;
        double r8294 = 0;
        bool r8295 = r8293 >= r8294;
        double r8296 = 2;
        double r8297 = c;
        double r8298 = r8296 * r8297;
        double r8299 = -r8293;
        double r8300 = r8293 * r8293;
        double r8301 = 4;
        double r8302 = a;
        double r8303 = r8301 * r8302;
        double r8304 = r8303 * r8297;
        double r8305 = r8300 - r8304;
        double r8306 = sqrt(r8305);
        double r8307 = r8299 - r8306;
        double r8308 = r8298 / r8307;
        double r8309 = r8299 + r8306;
        double r8310 = r8296 * r8302;
        double r8311 = r8309 / r8310;
        double r8312 = r8295 ? r8308 : r8311;
        return r8312;
}


double f_of(float a, float b, float c) {
        float r8313 = b;
        float r8314 = 0;
        bool r8315 = r8313 >= r8314;
        float r8316 = c;
        float r8317 = 2;
        float r8318 = r8316 * r8317;
        float r8319 = 4;
        float r8320 = a;
        float r8321 = r8316 * r8320;
        float r8322 = r8319 * r8321;
        float r8323 = -r8316;
        float r8324 = r8319 * r8320;
        float r8325 = r8313 * r8313;
        float r8326 = fma(r8323, r8324, r8325);
        float r8327 = sqrt(r8326);
        float r8328 = r8327 - r8313;
        float r8329 = r8322 / r8328;
        float r8330 = r8318 / r8329;
        float r8331 = r8320 * r8319;
        float r8332 = fma(r8323, r8331, r8325);
        float r8333 = sqrt(r8332);
        float r8334 = r8333 - r8313;
        float r8335 = r8320 * r8317;
        float r8336 = r8334 / r8335;
        float r8337 = r8315 ? r8330 : r8336;
        float r8338 = -7.566023914518227e+270;
        bool r8339 = r8337 <= r8338;
        float r8340 = r8316 / r8313;
        float r8341 = -r8313;
        float r8342 = fma(r8340, r8320, r8341);
        float r8343 = r8316 / r8342;
        float r8344 = fma(r8324, r8323, r8325);
        float r8345 = sqrt(r8344);
        float r8346 = r8345 - r8313;
        float r8347 = r8346 / r8335;
        float r8348 = r8315 ? r8343 : r8347;
        float r8349 = 2.46327387833595e+258;
        bool r8350 = r8337 <= r8349;
        float r8351 = r8341 - r8333;
        float r8352 = r8318 / r8351;
        float r8353 = sqrt(r8334);
        float r8354 = r8353 * r8353;
        float r8355 = r8354 / r8335;
        float r8356 = r8315 ? r8352 : r8355;
        float r8357 = r8341 - r8313;
        float r8358 = r8318 / r8357;
        float r8359 = r8315 ? r8358 : r8336;
        float r8360 = r8350 ? r8356 : r8359;
        float r8361 = r8339 ? r8348 : r8360;
        return r8361;
}

double f_od(double a, double b, double c) {
        double r8362 = b;
        double r8363 = 0;
        bool r8364 = r8362 >= r8363;
        double r8365 = c;
        double r8366 = 2;
        double r8367 = r8365 * r8366;
        double r8368 = 4;
        double r8369 = a;
        double r8370 = r8365 * r8369;
        double r8371 = r8368 * r8370;
        double r8372 = -r8365;
        double r8373 = r8368 * r8369;
        double r8374 = r8362 * r8362;
        double r8375 = fma(r8372, r8373, r8374);
        double r8376 = sqrt(r8375);
        double r8377 = r8376 - r8362;
        double r8378 = r8371 / r8377;
        double r8379 = r8367 / r8378;
        double r8380 = r8369 * r8368;
        double r8381 = fma(r8372, r8380, r8374);
        double r8382 = sqrt(r8381);
        double r8383 = r8382 - r8362;
        double r8384 = r8369 * r8366;
        double r8385 = r8383 / r8384;
        double r8386 = r8364 ? r8379 : r8385;
        double r8387 = -7.566023914518227e+270;
        bool r8388 = r8386 <= r8387;
        double r8389 = r8365 / r8362;
        double r8390 = -r8362;
        double r8391 = fma(r8389, r8369, r8390);
        double r8392 = r8365 / r8391;
        double r8393 = fma(r8373, r8372, r8374);
        double r8394 = sqrt(r8393);
        double r8395 = r8394 - r8362;
        double r8396 = r8395 / r8384;
        double r8397 = r8364 ? r8392 : r8396;
        double r8398 = 2.46327387833595e+258;
        bool r8399 = r8386 <= r8398;
        double r8400 = r8390 - r8382;
        double r8401 = r8367 / r8400;
        double r8402 = sqrt(r8383);
        double r8403 = r8402 * r8402;
        double r8404 = r8403 / r8384;
        double r8405 = r8364 ? r8401 : r8404;
        double r8406 = r8390 - r8362;
        double r8407 = r8367 / r8406;
        double r8408 = r8364 ? r8407 : r8385;
        double r8409 = r8399 ? r8405 : r8408;
        double r8410 = r8388 ? r8397 : r8409;
        return r8410;
}

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 r8411, r8412, r8413, r8414, r8415, r8416, r8417, r8418, r8419, r8420, r8421, r8422, r8423, r8424, r8425, r8426, r8427, r8428, r8429, r8430;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8411);
        mpfr_init_set_str(r8412, "0", 10, MPFR_RNDN);
        mpfr_init(r8413);
        mpfr_init_set_str(r8414, "2", 10, MPFR_RNDN);
        mpfr_init(r8415);
        mpfr_init(r8416);
        mpfr_init(r8417);
        mpfr_init(r8418);
        mpfr_init_set_str(r8419, "4", 10, MPFR_RNDN);
        mpfr_init(r8420);
        mpfr_init(r8421);
        mpfr_init(r8422);
        mpfr_init(r8423);
        mpfr_init(r8424);
        mpfr_init(r8425);
        mpfr_init(r8426);
        mpfr_init(r8427);
        mpfr_init(r8428);
        mpfr_init(r8429);
        mpfr_init(r8430);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r8411, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8413, mpfr_cmp(r8411, r8412) >= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r8415, c, MPFR_RNDN);
        mpfr_mul(r8416, r8414, r8415, MPFR_RNDN);
        mpfr_neg(r8417, r8411, MPFR_RNDN);
        mpfr_mul(r8418, r8411, r8411, MPFR_RNDN);
        ;
        mpfr_set_d(r8420, a, MPFR_RNDN);
        mpfr_mul(r8421, r8419, r8420, MPFR_RNDN);
        mpfr_mul(r8422, r8421, r8415, MPFR_RNDN);
        mpfr_sub(r8423, r8418, r8422, MPFR_RNDN);
        mpfr_sqrt(r8424, r8423, MPFR_RNDN);
        mpfr_sub(r8425, r8417, r8424, MPFR_RNDN);
        mpfr_div(r8426, r8416, r8425, MPFR_RNDN);
        mpfr_add(r8427, r8417, r8424, MPFR_RNDN);
        mpfr_mul(r8428, r8414, r8420, MPFR_RNDN);
        mpfr_div(r8429, r8427, r8428, MPFR_RNDN);
        if (mpfr_get_si(r8413, MPFR_RNDN)) { mpfr_set(r8430, r8426, MPFR_RNDN); } else { mpfr_set(r8430, r8429, MPFR_RNDN); };
        return mpfr_get_d(r8430, MPFR_RNDN);
}

static mpfr_t r8431, r8432, r8433, r8434, r8435, r8436, r8437, r8438, r8439, r8440, r8441, r8442, r8443, r8444, r8445, r8446, r8447, r8448, r8449, r8450, r8451, r8452, r8453, r8454, r8455, r8456, r8457, r8458, r8459, r8460, r8461, r8462, r8463, r8464, r8465, r8466, r8467, r8468, r8469, r8470, r8471, r8472, r8473, r8474, r8475, r8476, r8477, r8478, r8479;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8431);
        mpfr_init_set_str(r8432, "0", 10, MPFR_RNDN);
        mpfr_init(r8433);
        mpfr_init(r8434);
        mpfr_init_set_str(r8435, "2", 10, MPFR_RNDN);
        mpfr_init(r8436);
        mpfr_init_set_str(r8437, "4", 10, MPFR_RNDN);
        mpfr_init(r8438);
        mpfr_init(r8439);
        mpfr_init(r8440);
        mpfr_init(r8441);
        mpfr_init(r8442);
        mpfr_init(r8443);
        mpfr_init(r8444);
        mpfr_init(r8445);
        mpfr_init(r8446);
        mpfr_init(r8447);
        mpfr_init(r8448);
        mpfr_init(r8449);
        mpfr_init(r8450);
        mpfr_init(r8451);
        mpfr_init(r8452);
        mpfr_init(r8453);
        mpfr_init(r8454);
        mpfr_init(r8455);
        mpfr_init_set_str(r8456, "-7.566023914518227e+270", 10, MPFR_RNDN);
        mpfr_init(r8457);
        mpfr_init(r8458);
        mpfr_init(r8459);
        mpfr_init(r8460);
        mpfr_init(r8461);
        mpfr_init(r8462);
        mpfr_init(r8463);
        mpfr_init(r8464);
        mpfr_init(r8465);
        mpfr_init(r8466);
        mpfr_init_set_str(r8467, "2.46327387833595e+258", 10, MPFR_RNDN);
        mpfr_init(r8468);
        mpfr_init(r8469);
        mpfr_init(r8470);
        mpfr_init(r8471);
        mpfr_init(r8472);
        mpfr_init(r8473);
        mpfr_init(r8474);
        mpfr_init(r8475);
        mpfr_init(r8476);
        mpfr_init(r8477);
        mpfr_init(r8478);
        mpfr_init(r8479);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r8431, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8433, mpfr_cmp(r8431, r8432) >= 0, MPFR_RNDN);
        mpfr_set_d(r8434, c, MPFR_RNDN);
        ;
        mpfr_mul(r8436, r8434, r8435, MPFR_RNDN);
        ;
        mpfr_set_d(r8438, a, MPFR_RNDN);
        mpfr_mul(r8439, r8434, r8438, MPFR_RNDN);
        mpfr_mul(r8440, r8437, r8439, MPFR_RNDN);
        mpfr_neg(r8441, r8434, MPFR_RNDN);
        mpfr_mul(r8442, r8437, r8438, MPFR_RNDN);
        mpfr_mul(r8443, r8431, r8431, MPFR_RNDN);
        mpfr_fma(r8444, r8441, r8442, r8443, MPFR_RNDN);
        mpfr_sqrt(r8445, r8444, MPFR_RNDN);
        mpfr_sub(r8446, r8445, r8431, MPFR_RNDN);
        mpfr_div(r8447, r8440, r8446, MPFR_RNDN);
        mpfr_div(r8448, r8436, r8447, MPFR_RNDN);
        mpfr_mul(r8449, r8438, r8437, MPFR_RNDN);
        mpfr_fma(r8450, r8441, r8449, r8443, MPFR_RNDN);
        mpfr_sqrt(r8451, r8450, MPFR_RNDN);
        mpfr_sub(r8452, r8451, r8431, MPFR_RNDN);
        mpfr_mul(r8453, r8438, r8435, MPFR_RNDN);
        mpfr_div(r8454, r8452, r8453, MPFR_RNDN);
        if (mpfr_get_si(r8433, MPFR_RNDN)) { mpfr_set(r8455, r8448, MPFR_RNDN); } else { mpfr_set(r8455, r8454, MPFR_RNDN); };
        ;
        mpfr_set_si(r8457, mpfr_cmp(r8455, r8456) <= 0, MPFR_RNDN);
        mpfr_div(r8458, r8434, r8431, MPFR_RNDN);
        mpfr_neg(r8459, r8431, MPFR_RNDN);
        mpfr_fma(r8460, r8458, r8438, r8459, MPFR_RNDN);
        mpfr_div(r8461, r8434, r8460, MPFR_RNDN);
        mpfr_fma(r8462, r8442, r8441, r8443, MPFR_RNDN);
        mpfr_sqrt(r8463, r8462, MPFR_RNDN);
        mpfr_sub(r8464, r8463, r8431, MPFR_RNDN);
        mpfr_div(r8465, r8464, r8453, MPFR_RNDN);
        if (mpfr_get_si(r8433, MPFR_RNDN)) { mpfr_set(r8466, r8461, MPFR_RNDN); } else { mpfr_set(r8466, r8465, MPFR_RNDN); };
        ;
        mpfr_set_si(r8468, mpfr_cmp(r8455, r8467) <= 0, MPFR_RNDN);
        mpfr_sub(r8469, r8459, r8451, MPFR_RNDN);
        mpfr_div(r8470, r8436, r8469, MPFR_RNDN);
        mpfr_sqrt(r8471, r8452, MPFR_RNDN);
        mpfr_mul(r8472, r8471, r8471, MPFR_RNDN);
        mpfr_div(r8473, r8472, r8453, MPFR_RNDN);
        if (mpfr_get_si(r8433, MPFR_RNDN)) { mpfr_set(r8474, r8470, MPFR_RNDN); } else { mpfr_set(r8474, r8473, MPFR_RNDN); };
        mpfr_sub(r8475, r8459, r8431, MPFR_RNDN);
        mpfr_div(r8476, r8436, r8475, MPFR_RNDN);
        if (mpfr_get_si(r8433, MPFR_RNDN)) { mpfr_set(r8477, r8476, MPFR_RNDN); } else { mpfr_set(r8477, r8454, MPFR_RNDN); };
        if (mpfr_get_si(r8468, MPFR_RNDN)) { mpfr_set(r8478, r8474, MPFR_RNDN); } else { mpfr_set(r8478, r8477, MPFR_RNDN); };
        if (mpfr_get_si(r8457, MPFR_RNDN)) { mpfr_set(r8479, r8466, MPFR_RNDN); } else { mpfr_set(r8479, r8478, MPFR_RNDN); };
        return mpfr_get_d(r8479, MPFR_RNDN);
}

static mpfr_t 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, r8506, r8507, r8508, r8509, r8510, r8511, r8512, r8513, r8514, r8515, r8516, r8517, r8518, r8519, r8520, r8521, r8522, r8523, r8524, r8525, r8526, r8527, r8528;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r8480);
        mpfr_init_set_str(r8481, "0", 10, MPFR_RNDN);
        mpfr_init(r8482);
        mpfr_init(r8483);
        mpfr_init_set_str(r8484, "2", 10, MPFR_RNDN);
        mpfr_init(r8485);
        mpfr_init_set_str(r8486, "4", 10, MPFR_RNDN);
        mpfr_init(r8487);
        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(r8496);
        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_set_str(r8505, "-7.566023914518227e+270", 10, MPFR_RNDN);
        mpfr_init(r8506);
        mpfr_init(r8507);
        mpfr_init(r8508);
        mpfr_init(r8509);
        mpfr_init(r8510);
        mpfr_init(r8511);
        mpfr_init(r8512);
        mpfr_init(r8513);
        mpfr_init(r8514);
        mpfr_init(r8515);
        mpfr_init_set_str(r8516, "2.46327387833595e+258", 10, MPFR_RNDN);
        mpfr_init(r8517);
        mpfr_init(r8518);
        mpfr_init(r8519);
        mpfr_init(r8520);
        mpfr_init(r8521);
        mpfr_init(r8522);
        mpfr_init(r8523);
        mpfr_init(r8524);
        mpfr_init(r8525);
        mpfr_init(r8526);
        mpfr_init(r8527);
        mpfr_init(r8528);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r8480, b, MPFR_RNDN);
        ;
        mpfr_set_si(r8482, mpfr_cmp(r8480, r8481) >= 0, MPFR_RNDN);
        mpfr_set_d(r8483, c, MPFR_RNDN);
        ;
        mpfr_mul(r8485, r8483, r8484, MPFR_RNDN);
        ;
        mpfr_set_d(r8487, a, MPFR_RNDN);
        mpfr_mul(r8488, r8483, r8487, MPFR_RNDN);
        mpfr_mul(r8489, r8486, r8488, MPFR_RNDN);
        mpfr_neg(r8490, r8483, MPFR_RNDN);
        mpfr_mul(r8491, r8486, r8487, MPFR_RNDN);
        mpfr_mul(r8492, r8480, r8480, MPFR_RNDN);
        mpfr_fma(r8493, r8490, r8491, r8492, MPFR_RNDN);
        mpfr_sqrt(r8494, r8493, MPFR_RNDN);
        mpfr_sub(r8495, r8494, r8480, MPFR_RNDN);
        mpfr_div(r8496, r8489, r8495, MPFR_RNDN);
        mpfr_div(r8497, r8485, r8496, MPFR_RNDN);
        mpfr_mul(r8498, r8487, r8486, MPFR_RNDN);
        mpfr_fma(r8499, r8490, r8498, r8492, MPFR_RNDN);
        mpfr_sqrt(r8500, r8499, MPFR_RNDN);
        mpfr_sub(r8501, r8500, r8480, MPFR_RNDN);
        mpfr_mul(r8502, r8487, r8484, MPFR_RNDN);
        mpfr_div(r8503, r8501, r8502, MPFR_RNDN);
        if (mpfr_get_si(r8482, MPFR_RNDN)) { mpfr_set(r8504, r8497, MPFR_RNDN); } else { mpfr_set(r8504, r8503, MPFR_RNDN); };
        ;
        mpfr_set_si(r8506, mpfr_cmp(r8504, r8505) <= 0, MPFR_RNDN);
        mpfr_div(r8507, r8483, r8480, MPFR_RNDN);
        mpfr_neg(r8508, r8480, MPFR_RNDN);
        mpfr_fma(r8509, r8507, r8487, r8508, MPFR_RNDN);
        mpfr_div(r8510, r8483, r8509, MPFR_RNDN);
        mpfr_fma(r8511, r8491, r8490, r8492, MPFR_RNDN);
        mpfr_sqrt(r8512, r8511, MPFR_RNDN);
        mpfr_sub(r8513, r8512, r8480, MPFR_RNDN);
        mpfr_div(r8514, r8513, r8502, MPFR_RNDN);
        if (mpfr_get_si(r8482, MPFR_RNDN)) { mpfr_set(r8515, r8510, MPFR_RNDN); } else { mpfr_set(r8515, r8514, MPFR_RNDN); };
        ;
        mpfr_set_si(r8517, mpfr_cmp(r8504, r8516) <= 0, MPFR_RNDN);
        mpfr_sub(r8518, r8508, r8500, MPFR_RNDN);
        mpfr_div(r8519, r8485, r8518, MPFR_RNDN);
        mpfr_sqrt(r8520, r8501, MPFR_RNDN);
        mpfr_mul(r8521, r8520, r8520, MPFR_RNDN);
        mpfr_div(r8522, r8521, r8502, MPFR_RNDN);
        if (mpfr_get_si(r8482, MPFR_RNDN)) { mpfr_set(r8523, r8519, MPFR_RNDN); } else { mpfr_set(r8523, r8522, MPFR_RNDN); };
        mpfr_sub(r8524, r8508, r8480, MPFR_RNDN);
        mpfr_div(r8525, r8485, r8524, MPFR_RNDN);
        if (mpfr_get_si(r8482, MPFR_RNDN)) { mpfr_set(r8526, r8525, MPFR_RNDN); } else { mpfr_set(r8526, r8503, MPFR_RNDN); };
        if (mpfr_get_si(r8517, MPFR_RNDN)) { mpfr_set(r8527, r8523, MPFR_RNDN); } else { mpfr_set(r8527, r8526, MPFR_RNDN); };
        if (mpfr_get_si(r8506, MPFR_RNDN)) { mpfr_set(r8528, r8515, MPFR_RNDN); } else { mpfr_set(r8528, r8527, MPFR_RNDN); };
        return mpfr_get_d(r8528, MPFR_RNDN);
}

