#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 r4619334 = b;
        float r4619335 = -r4619334;
        float r4619336 = r4619334 * r4619334;
        float r4619337 = 4.0f;
        float r4619338 = a;
        float r4619339 = c;
        float r4619340 = r4619338 * r4619339;
        float r4619341 = r4619337 * r4619340;
        float r4619342 = r4619336 - r4619341;
        float r4619343 = sqrt(r4619342);
        float r4619344 = r4619335 + r4619343;
        float r4619345 = 2.0f;
        float r4619346 = r4619345 * r4619338;
        float r4619347 = r4619344 / r4619346;
        return r4619347;
}

double f_id(double a, double b, double c) {
        double r4619348 = b;
        double r4619349 = -r4619348;
        double r4619350 = r4619348 * r4619348;
        double r4619351 = 4.0;
        double r4619352 = a;
        double r4619353 = c;
        double r4619354 = r4619352 * r4619353;
        double r4619355 = r4619351 * r4619354;
        double r4619356 = r4619350 - r4619355;
        double r4619357 = sqrt(r4619356);
        double r4619358 = r4619349 + r4619357;
        double r4619359 = 2.0;
        double r4619360 = r4619359 * r4619352;
        double r4619361 = r4619358 / r4619360;
        return r4619361;
}


double f_of(float a, float b, float c) {
        float r4619362 = b;
        float r4619363 = -1.7321058520772784e+67f;
        bool r4619364 = r4619362 <= r4619363;
        float r4619365 = -r4619362;
        float r4619366 = a;
        float r4619367 = r4619365 / r4619366;
        float r4619368 = 2.4619882133710072e-287f;
        bool r4619369 = r4619362 <= r4619368;
        float r4619370 = r4619362 * r4619362;
        float r4619371 = 4.0f;
        float r4619372 = c;
        float r4619373 = r4619366 * r4619372;
        float r4619374 = r4619371 * r4619373;
        float r4619375 = r4619370 - r4619374;
        float r4619376 = sqrt(r4619375);
        float r4619377 = r4619365 + r4619376;
        float r4619378 = 1.0f;
        float r4619379 = 2.0f;
        float r4619380 = r4619379 * r4619366;
        float r4619381 = r4619378 / r4619380;
        float r4619382 = r4619377 * r4619381;
        float r4619383 = 2.829973829663237e+105f;
        bool r4619384 = r4619362 <= r4619383;
        float r4619385 = r4619371 / r4619379;
        float r4619386 = r4619362 * r4619362;
        float r4619387 = r4619372 * r4619366;
        float r4619388 = r4619371 * r4619387;
        float r4619389 = r4619386 - r4619388;
        float r4619390 = sqrt(r4619389);
        float r4619391 = r4619365 - r4619390;
        float r4619392 = r4619372 / r4619391;
        float r4619393 = r4619385 * r4619392;
        float r4619394 = r4619385 * r4619372;
        float r4619395 = r4619372 * r4619379;
        float r4619396 = r4619362 / r4619366;
        float r4619397 = r4619395 / r4619396;
        float r4619398 = r4619362 * r4619379;
        float r4619399 = r4619397 - r4619398;
        float r4619400 = r4619394 / r4619399;
        float r4619401 = r4619384 ? r4619393 : r4619400;
        float r4619402 = r4619369 ? r4619382 : r4619401;
        float r4619403 = r4619364 ? r4619367 : r4619402;
        return r4619403;
}

double f_od(double a, double b, double c) {
        double r4619404 = b;
        double r4619405 = -1.7321058520772784e+67;
        bool r4619406 = r4619404 <= r4619405;
        double r4619407 = -r4619404;
        double r4619408 = a;
        double r4619409 = r4619407 / r4619408;
        double r4619410 = 2.4619882133710072e-287;
        bool r4619411 = r4619404 <= r4619410;
        double r4619412 = r4619404 * r4619404;
        double r4619413 = 4.0;
        double r4619414 = c;
        double r4619415 = r4619408 * r4619414;
        double r4619416 = r4619413 * r4619415;
        double r4619417 = r4619412 - r4619416;
        double r4619418 = sqrt(r4619417);
        double r4619419 = r4619407 + r4619418;
        double r4619420 = 1.0;
        double r4619421 = 2.0;
        double r4619422 = r4619421 * r4619408;
        double r4619423 = r4619420 / r4619422;
        double r4619424 = r4619419 * r4619423;
        double r4619425 = 2.829973829663237e+105;
        bool r4619426 = r4619404 <= r4619425;
        double r4619427 = r4619413 / r4619421;
        double r4619428 = r4619404 * r4619404;
        double r4619429 = r4619414 * r4619408;
        double r4619430 = r4619413 * r4619429;
        double r4619431 = r4619428 - r4619430;
        double r4619432 = sqrt(r4619431);
        double r4619433 = r4619407 - r4619432;
        double r4619434 = r4619414 / r4619433;
        double r4619435 = r4619427 * r4619434;
        double r4619436 = r4619427 * r4619414;
        double r4619437 = r4619414 * r4619421;
        double r4619438 = r4619404 / r4619408;
        double r4619439 = r4619437 / r4619438;
        double r4619440 = r4619404 * r4619421;
        double r4619441 = r4619439 - r4619440;
        double r4619442 = r4619436 / r4619441;
        double r4619443 = r4619426 ? r4619435 : r4619442;
        double r4619444 = r4619411 ? r4619424 : r4619443;
        double r4619445 = r4619406 ? r4619409 : r4619444;
        return r4619445;
}

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 r4619446, r4619447, r4619448, r4619449, r4619450, r4619451, r4619452, r4619453, r4619454, r4619455, r4619456, r4619457, r4619458, r4619459;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r4619446);
        mpfr_init(r4619447);
        mpfr_init(r4619448);
        mpfr_init_set_str(r4619449, "4", 10, MPFR_RNDN);
        mpfr_init(r4619450);
        mpfr_init(r4619451);
        mpfr_init(r4619452);
        mpfr_init(r4619453);
        mpfr_init(r4619454);
        mpfr_init(r4619455);
        mpfr_init(r4619456);
        mpfr_init_set_str(r4619457, "2", 10, MPFR_RNDN);
        mpfr_init(r4619458);
        mpfr_init(r4619459);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r4619446, b, MPFR_RNDN);
        mpfr_neg(r4619447, r4619446, MPFR_RNDN);
        mpfr_sqr(r4619448, r4619446, MPFR_RNDN);
        ;
        mpfr_set_d(r4619450, a, MPFR_RNDN);
        mpfr_set_d(r4619451, c, MPFR_RNDN);
        mpfr_mul(r4619452, r4619450, r4619451, MPFR_RNDN);
        mpfr_mul(r4619453, r4619449, r4619452, MPFR_RNDN);
        mpfr_sub(r4619454, r4619448, r4619453, MPFR_RNDN);
        mpfr_sqrt(r4619455, r4619454, MPFR_RNDN);
        mpfr_add(r4619456, r4619447, r4619455, MPFR_RNDN);
        ;
        mpfr_mul(r4619458, r4619457, r4619450, MPFR_RNDN);
        mpfr_div(r4619459, r4619456, r4619458, MPFR_RNDN);
        return mpfr_get_d(r4619459, MPFR_RNDN);
}

static mpfr_t r4619460, r4619461, r4619462, r4619463, r4619464, r4619465, r4619466, r4619467, r4619468, r4619469, r4619470, r4619471, r4619472, r4619473, r4619474, r4619475, r4619476, r4619477, r4619478, r4619479, r4619480, r4619481, r4619482, r4619483, r4619484, r4619485, r4619486, r4619487, r4619488, r4619489, r4619490, r4619491, r4619492, r4619493, r4619494, r4619495, r4619496, r4619497, r4619498, r4619499, r4619500, r4619501;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r4619460);
        mpfr_init_set_str(r4619461, "-1.7321058520772784e+67", 10, MPFR_RNDN);
        mpfr_init(r4619462);
        mpfr_init(r4619463);
        mpfr_init(r4619464);
        mpfr_init(r4619465);
        mpfr_init_set_str(r4619466, "2.4619882133710072e-287", 10, MPFR_RNDN);
        mpfr_init(r4619467);
        mpfr_init(r4619468);
        mpfr_init_set_str(r4619469, "4", 10, MPFR_RNDN);
        mpfr_init(r4619470);
        mpfr_init(r4619471);
        mpfr_init(r4619472);
        mpfr_init(r4619473);
        mpfr_init(r4619474);
        mpfr_init(r4619475);
        mpfr_init_set_str(r4619476, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r4619477, "2", 10, MPFR_RNDN);
        mpfr_init(r4619478);
        mpfr_init(r4619479);
        mpfr_init(r4619480);
        mpfr_init_set_str(r4619481, "2.829973829663237e+105", 10, MPFR_RNDN);
        mpfr_init(r4619482);
        mpfr_init(r4619483);
        mpfr_init(r4619484);
        mpfr_init(r4619485);
        mpfr_init(r4619486);
        mpfr_init(r4619487);
        mpfr_init(r4619488);
        mpfr_init(r4619489);
        mpfr_init(r4619490);
        mpfr_init(r4619491);
        mpfr_init(r4619492);
        mpfr_init(r4619493);
        mpfr_init(r4619494);
        mpfr_init(r4619495);
        mpfr_init(r4619496);
        mpfr_init(r4619497);
        mpfr_init(r4619498);
        mpfr_init(r4619499);
        mpfr_init(r4619500);
        mpfr_init(r4619501);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r4619460, b, MPFR_RNDN);
        ;
        mpfr_set_si(r4619462, mpfr_cmp(r4619460, r4619461) <= 0, MPFR_RNDN);
        mpfr_neg(r4619463, r4619460, MPFR_RNDN);
        mpfr_set_d(r4619464, a, MPFR_RNDN);
        mpfr_div(r4619465, r4619463, r4619464, MPFR_RNDN);
        ;
        mpfr_set_si(r4619467, mpfr_cmp(r4619460, r4619466) <= 0, MPFR_RNDN);
        mpfr_sqr(r4619468, r4619460, MPFR_RNDN);
        ;
        mpfr_set_d(r4619470, c, MPFR_RNDN);
        mpfr_mul(r4619471, r4619464, r4619470, MPFR_RNDN);
        mpfr_mul(r4619472, r4619469, r4619471, MPFR_RNDN);
        mpfr_sub(r4619473, r4619468, r4619472, MPFR_RNDN);
        mpfr_sqrt(r4619474, r4619473, MPFR_RNDN);
        mpfr_add(r4619475, r4619463, r4619474, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r4619478, r4619477, r4619464, MPFR_RNDN);
        mpfr_div(r4619479, r4619476, r4619478, MPFR_RNDN);
        mpfr_mul(r4619480, r4619475, r4619479, MPFR_RNDN);
        ;
        mpfr_set_si(r4619482, mpfr_cmp(r4619460, r4619481) <= 0, MPFR_RNDN);
        mpfr_div(r4619483, r4619469, r4619477, MPFR_RNDN);
        mpfr_mul(r4619484, r4619460, r4619460, MPFR_RNDN);
        mpfr_mul(r4619485, r4619470, r4619464, MPFR_RNDN);
        mpfr_mul(r4619486, r4619469, r4619485, MPFR_RNDN);
        mpfr_sub(r4619487, r4619484, r4619486, MPFR_RNDN);
        mpfr_sqrt(r4619488, r4619487, MPFR_RNDN);
        mpfr_sub(r4619489, r4619463, r4619488, MPFR_RNDN);
        mpfr_div(r4619490, r4619470, r4619489, MPFR_RNDN);
        mpfr_mul(r4619491, r4619483, r4619490, MPFR_RNDN);
        mpfr_mul(r4619492, r4619483, r4619470, MPFR_RNDN);
        mpfr_mul(r4619493, r4619470, r4619477, MPFR_RNDN);
        mpfr_div(r4619494, r4619460, r4619464, MPFR_RNDN);
        mpfr_div(r4619495, r4619493, r4619494, MPFR_RNDN);
        mpfr_mul(r4619496, r4619460, r4619477, MPFR_RNDN);
        mpfr_sub(r4619497, r4619495, r4619496, MPFR_RNDN);
        mpfr_div(r4619498, r4619492, r4619497, MPFR_RNDN);
        if (mpfr_get_si(r4619482, MPFR_RNDN)) { mpfr_set(r4619499, r4619491, MPFR_RNDN); } else { mpfr_set(r4619499, r4619498, MPFR_RNDN); };
        if (mpfr_get_si(r4619467, MPFR_RNDN)) { mpfr_set(r4619500, r4619480, MPFR_RNDN); } else { mpfr_set(r4619500, r4619499, MPFR_RNDN); };
        if (mpfr_get_si(r4619462, MPFR_RNDN)) { mpfr_set(r4619501, r4619465, MPFR_RNDN); } else { mpfr_set(r4619501, r4619500, MPFR_RNDN); };
        return mpfr_get_d(r4619501, MPFR_RNDN);
}

static mpfr_t r4619502, r4619503, r4619504, r4619505, r4619506, r4619507, r4619508, r4619509, r4619510, r4619511, r4619512, r4619513, r4619514, r4619515, r4619516, r4619517, r4619518, r4619519, r4619520, r4619521, r4619522, r4619523, r4619524, r4619525, r4619526, r4619527, r4619528, r4619529, r4619530, r4619531, r4619532, r4619533, r4619534, r4619535, r4619536, r4619537, r4619538, r4619539, r4619540, r4619541, r4619542, r4619543;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r4619502);
        mpfr_init_set_str(r4619503, "-1.7321058520772784e+67", 10, MPFR_RNDN);
        mpfr_init(r4619504);
        mpfr_init(r4619505);
        mpfr_init(r4619506);
        mpfr_init(r4619507);
        mpfr_init_set_str(r4619508, "2.4619882133710072e-287", 10, MPFR_RNDN);
        mpfr_init(r4619509);
        mpfr_init(r4619510);
        mpfr_init_set_str(r4619511, "4", 10, MPFR_RNDN);
        mpfr_init(r4619512);
        mpfr_init(r4619513);
        mpfr_init(r4619514);
        mpfr_init(r4619515);
        mpfr_init(r4619516);
        mpfr_init(r4619517);
        mpfr_init_set_str(r4619518, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r4619519, "2", 10, MPFR_RNDN);
        mpfr_init(r4619520);
        mpfr_init(r4619521);
        mpfr_init(r4619522);
        mpfr_init_set_str(r4619523, "2.829973829663237e+105", 10, MPFR_RNDN);
        mpfr_init(r4619524);
        mpfr_init(r4619525);
        mpfr_init(r4619526);
        mpfr_init(r4619527);
        mpfr_init(r4619528);
        mpfr_init(r4619529);
        mpfr_init(r4619530);
        mpfr_init(r4619531);
        mpfr_init(r4619532);
        mpfr_init(r4619533);
        mpfr_init(r4619534);
        mpfr_init(r4619535);
        mpfr_init(r4619536);
        mpfr_init(r4619537);
        mpfr_init(r4619538);
        mpfr_init(r4619539);
        mpfr_init(r4619540);
        mpfr_init(r4619541);
        mpfr_init(r4619542);
        mpfr_init(r4619543);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r4619502, b, MPFR_RNDN);
        ;
        mpfr_set_si(r4619504, mpfr_cmp(r4619502, r4619503) <= 0, MPFR_RNDN);
        mpfr_neg(r4619505, r4619502, MPFR_RNDN);
        mpfr_set_d(r4619506, a, MPFR_RNDN);
        mpfr_div(r4619507, r4619505, r4619506, MPFR_RNDN);
        ;
        mpfr_set_si(r4619509, mpfr_cmp(r4619502, r4619508) <= 0, MPFR_RNDN);
        mpfr_sqr(r4619510, r4619502, MPFR_RNDN);
        ;
        mpfr_set_d(r4619512, c, MPFR_RNDN);
        mpfr_mul(r4619513, r4619506, r4619512, MPFR_RNDN);
        mpfr_mul(r4619514, r4619511, r4619513, MPFR_RNDN);
        mpfr_sub(r4619515, r4619510, r4619514, MPFR_RNDN);
        mpfr_sqrt(r4619516, r4619515, MPFR_RNDN);
        mpfr_add(r4619517, r4619505, r4619516, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r4619520, r4619519, r4619506, MPFR_RNDN);
        mpfr_div(r4619521, r4619518, r4619520, MPFR_RNDN);
        mpfr_mul(r4619522, r4619517, r4619521, MPFR_RNDN);
        ;
        mpfr_set_si(r4619524, mpfr_cmp(r4619502, r4619523) <= 0, MPFR_RNDN);
        mpfr_div(r4619525, r4619511, r4619519, MPFR_RNDN);
        mpfr_mul(r4619526, r4619502, r4619502, MPFR_RNDN);
        mpfr_mul(r4619527, r4619512, r4619506, MPFR_RNDN);
        mpfr_mul(r4619528, r4619511, r4619527, MPFR_RNDN);
        mpfr_sub(r4619529, r4619526, r4619528, MPFR_RNDN);
        mpfr_sqrt(r4619530, r4619529, MPFR_RNDN);
        mpfr_sub(r4619531, r4619505, r4619530, MPFR_RNDN);
        mpfr_div(r4619532, r4619512, r4619531, MPFR_RNDN);
        mpfr_mul(r4619533, r4619525, r4619532, MPFR_RNDN);
        mpfr_mul(r4619534, r4619525, r4619512, MPFR_RNDN);
        mpfr_mul(r4619535, r4619512, r4619519, MPFR_RNDN);
        mpfr_div(r4619536, r4619502, r4619506, MPFR_RNDN);
        mpfr_div(r4619537, r4619535, r4619536, MPFR_RNDN);
        mpfr_mul(r4619538, r4619502, r4619519, MPFR_RNDN);
        mpfr_sub(r4619539, r4619537, r4619538, MPFR_RNDN);
        mpfr_div(r4619540, r4619534, r4619539, MPFR_RNDN);
        if (mpfr_get_si(r4619524, MPFR_RNDN)) { mpfr_set(r4619541, r4619533, MPFR_RNDN); } else { mpfr_set(r4619541, r4619540, MPFR_RNDN); };
        if (mpfr_get_si(r4619509, MPFR_RNDN)) { mpfr_set(r4619542, r4619522, MPFR_RNDN); } else { mpfr_set(r4619542, r4619541, MPFR_RNDN); };
        if (mpfr_get_si(r4619504, MPFR_RNDN)) { mpfr_set(r4619543, r4619507, MPFR_RNDN); } else { mpfr_set(r4619543, r4619542, MPFR_RNDN); };
        return mpfr_get_d(r4619543, MPFR_RNDN);
}

