#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 r4775130 = b;
        float r4775131 = -r4775130;
        float r4775132 = r4775130 * r4775130;
        float r4775133 = 4.0f;
        float r4775134 = a;
        float r4775135 = c;
        float r4775136 = r4775134 * r4775135;
        float r4775137 = r4775133 * r4775136;
        float r4775138 = r4775132 - r4775137;
        float r4775139 = sqrt(r4775138);
        float r4775140 = r4775131 + r4775139;
        float r4775141 = 2.0f;
        float r4775142 = r4775141 * r4775134;
        float r4775143 = r4775140 / r4775142;
        return r4775143;
}

double f_id(double a, double b, double c) {
        double r4775144 = b;
        double r4775145 = -r4775144;
        double r4775146 = r4775144 * r4775144;
        double r4775147 = 4.0;
        double r4775148 = a;
        double r4775149 = c;
        double r4775150 = r4775148 * r4775149;
        double r4775151 = r4775147 * r4775150;
        double r4775152 = r4775146 - r4775151;
        double r4775153 = sqrt(r4775152);
        double r4775154 = r4775145 + r4775153;
        double r4775155 = 2.0;
        double r4775156 = r4775155 * r4775148;
        double r4775157 = r4775154 / r4775156;
        return r4775157;
}


double f_of(float a, float b, float c) {
        float r4775158 = b;
        float r4775159 = -1.7321058520772784e+67f;
        bool r4775160 = r4775158 <= r4775159;
        float r4775161 = c;
        float r4775162 = r4775161 / r4775158;
        float r4775163 = -r4775158;
        float r4775164 = r4775158 - r4775163;
        float r4775165 = a;
        float r4775166 = r4775165 + r4775165;
        float r4775167 = r4775164 / r4775166;
        float r4775168 = r4775162 - r4775167;
        float r4775169 = 2.4619882133710072e-287f;
        bool r4775170 = r4775158 <= r4775169;
        float r4775171 = r4775158 * r4775158;
        float r4775172 = 4.0f;
        float r4775173 = r4775165 * r4775161;
        float r4775174 = r4775172 * r4775173;
        float r4775175 = r4775171 - r4775174;
        float r4775176 = sqrt(r4775175);
        float r4775177 = r4775163 + r4775176;
        float r4775178 = 1.0f;
        float r4775179 = 2.0f;
        float r4775180 = r4775179 * r4775165;
        float r4775181 = r4775178 / r4775180;
        float r4775182 = r4775177 * r4775181;
        float r4775183 = 2.829973829663237e+105f;
        bool r4775184 = r4775158 <= r4775183;
        float r4775185 = r4775172 / r4775179;
        float r4775186 = r4775158 * r4775158;
        float r4775187 = r4775161 * r4775165;
        float r4775188 = r4775172 * r4775187;
        float r4775189 = r4775186 - r4775188;
        float r4775190 = sqrt(r4775189);
        float r4775191 = r4775163 - r4775190;
        float r4775192 = r4775161 / r4775191;
        float r4775193 = r4775185 * r4775192;
        float r4775194 = r4775161 / r4775179;
        float r4775195 = r4775158 / r4775161;
        float r4775196 = r4775165 / r4775195;
        float r4775197 = r4775196 - r4775158;
        float r4775198 = r4775194 / r4775197;
        float r4775199 = r4775198 * r4775185;
        float r4775200 = r4775184 ? r4775193 : r4775199;
        float r4775201 = r4775170 ? r4775182 : r4775200;
        float r4775202 = r4775160 ? r4775168 : r4775201;
        return r4775202;
}

double f_od(double a, double b, double c) {
        double r4775203 = b;
        double r4775204 = -1.7321058520772784e+67;
        bool r4775205 = r4775203 <= r4775204;
        double r4775206 = c;
        double r4775207 = r4775206 / r4775203;
        double r4775208 = -r4775203;
        double r4775209 = r4775203 - r4775208;
        double r4775210 = a;
        double r4775211 = r4775210 + r4775210;
        double r4775212 = r4775209 / r4775211;
        double r4775213 = r4775207 - r4775212;
        double r4775214 = 2.4619882133710072e-287;
        bool r4775215 = r4775203 <= r4775214;
        double r4775216 = r4775203 * r4775203;
        double r4775217 = 4.0;
        double r4775218 = r4775210 * r4775206;
        double r4775219 = r4775217 * r4775218;
        double r4775220 = r4775216 - r4775219;
        double r4775221 = sqrt(r4775220);
        double r4775222 = r4775208 + r4775221;
        double r4775223 = 1.0;
        double r4775224 = 2.0;
        double r4775225 = r4775224 * r4775210;
        double r4775226 = r4775223 / r4775225;
        double r4775227 = r4775222 * r4775226;
        double r4775228 = 2.829973829663237e+105;
        bool r4775229 = r4775203 <= r4775228;
        double r4775230 = r4775217 / r4775224;
        double r4775231 = r4775203 * r4775203;
        double r4775232 = r4775206 * r4775210;
        double r4775233 = r4775217 * r4775232;
        double r4775234 = r4775231 - r4775233;
        double r4775235 = sqrt(r4775234);
        double r4775236 = r4775208 - r4775235;
        double r4775237 = r4775206 / r4775236;
        double r4775238 = r4775230 * r4775237;
        double r4775239 = r4775206 / r4775224;
        double r4775240 = r4775203 / r4775206;
        double r4775241 = r4775210 / r4775240;
        double r4775242 = r4775241 - r4775203;
        double r4775243 = r4775239 / r4775242;
        double r4775244 = r4775243 * r4775230;
        double r4775245 = r4775229 ? r4775238 : r4775244;
        double r4775246 = r4775215 ? r4775227 : r4775245;
        double r4775247 = r4775205 ? r4775213 : r4775246;
        return r4775247;
}

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 r4775248, r4775249, r4775250, r4775251, r4775252, r4775253, r4775254, r4775255, r4775256, r4775257, r4775258, r4775259, r4775260, r4775261;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r4775248);
        mpfr_init(r4775249);
        mpfr_init(r4775250);
        mpfr_init_set_str(r4775251, "4", 10, MPFR_RNDN);
        mpfr_init(r4775252);
        mpfr_init(r4775253);
        mpfr_init(r4775254);
        mpfr_init(r4775255);
        mpfr_init(r4775256);
        mpfr_init(r4775257);
        mpfr_init(r4775258);
        mpfr_init_set_str(r4775259, "2", 10, MPFR_RNDN);
        mpfr_init(r4775260);
        mpfr_init(r4775261);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r4775248, b, MPFR_RNDN);
        mpfr_neg(r4775249, r4775248, MPFR_RNDN);
        mpfr_sqr(r4775250, r4775248, MPFR_RNDN);
        ;
        mpfr_set_d(r4775252, a, MPFR_RNDN);
        mpfr_set_d(r4775253, c, MPFR_RNDN);
        mpfr_mul(r4775254, r4775252, r4775253, MPFR_RNDN);
        mpfr_mul(r4775255, r4775251, r4775254, MPFR_RNDN);
        mpfr_sub(r4775256, r4775250, r4775255, MPFR_RNDN);
        mpfr_sqrt(r4775257, r4775256, MPFR_RNDN);
        mpfr_add(r4775258, r4775249, r4775257, MPFR_RNDN);
        ;
        mpfr_mul(r4775260, r4775259, r4775252, MPFR_RNDN);
        mpfr_div(r4775261, r4775258, r4775260, MPFR_RNDN);
        return mpfr_get_d(r4775261, MPFR_RNDN);
}

static mpfr_t r4775262, r4775263, r4775264, r4775265, r4775266, r4775267, r4775268, r4775269, r4775270, r4775271, r4775272, r4775273, r4775274, r4775275, r4775276, r4775277, r4775278, r4775279, r4775280, r4775281, r4775282, r4775283, r4775284, r4775285, r4775286, r4775287, r4775288, r4775289, r4775290, r4775291, r4775292, r4775293, r4775294, r4775295, r4775296, r4775297, r4775298, r4775299, r4775300, r4775301, r4775302, r4775303, r4775304, r4775305, r4775306;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r4775262);
        mpfr_init_set_str(r4775263, "-1.7321058520772784e+67", 10, MPFR_RNDN);
        mpfr_init(r4775264);
        mpfr_init(r4775265);
        mpfr_init(r4775266);
        mpfr_init(r4775267);
        mpfr_init(r4775268);
        mpfr_init(r4775269);
        mpfr_init(r4775270);
        mpfr_init(r4775271);
        mpfr_init(r4775272);
        mpfr_init_set_str(r4775273, "2.4619882133710072e-287", 10, MPFR_RNDN);
        mpfr_init(r4775274);
        mpfr_init(r4775275);
        mpfr_init_set_str(r4775276, "4", 10, MPFR_RNDN);
        mpfr_init(r4775277);
        mpfr_init(r4775278);
        mpfr_init(r4775279);
        mpfr_init(r4775280);
        mpfr_init(r4775281);
        mpfr_init_set_str(r4775282, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r4775283, "2", 10, MPFR_RNDN);
        mpfr_init(r4775284);
        mpfr_init(r4775285);
        mpfr_init(r4775286);
        mpfr_init_set_str(r4775287, "2.829973829663237e+105", 10, MPFR_RNDN);
        mpfr_init(r4775288);
        mpfr_init(r4775289);
        mpfr_init(r4775290);
        mpfr_init(r4775291);
        mpfr_init(r4775292);
        mpfr_init(r4775293);
        mpfr_init(r4775294);
        mpfr_init(r4775295);
        mpfr_init(r4775296);
        mpfr_init(r4775297);
        mpfr_init(r4775298);
        mpfr_init(r4775299);
        mpfr_init(r4775300);
        mpfr_init(r4775301);
        mpfr_init(r4775302);
        mpfr_init(r4775303);
        mpfr_init(r4775304);
        mpfr_init(r4775305);
        mpfr_init(r4775306);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r4775262, b, MPFR_RNDN);
        ;
        mpfr_set_si(r4775264, mpfr_cmp(r4775262, r4775263) <= 0, MPFR_RNDN);
        mpfr_set_d(r4775265, c, MPFR_RNDN);
        mpfr_div(r4775266, r4775265, r4775262, MPFR_RNDN);
        mpfr_neg(r4775267, r4775262, MPFR_RNDN);
        mpfr_sub(r4775268, r4775262, r4775267, MPFR_RNDN);
        mpfr_set_d(r4775269, a, MPFR_RNDN);
        mpfr_add(r4775270, r4775269, r4775269, MPFR_RNDN);
        mpfr_div(r4775271, r4775268, r4775270, MPFR_RNDN);
        mpfr_sub(r4775272, r4775266, r4775271, MPFR_RNDN);
        ;
        mpfr_set_si(r4775274, mpfr_cmp(r4775262, r4775273) <= 0, MPFR_RNDN);
        mpfr_sqr(r4775275, r4775262, MPFR_RNDN);
        ;
        mpfr_mul(r4775277, r4775269, r4775265, MPFR_RNDN);
        mpfr_mul(r4775278, r4775276, r4775277, MPFR_RNDN);
        mpfr_sub(r4775279, r4775275, r4775278, MPFR_RNDN);
        mpfr_sqrt(r4775280, r4775279, MPFR_RNDN);
        mpfr_add(r4775281, r4775267, r4775280, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r4775284, r4775283, r4775269, MPFR_RNDN);
        mpfr_div(r4775285, r4775282, r4775284, MPFR_RNDN);
        mpfr_mul(r4775286, r4775281, r4775285, MPFR_RNDN);
        ;
        mpfr_set_si(r4775288, mpfr_cmp(r4775262, r4775287) <= 0, MPFR_RNDN);
        mpfr_div(r4775289, r4775276, r4775283, MPFR_RNDN);
        mpfr_mul(r4775290, r4775262, r4775262, MPFR_RNDN);
        mpfr_mul(r4775291, r4775265, r4775269, MPFR_RNDN);
        mpfr_mul(r4775292, r4775276, r4775291, MPFR_RNDN);
        mpfr_sub(r4775293, r4775290, r4775292, MPFR_RNDN);
        mpfr_sqrt(r4775294, r4775293, MPFR_RNDN);
        mpfr_sub(r4775295, r4775267, r4775294, MPFR_RNDN);
        mpfr_div(r4775296, r4775265, r4775295, MPFR_RNDN);
        mpfr_mul(r4775297, r4775289, r4775296, MPFR_RNDN);
        mpfr_div(r4775298, r4775265, r4775283, MPFR_RNDN);
        mpfr_div(r4775299, r4775262, r4775265, MPFR_RNDN);
        mpfr_div(r4775300, r4775269, r4775299, MPFR_RNDN);
        mpfr_sub(r4775301, r4775300, r4775262, MPFR_RNDN);
        mpfr_div(r4775302, r4775298, r4775301, MPFR_RNDN);
        mpfr_mul(r4775303, r4775302, r4775289, MPFR_RNDN);
        if (mpfr_get_si(r4775288, MPFR_RNDN)) { mpfr_set(r4775304, r4775297, MPFR_RNDN); } else { mpfr_set(r4775304, r4775303, MPFR_RNDN); };
        if (mpfr_get_si(r4775274, MPFR_RNDN)) { mpfr_set(r4775305, r4775286, MPFR_RNDN); } else { mpfr_set(r4775305, r4775304, MPFR_RNDN); };
        if (mpfr_get_si(r4775264, MPFR_RNDN)) { mpfr_set(r4775306, r4775272, MPFR_RNDN); } else { mpfr_set(r4775306, r4775305, MPFR_RNDN); };
        return mpfr_get_d(r4775306, MPFR_RNDN);
}

static mpfr_t r4775307, r4775308, r4775309, r4775310, r4775311, r4775312, r4775313, r4775314, r4775315, r4775316, r4775317, r4775318, r4775319, r4775320, r4775321, r4775322, r4775323, r4775324, r4775325, r4775326, r4775327, r4775328, r4775329, r4775330, r4775331, r4775332, r4775333, r4775334, r4775335, r4775336, r4775337, r4775338, r4775339, r4775340, r4775341, r4775342, r4775343, r4775344, r4775345, r4775346, r4775347, r4775348, r4775349, r4775350, r4775351;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r4775307);
        mpfr_init_set_str(r4775308, "-1.7321058520772784e+67", 10, MPFR_RNDN);
        mpfr_init(r4775309);
        mpfr_init(r4775310);
        mpfr_init(r4775311);
        mpfr_init(r4775312);
        mpfr_init(r4775313);
        mpfr_init(r4775314);
        mpfr_init(r4775315);
        mpfr_init(r4775316);
        mpfr_init(r4775317);
        mpfr_init_set_str(r4775318, "2.4619882133710072e-287", 10, MPFR_RNDN);
        mpfr_init(r4775319);
        mpfr_init(r4775320);
        mpfr_init_set_str(r4775321, "4", 10, MPFR_RNDN);
        mpfr_init(r4775322);
        mpfr_init(r4775323);
        mpfr_init(r4775324);
        mpfr_init(r4775325);
        mpfr_init(r4775326);
        mpfr_init_set_str(r4775327, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r4775328, "2", 10, MPFR_RNDN);
        mpfr_init(r4775329);
        mpfr_init(r4775330);
        mpfr_init(r4775331);
        mpfr_init_set_str(r4775332, "2.829973829663237e+105", 10, MPFR_RNDN);
        mpfr_init(r4775333);
        mpfr_init(r4775334);
        mpfr_init(r4775335);
        mpfr_init(r4775336);
        mpfr_init(r4775337);
        mpfr_init(r4775338);
        mpfr_init(r4775339);
        mpfr_init(r4775340);
        mpfr_init(r4775341);
        mpfr_init(r4775342);
        mpfr_init(r4775343);
        mpfr_init(r4775344);
        mpfr_init(r4775345);
        mpfr_init(r4775346);
        mpfr_init(r4775347);
        mpfr_init(r4775348);
        mpfr_init(r4775349);
        mpfr_init(r4775350);
        mpfr_init(r4775351);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r4775307, b, MPFR_RNDN);
        ;
        mpfr_set_si(r4775309, mpfr_cmp(r4775307, r4775308) <= 0, MPFR_RNDN);
        mpfr_set_d(r4775310, c, MPFR_RNDN);
        mpfr_div(r4775311, r4775310, r4775307, MPFR_RNDN);
        mpfr_neg(r4775312, r4775307, MPFR_RNDN);
        mpfr_sub(r4775313, r4775307, r4775312, MPFR_RNDN);
        mpfr_set_d(r4775314, a, MPFR_RNDN);
        mpfr_add(r4775315, r4775314, r4775314, MPFR_RNDN);
        mpfr_div(r4775316, r4775313, r4775315, MPFR_RNDN);
        mpfr_sub(r4775317, r4775311, r4775316, MPFR_RNDN);
        ;
        mpfr_set_si(r4775319, mpfr_cmp(r4775307, r4775318) <= 0, MPFR_RNDN);
        mpfr_sqr(r4775320, r4775307, MPFR_RNDN);
        ;
        mpfr_mul(r4775322, r4775314, r4775310, MPFR_RNDN);
        mpfr_mul(r4775323, r4775321, r4775322, MPFR_RNDN);
        mpfr_sub(r4775324, r4775320, r4775323, MPFR_RNDN);
        mpfr_sqrt(r4775325, r4775324, MPFR_RNDN);
        mpfr_add(r4775326, r4775312, r4775325, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r4775329, r4775328, r4775314, MPFR_RNDN);
        mpfr_div(r4775330, r4775327, r4775329, MPFR_RNDN);
        mpfr_mul(r4775331, r4775326, r4775330, MPFR_RNDN);
        ;
        mpfr_set_si(r4775333, mpfr_cmp(r4775307, r4775332) <= 0, MPFR_RNDN);
        mpfr_div(r4775334, r4775321, r4775328, MPFR_RNDN);
        mpfr_mul(r4775335, r4775307, r4775307, MPFR_RNDN);
        mpfr_mul(r4775336, r4775310, r4775314, MPFR_RNDN);
        mpfr_mul(r4775337, r4775321, r4775336, MPFR_RNDN);
        mpfr_sub(r4775338, r4775335, r4775337, MPFR_RNDN);
        mpfr_sqrt(r4775339, r4775338, MPFR_RNDN);
        mpfr_sub(r4775340, r4775312, r4775339, MPFR_RNDN);
        mpfr_div(r4775341, r4775310, r4775340, MPFR_RNDN);
        mpfr_mul(r4775342, r4775334, r4775341, MPFR_RNDN);
        mpfr_div(r4775343, r4775310, r4775328, MPFR_RNDN);
        mpfr_div(r4775344, r4775307, r4775310, MPFR_RNDN);
        mpfr_div(r4775345, r4775314, r4775344, MPFR_RNDN);
        mpfr_sub(r4775346, r4775345, r4775307, MPFR_RNDN);
        mpfr_div(r4775347, r4775343, r4775346, MPFR_RNDN);
        mpfr_mul(r4775348, r4775347, r4775334, MPFR_RNDN);
        if (mpfr_get_si(r4775333, MPFR_RNDN)) { mpfr_set(r4775349, r4775342, MPFR_RNDN); } else { mpfr_set(r4775349, r4775348, MPFR_RNDN); };
        if (mpfr_get_si(r4775319, MPFR_RNDN)) { mpfr_set(r4775350, r4775331, MPFR_RNDN); } else { mpfr_set(r4775350, r4775349, MPFR_RNDN); };
        if (mpfr_get_si(r4775309, MPFR_RNDN)) { mpfr_set(r4775351, r4775317, MPFR_RNDN); } else { mpfr_set(r4775351, r4775350, MPFR_RNDN); };
        return mpfr_get_d(r4775351, MPFR_RNDN);
}

