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

char *name = "Statistics.Sample:robustSumVarWeighted from math-functions-0.1.5.2";

double f_if(float x, float y, float z) {
        float r40344 = x;
        float r40345 = y;
        float r40346 = z;
        float r40347 = r40345 * r40346;
        float r40348 = r40347 * r40346;
        float r40349 = r40344 + r40348;
        return r40349;
}

double f_id(double x, double y, double z) {
        double r40350 = x;
        double r40351 = y;
        double r40352 = z;
        double r40353 = r40351 * r40352;
        double r40354 = r40353 * r40352;
        double r40355 = r40350 + r40354;
        return r40355;
}


double f_of(float x, float y, float z) {
        float r40356 = x;
        float r40357 = y;
        float r40358 = z;
        float r40359 = r40357 * r40358;
        float r40360 = r40359 * r40358;
        float r40361 = r40356 + r40360;
        return r40361;
}

double f_od(double x, double y, double z) {
        double r40362 = x;
        double r40363 = y;
        double r40364 = z;
        double r40365 = r40363 * r40364;
        double r40366 = r40365 * r40364;
        double r40367 = r40362 + r40366;
        return r40367;
}

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 r40368, r40369, r40370, r40371, r40372, r40373;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r40368);
        mpfr_init(r40369);
        mpfr_init(r40370);
        mpfr_init(r40371);
        mpfr_init(r40372);
        mpfr_init(r40373);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r40368, x, MPFR_RNDN);
        mpfr_set_d(r40369, y, MPFR_RNDN);
        mpfr_set_d(r40370, z, MPFR_RNDN);
        mpfr_mul(r40371, r40369, r40370, MPFR_RNDN);
        mpfr_mul(r40372, r40371, r40370, MPFR_RNDN);
        mpfr_add(r40373, r40368, r40372, MPFR_RNDN);
        return mpfr_get_d(r40373, MPFR_RNDN);
}

static mpfr_t r40374, r40375, r40376, r40377, r40378, r40379;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40374);
        mpfr_init(r40375);
        mpfr_init(r40376);
        mpfr_init(r40377);
        mpfr_init(r40378);
        mpfr_init(r40379);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r40374, x, MPFR_RNDN);
        mpfr_set_d(r40375, y, MPFR_RNDN);
        mpfr_set_d(r40376, z, MPFR_RNDN);
        mpfr_mul(r40377, r40375, r40376, MPFR_RNDN);
        mpfr_mul(r40378, r40377, r40376, MPFR_RNDN);
        mpfr_add(r40379, r40374, r40378, MPFR_RNDN);
        return mpfr_get_d(r40379, MPFR_RNDN);
}

static mpfr_t r40380, r40381, r40382, r40383, r40384, r40385;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40380);
        mpfr_init(r40381);
        mpfr_init(r40382);
        mpfr_init(r40383);
        mpfr_init(r40384);
        mpfr_init(r40385);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r40380, x, MPFR_RNDN);
        mpfr_set_d(r40381, y, MPFR_RNDN);
        mpfr_set_d(r40382, z, MPFR_RNDN);
        mpfr_mul(r40383, r40381, r40382, MPFR_RNDN);
        mpfr_mul(r40384, r40383, r40382, MPFR_RNDN);
        mpfr_add(r40385, r40380, r40384, MPFR_RNDN);
        return mpfr_get_d(r40385, MPFR_RNDN);
}

