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

char *name = "NMSE p42, positive";

double f_if(float a, float b, float c) {
        float r27302 = b;
        float r27303 = -r27302;
        float r27304 = r27302 * r27302;
        float r27305 = 4.0f;
        float r27306 = a;
        float r27307 = c;
        float r27308 = r27306 * r27307;
        float r27309 = r27305 * r27308;
        float r27310 = r27304 - r27309;
        float r27311 = sqrt(r27310);
        float r27312 = r27303 + r27311;
        float r27313 = 2.0f;
        float r27314 = r27313 * r27306;
        float r27315 = r27312 / r27314;
        return r27315;
}

double f_id(double a, double b, double c) {
        double r27316 = b;
        double r27317 = -r27316;
        double r27318 = r27316 * r27316;
        double r27319 = 4.0;
        double r27320 = a;
        double r27321 = c;
        double r27322 = r27320 * r27321;
        double r27323 = r27319 * r27322;
        double r27324 = r27318 - r27323;
        double r27325 = sqrt(r27324);
        double r27326 = r27317 + r27325;
        double r27327 = 2.0;
        double r27328 = r27327 * r27320;
        double r27329 = r27326 / r27328;
        return r27329;
}


double f_of(float a, float b, float c) {
        float r27330 = b;
        float r27331 = -2.432311946733841e+79f;
        bool r27332 = r27330 <= r27331;
        float r27333 = c;
        float r27334 = r27333 / r27330;
        float r27335 = a;
        float r27336 = r27330 / r27335;
        float r27337 = r27334 - r27336;
        float r27338 = 8.766251998758325e-121f;
        bool r27339 = r27330 <= r27338;
        float r27340 = -r27330;
        float r27341 = r27330 * r27330;
        float r27342 = 4.0f;
        float r27343 = r27335 * r27333;
        float r27344 = r27342 * r27343;
        float r27345 = r27341 - r27344;
        float r27346 = sqrt(r27345);
        float r27347 = r27340 + r27346;
        float r27348 = 1.0f;
        float r27349 = 2.0f;
        float r27350 = r27349 * r27335;
        float r27351 = r27348 / r27350;
        float r27352 = r27347 * r27351;
        float r27353 = 5.573681450579778e+158f;
        bool r27354 = r27330 <= r27353;
        float r27355 = r27342 * r27333;
        float r27356 = r27335 * r27355;
        float r27357 = r27340 - r27346;
        float r27358 = r27356 / r27357;
        float r27359 = r27358 / r27350;
        float r27360 = -2.0f;
        float r27361 = r27360 / r27349;
        float r27362 = r27334 * r27361;
        float r27363 = r27354 ? r27359 : r27362;
        float r27364 = r27339 ? r27352 : r27363;
        float r27365 = r27332 ? r27337 : r27364;
        return r27365;
}

double f_od(double a, double b, double c) {
        double r27366 = b;
        double r27367 = -2.432311946733841e+79;
        bool r27368 = r27366 <= r27367;
        double r27369 = c;
        double r27370 = r27369 / r27366;
        double r27371 = a;
        double r27372 = r27366 / r27371;
        double r27373 = r27370 - r27372;
        double r27374 = 8.766251998758325e-121;
        bool r27375 = r27366 <= r27374;
        double r27376 = -r27366;
        double r27377 = r27366 * r27366;
        double r27378 = 4.0;
        double r27379 = r27371 * r27369;
        double r27380 = r27378 * r27379;
        double r27381 = r27377 - r27380;
        double r27382 = sqrt(r27381);
        double r27383 = r27376 + r27382;
        double r27384 = 1.0;
        double r27385 = 2.0;
        double r27386 = r27385 * r27371;
        double r27387 = r27384 / r27386;
        double r27388 = r27383 * r27387;
        double r27389 = 5.573681450579778e+158;
        bool r27390 = r27366 <= r27389;
        double r27391 = r27378 * r27369;
        double r27392 = r27371 * r27391;
        double r27393 = r27376 - r27382;
        double r27394 = r27392 / r27393;
        double r27395 = r27394 / r27386;
        double r27396 = -2.0;
        double r27397 = r27396 / r27385;
        double r27398 = r27370 * r27397;
        double r27399 = r27390 ? r27395 : r27398;
        double r27400 = r27375 ? r27388 : r27399;
        double r27401 = r27368 ? r27373 : r27400;
        return r27401;
}

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 r27402, r27403, r27404, r27405, r27406, r27407, r27408, r27409, r27410, r27411, r27412, r27413, r27414, r27415;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1936);
        mpfr_init(r27402);
        mpfr_init(r27403);
        mpfr_init(r27404);
        mpfr_init_set_str(r27405, "4", 10, MPFR_RNDN);
        mpfr_init(r27406);
        mpfr_init(r27407);
        mpfr_init(r27408);
        mpfr_init(r27409);
        mpfr_init(r27410);
        mpfr_init(r27411);
        mpfr_init(r27412);
        mpfr_init_set_str(r27413, "2", 10, MPFR_RNDN);
        mpfr_init(r27414);
        mpfr_init(r27415);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r27402, b, MPFR_RNDN);
        mpfr_neg(r27403, r27402, MPFR_RNDN);
        mpfr_mul(r27404, r27402, r27402, MPFR_RNDN);
        ;
        mpfr_set_d(r27406, a, MPFR_RNDN);
        mpfr_set_d(r27407, c, MPFR_RNDN);
        mpfr_mul(r27408, r27406, r27407, MPFR_RNDN);
        mpfr_mul(r27409, r27405, r27408, MPFR_RNDN);
        mpfr_sub(r27410, r27404, r27409, MPFR_RNDN);
        mpfr_sqrt(r27411, r27410, MPFR_RNDN);
        mpfr_add(r27412, r27403, r27411, MPFR_RNDN);
        ;
        mpfr_mul(r27414, r27413, r27406, MPFR_RNDN);
        mpfr_div(r27415, r27412, r27414, MPFR_RNDN);
        return mpfr_get_d(r27415, MPFR_RNDN);
}

static mpfr_t r27416, r27417, r27418, r27419, r27420, r27421, r27422, r27423, r27424, r27425, r27426, r27427, r27428, r27429, r27430, r27431, r27432, r27433, r27434, r27435, r27436, r27437, r27438, r27439, r27440, r27441, r27442, r27443, r27444, r27445, r27446, r27447, r27448, r27449, r27450, r27451;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r27416);
        mpfr_init_set_str(r27417, "-2.432311946733841e+79", 10, MPFR_RNDN);
        mpfr_init(r27418);
        mpfr_init(r27419);
        mpfr_init(r27420);
        mpfr_init(r27421);
        mpfr_init(r27422);
        mpfr_init(r27423);
        mpfr_init_set_str(r27424, "8.766251998758325e-121", 10, MPFR_RNDN);
        mpfr_init(r27425);
        mpfr_init(r27426);
        mpfr_init(r27427);
        mpfr_init_set_str(r27428, "4", 10, MPFR_RNDN);
        mpfr_init(r27429);
        mpfr_init(r27430);
        mpfr_init(r27431);
        mpfr_init(r27432);
        mpfr_init(r27433);
        mpfr_init_set_str(r27434, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27435, "2", 10, MPFR_RNDN);
        mpfr_init(r27436);
        mpfr_init(r27437);
        mpfr_init(r27438);
        mpfr_init_set_str(r27439, "5.573681450579778e+158", 10, MPFR_RNDN);
        mpfr_init(r27440);
        mpfr_init(r27441);
        mpfr_init(r27442);
        mpfr_init(r27443);
        mpfr_init(r27444);
        mpfr_init(r27445);
        mpfr_init_set_str(r27446, "-2", 10, MPFR_RNDN);
        mpfr_init(r27447);
        mpfr_init(r27448);
        mpfr_init(r27449);
        mpfr_init(r27450);
        mpfr_init(r27451);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r27416, b, MPFR_RNDN);
        ;
        mpfr_set_si(r27418, mpfr_cmp(r27416, r27417) <= 0, MPFR_RNDN);
        mpfr_set_d(r27419, c, MPFR_RNDN);
        mpfr_div(r27420, r27419, r27416, MPFR_RNDN);
        mpfr_set_d(r27421, a, MPFR_RNDN);
        mpfr_div(r27422, r27416, r27421, MPFR_RNDN);
        mpfr_sub(r27423, r27420, r27422, MPFR_RNDN);
        ;
        mpfr_set_si(r27425, mpfr_cmp(r27416, r27424) <= 0, MPFR_RNDN);
        mpfr_neg(r27426, r27416, MPFR_RNDN);
        mpfr_mul(r27427, r27416, r27416, MPFR_RNDN);
        ;
        mpfr_mul(r27429, r27421, r27419, MPFR_RNDN);
        mpfr_mul(r27430, r27428, r27429, MPFR_RNDN);
        mpfr_sub(r27431, r27427, r27430, MPFR_RNDN);
        mpfr_sqrt(r27432, r27431, MPFR_RNDN);
        mpfr_add(r27433, r27426, r27432, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r27436, r27435, r27421, MPFR_RNDN);
        mpfr_div(r27437, r27434, r27436, MPFR_RNDN);
        mpfr_mul(r27438, r27433, r27437, MPFR_RNDN);
        ;
        mpfr_set_si(r27440, mpfr_cmp(r27416, r27439) <= 0, MPFR_RNDN);
        mpfr_mul(r27441, r27428, r27419, MPFR_RNDN);
        mpfr_mul(r27442, r27421, r27441, MPFR_RNDN);
        mpfr_sub(r27443, r27426, r27432, MPFR_RNDN);
        mpfr_div(r27444, r27442, r27443, MPFR_RNDN);
        mpfr_div(r27445, r27444, r27436, MPFR_RNDN);
        ;
        mpfr_div(r27447, r27446, r27435, MPFR_RNDN);
        mpfr_mul(r27448, r27420, r27447, MPFR_RNDN);
        if (mpfr_get_si(r27440, MPFR_RNDN)) { mpfr_set(r27449, r27445, MPFR_RNDN); } else { mpfr_set(r27449, r27448, MPFR_RNDN); };
        if (mpfr_get_si(r27425, MPFR_RNDN)) { mpfr_set(r27450, r27438, MPFR_RNDN); } else { mpfr_set(r27450, r27449, MPFR_RNDN); };
        if (mpfr_get_si(r27418, MPFR_RNDN)) { mpfr_set(r27451, r27423, MPFR_RNDN); } else { mpfr_set(r27451, r27450, MPFR_RNDN); };
        return mpfr_get_d(r27451, MPFR_RNDN);
}

static mpfr_t r27452, r27453, r27454, r27455, r27456, r27457, r27458, r27459, r27460, r27461, r27462, r27463, r27464, r27465, r27466, r27467, r27468, r27469, r27470, r27471, r27472, r27473, r27474, r27475, r27476, r27477, r27478, r27479, r27480, r27481, r27482, r27483, r27484, r27485, r27486, r27487;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1936);
        mpfr_init(r27452);
        mpfr_init_set_str(r27453, "-2.432311946733841e+79", 10, MPFR_RNDN);
        mpfr_init(r27454);
        mpfr_init(r27455);
        mpfr_init(r27456);
        mpfr_init(r27457);
        mpfr_init(r27458);
        mpfr_init(r27459);
        mpfr_init_set_str(r27460, "8.766251998758325e-121", 10, MPFR_RNDN);
        mpfr_init(r27461);
        mpfr_init(r27462);
        mpfr_init(r27463);
        mpfr_init_set_str(r27464, "4", 10, MPFR_RNDN);
        mpfr_init(r27465);
        mpfr_init(r27466);
        mpfr_init(r27467);
        mpfr_init(r27468);
        mpfr_init(r27469);
        mpfr_init_set_str(r27470, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27471, "2", 10, MPFR_RNDN);
        mpfr_init(r27472);
        mpfr_init(r27473);
        mpfr_init(r27474);
        mpfr_init_set_str(r27475, "5.573681450579778e+158", 10, MPFR_RNDN);
        mpfr_init(r27476);
        mpfr_init(r27477);
        mpfr_init(r27478);
        mpfr_init(r27479);
        mpfr_init(r27480);
        mpfr_init(r27481);
        mpfr_init_set_str(r27482, "-2", 10, MPFR_RNDN);
        mpfr_init(r27483);
        mpfr_init(r27484);
        mpfr_init(r27485);
        mpfr_init(r27486);
        mpfr_init(r27487);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r27452, b, MPFR_RNDN);
        ;
        mpfr_set_si(r27454, mpfr_cmp(r27452, r27453) <= 0, MPFR_RNDN);
        mpfr_set_d(r27455, c, MPFR_RNDN);
        mpfr_div(r27456, r27455, r27452, MPFR_RNDN);
        mpfr_set_d(r27457, a, MPFR_RNDN);
        mpfr_div(r27458, r27452, r27457, MPFR_RNDN);
        mpfr_sub(r27459, r27456, r27458, MPFR_RNDN);
        ;
        mpfr_set_si(r27461, mpfr_cmp(r27452, r27460) <= 0, MPFR_RNDN);
        mpfr_neg(r27462, r27452, MPFR_RNDN);
        mpfr_mul(r27463, r27452, r27452, MPFR_RNDN);
        ;
        mpfr_mul(r27465, r27457, r27455, MPFR_RNDN);
        mpfr_mul(r27466, r27464, r27465, MPFR_RNDN);
        mpfr_sub(r27467, r27463, r27466, MPFR_RNDN);
        mpfr_sqrt(r27468, r27467, MPFR_RNDN);
        mpfr_add(r27469, r27462, r27468, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r27472, r27471, r27457, MPFR_RNDN);
        mpfr_div(r27473, r27470, r27472, MPFR_RNDN);
        mpfr_mul(r27474, r27469, r27473, MPFR_RNDN);
        ;
        mpfr_set_si(r27476, mpfr_cmp(r27452, r27475) <= 0, MPFR_RNDN);
        mpfr_mul(r27477, r27464, r27455, MPFR_RNDN);
        mpfr_mul(r27478, r27457, r27477, MPFR_RNDN);
        mpfr_sub(r27479, r27462, r27468, MPFR_RNDN);
        mpfr_div(r27480, r27478, r27479, MPFR_RNDN);
        mpfr_div(r27481, r27480, r27472, MPFR_RNDN);
        ;
        mpfr_div(r27483, r27482, r27471, MPFR_RNDN);
        mpfr_mul(r27484, r27456, r27483, MPFR_RNDN);
        if (mpfr_get_si(r27476, MPFR_RNDN)) { mpfr_set(r27485, r27481, MPFR_RNDN); } else { mpfr_set(r27485, r27484, MPFR_RNDN); };
        if (mpfr_get_si(r27461, MPFR_RNDN)) { mpfr_set(r27486, r27474, MPFR_RNDN); } else { mpfr_set(r27486, r27485, MPFR_RNDN); };
        if (mpfr_get_si(r27454, MPFR_RNDN)) { mpfr_set(r27487, r27459, MPFR_RNDN); } else { mpfr_set(r27487, r27486, MPFR_RNDN); };
        return mpfr_get_d(r27487, MPFR_RNDN);
}

