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

char *name = "triangle7";

double f_if(float a, float b, float c) {
        float r19343 = a;
        float r19344 = b;
        float r19345 = r19343 + r19344;
        float r19346 = c;
        float r19347 = r19345 + r19346;
        float r19348 = 2.0f;
        float r19349 = r19347 / r19348;
        float r19350 = r19349 - r19343;
        float r19351 = r19349 * r19350;
        float r19352 = r19349 - r19344;
        float r19353 = r19351 * r19352;
        float r19354 = r19349 - r19346;
        float r19355 = r19353 * r19354;
        float r19356 = sqrt(r19355);
        return r19356;
}

double f_id(double a, double b, double c) {
        double r19357 = a;
        double r19358 = b;
        double r19359 = r19357 + r19358;
        double r19360 = c;
        double r19361 = r19359 + r19360;
        double r19362 = 2.0;
        double r19363 = r19361 / r19362;
        double r19364 = r19363 - r19357;
        double r19365 = r19363 * r19364;
        double r19366 = r19363 - r19358;
        double r19367 = r19365 * r19366;
        double r19368 = r19363 - r19360;
        double r19369 = r19367 * r19368;
        double r19370 = sqrt(r19369);
        return r19370;
}


double f_of(float a, float b, float c) {
        float r19371 = 0.5f;
        float r19372 = r19371 * r19371;
        float r19373 = c;
        float r19374 = a;
        float r19375 = r19373 - r19374;
        float r19376 = b;
        float r19377 = r19375 + r19376;
        float r19378 = r19372 * r19377;
        float r19379 = r19374 - r19373;
        float r19380 = r19376 + r19379;
        float r19381 = r19374 - r19376;
        float r19382 = r19381 + r19373;
        float r19383 = r19380 * r19382;
        float r19384 = r19374 + r19373;
        float r19385 = r19376 + r19384;
        float r19386 = 2.0f;
        float r19387 = r19386 / r19371;
        float r19388 = r19385 / r19387;
        float r19389 = r19383 * r19388;
        float r19390 = r19378 * r19389;
        float r19391 = sqrt(r19390);
        return r19391;
}

double f_od(double a, double b, double c) {
        double r19392 = 0.5;
        double r19393 = r19392 * r19392;
        double r19394 = c;
        double r19395 = a;
        double r19396 = r19394 - r19395;
        double r19397 = b;
        double r19398 = r19396 + r19397;
        double r19399 = r19393 * r19398;
        double r19400 = r19395 - r19394;
        double r19401 = r19397 + r19400;
        double r19402 = r19395 - r19397;
        double r19403 = r19402 + r19394;
        double r19404 = r19401 * r19403;
        double r19405 = r19395 + r19394;
        double r19406 = r19397 + r19405;
        double r19407 = 2.0;
        double r19408 = r19407 / r19392;
        double r19409 = r19406 / r19408;
        double r19410 = r19404 * r19409;
        double r19411 = r19399 * r19410;
        double r19412 = sqrt(r19411);
        return r19412;
}

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 r19413, r19414, r19415, r19416, r19417, r19418, r19419, r19420, r19421, r19422, r19423, r19424, r19425, r19426;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r19413);
        mpfr_init(r19414);
        mpfr_init(r19415);
        mpfr_init(r19416);
        mpfr_init(r19417);
        mpfr_init_set_str(r19418, "2", 10, MPFR_RNDN);
        mpfr_init(r19419);
        mpfr_init(r19420);
        mpfr_init(r19421);
        mpfr_init(r19422);
        mpfr_init(r19423);
        mpfr_init(r19424);
        mpfr_init(r19425);
        mpfr_init(r19426);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r19413, a, MPFR_RNDN);
        mpfr_set_d(r19414, b, MPFR_RNDN);
        mpfr_add(r19415, r19413, r19414, MPFR_RNDN);
        mpfr_set_d(r19416, c, MPFR_RNDN);
        mpfr_add(r19417, r19415, r19416, MPFR_RNDN);
        ;
        mpfr_div(r19419, r19417, r19418, MPFR_RNDN);
        mpfr_sub(r19420, r19419, r19413, MPFR_RNDN);
        mpfr_mul(r19421, r19419, r19420, MPFR_RNDN);
        mpfr_sub(r19422, r19419, r19414, MPFR_RNDN);
        mpfr_mul(r19423, r19421, r19422, MPFR_RNDN);
        mpfr_sub(r19424, r19419, r19416, MPFR_RNDN);
        mpfr_mul(r19425, r19423, r19424, MPFR_RNDN);
        mpfr_sqrt(r19426, r19425, MPFR_RNDN);
        return mpfr_get_d(r19426, MPFR_RNDN);
}

static mpfr_t r19427, r19428, r19429, r19430, r19431, r19432, r19433, r19434, r19435, r19436, r19437, r19438, r19439, r19440, r19441, r19442, r19443, r19444, r19445, r19446, r19447;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r19427, "1/2", 10, MPFR_RNDN);
        mpfr_init(r19428);
        mpfr_init(r19429);
        mpfr_init(r19430);
        mpfr_init(r19431);
        mpfr_init(r19432);
        mpfr_init(r19433);
        mpfr_init(r19434);
        mpfr_init(r19435);
        mpfr_init(r19436);
        mpfr_init(r19437);
        mpfr_init(r19438);
        mpfr_init(r19439);
        mpfr_init(r19440);
        mpfr_init(r19441);
        mpfr_init_set_str(r19442, "2", 10, MPFR_RNDN);
        mpfr_init(r19443);
        mpfr_init(r19444);
        mpfr_init(r19445);
        mpfr_init(r19446);
        mpfr_init(r19447);
}

double f_fm(double a, double b, double c) {
        ;
        mpfr_mul(r19428, r19427, r19427, MPFR_RNDN);
        mpfr_set_d(r19429, c, MPFR_RNDN);
        mpfr_set_d(r19430, a, MPFR_RNDN);
        mpfr_sub(r19431, r19429, r19430, MPFR_RNDN);
        mpfr_set_d(r19432, b, MPFR_RNDN);
        mpfr_add(r19433, r19431, r19432, MPFR_RNDN);
        mpfr_mul(r19434, r19428, r19433, MPFR_RNDN);
        mpfr_sub(r19435, r19430, r19429, MPFR_RNDN);
        mpfr_add(r19436, r19432, r19435, MPFR_RNDN);
        mpfr_sub(r19437, r19430, r19432, MPFR_RNDN);
        mpfr_add(r19438, r19437, r19429, MPFR_RNDN);
        mpfr_mul(r19439, r19436, r19438, MPFR_RNDN);
        mpfr_add(r19440, r19430, r19429, MPFR_RNDN);
        mpfr_add(r19441, r19432, r19440, MPFR_RNDN);
        ;
        mpfr_div(r19443, r19442, r19427, MPFR_RNDN);
        mpfr_div(r19444, r19441, r19443, MPFR_RNDN);
        mpfr_mul(r19445, r19439, r19444, MPFR_RNDN);
        mpfr_mul(r19446, r19434, r19445, MPFR_RNDN);
        mpfr_sqrt(r19447, r19446, MPFR_RNDN);
        return mpfr_get_d(r19447, MPFR_RNDN);
}

static mpfr_t r19448, r19449, r19450, r19451, r19452, r19453, r19454, r19455, r19456, r19457, r19458, r19459, r19460, r19461, r19462, r19463, r19464, r19465, r19466, r19467, r19468;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r19448, "1/2", 10, MPFR_RNDN);
        mpfr_init(r19449);
        mpfr_init(r19450);
        mpfr_init(r19451);
        mpfr_init(r19452);
        mpfr_init(r19453);
        mpfr_init(r19454);
        mpfr_init(r19455);
        mpfr_init(r19456);
        mpfr_init(r19457);
        mpfr_init(r19458);
        mpfr_init(r19459);
        mpfr_init(r19460);
        mpfr_init(r19461);
        mpfr_init(r19462);
        mpfr_init_set_str(r19463, "2", 10, MPFR_RNDN);
        mpfr_init(r19464);
        mpfr_init(r19465);
        mpfr_init(r19466);
        mpfr_init(r19467);
        mpfr_init(r19468);
}

double f_dm(double a, double b, double c) {
        ;
        mpfr_mul(r19449, r19448, r19448, MPFR_RNDN);
        mpfr_set_d(r19450, c, MPFR_RNDN);
        mpfr_set_d(r19451, a, MPFR_RNDN);
        mpfr_sub(r19452, r19450, r19451, MPFR_RNDN);
        mpfr_set_d(r19453, b, MPFR_RNDN);
        mpfr_add(r19454, r19452, r19453, MPFR_RNDN);
        mpfr_mul(r19455, r19449, r19454, MPFR_RNDN);
        mpfr_sub(r19456, r19451, r19450, MPFR_RNDN);
        mpfr_add(r19457, r19453, r19456, MPFR_RNDN);
        mpfr_sub(r19458, r19451, r19453, MPFR_RNDN);
        mpfr_add(r19459, r19458, r19450, MPFR_RNDN);
        mpfr_mul(r19460, r19457, r19459, MPFR_RNDN);
        mpfr_add(r19461, r19451, r19450, MPFR_RNDN);
        mpfr_add(r19462, r19453, r19461, MPFR_RNDN);
        ;
        mpfr_div(r19464, r19463, r19448, MPFR_RNDN);
        mpfr_div(r19465, r19462, r19464, MPFR_RNDN);
        mpfr_mul(r19466, r19460, r19465, MPFR_RNDN);
        mpfr_mul(r19467, r19455, r19466, MPFR_RNDN);
        mpfr_sqrt(r19468, r19467, MPFR_RNDN);
        return mpfr_get_d(r19468, MPFR_RNDN);
}

