#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 r36582 = x;
        float r36583 = y;
        float r36584 = z;
        float r36585 = r36583 * r36584;
        float r36586 = r36585 * r36584;
        float r36587 = r36582 + r36586;
        return r36587;
}

double f_id(double x, double y, double z) {
        double r36588 = x;
        double r36589 = y;
        double r36590 = z;
        double r36591 = r36589 * r36590;
        double r36592 = r36591 * r36590;
        double r36593 = r36588 + r36592;
        return r36593;
}


double f_of(float x, float y, float z) {
        float r36594 = x;
        float r36595 = y;
        float r36596 = z;
        float r36597 = r36595 * r36596;
        float r36598 = r36597 * r36596;
        float r36599 = r36594 + r36598;
        return r36599;
}

double f_od(double x, double y, double z) {
        double r36600 = x;
        double r36601 = y;
        double r36602 = z;
        double r36603 = r36601 * r36602;
        double r36604 = r36603 * r36602;
        double r36605 = r36600 + r36604;
        return r36605;
}

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 r36606, r36607, r36608, r36609, r36610, r36611;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r36606);
        mpfr_init(r36607);
        mpfr_init(r36608);
        mpfr_init(r36609);
        mpfr_init(r36610);
        mpfr_init(r36611);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r36606, x, MPFR_RNDN);
        mpfr_set_d(r36607, y, MPFR_RNDN);
        mpfr_set_d(r36608, z, MPFR_RNDN);
        mpfr_mul(r36609, r36607, r36608, MPFR_RNDN);
        mpfr_mul(r36610, r36609, r36608, MPFR_RNDN);
        mpfr_add(r36611, r36606, r36610, MPFR_RNDN);
        return mpfr_get_d(r36611, MPFR_RNDN);
}

static mpfr_t r36612, r36613, r36614, r36615, r36616, r36617;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r36612);
        mpfr_init(r36613);
        mpfr_init(r36614);
        mpfr_init(r36615);
        mpfr_init(r36616);
        mpfr_init(r36617);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r36612, x, MPFR_RNDN);
        mpfr_set_d(r36613, y, MPFR_RNDN);
        mpfr_set_d(r36614, z, MPFR_RNDN);
        mpfr_mul(r36615, r36613, r36614, MPFR_RNDN);
        mpfr_mul(r36616, r36615, r36614, MPFR_RNDN);
        mpfr_add(r36617, r36612, r36616, MPFR_RNDN);
        return mpfr_get_d(r36617, MPFR_RNDN);
}

static mpfr_t r36618, r36619, r36620, r36621, r36622, r36623;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r36618);
        mpfr_init(r36619);
        mpfr_init(r36620);
        mpfr_init(r36621);
        mpfr_init(r36622);
        mpfr_init(r36623);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r36618, x, MPFR_RNDN);
        mpfr_set_d(r36619, y, MPFR_RNDN);
        mpfr_set_d(r36620, z, MPFR_RNDN);
        mpfr_mul(r36621, r36619, r36620, MPFR_RNDN);
        mpfr_mul(r36622, r36621, r36620, MPFR_RNDN);
        mpfr_add(r36623, r36618, r36622, MPFR_RNDN);
        return mpfr_get_d(r36623, MPFR_RNDN);
}

