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

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

double f_if(float x, float y, float z) {
        float r36624 = x;
        float r36625 = y;
        float r36626 = r36625 - r36624;
        float r36627 = z;
        float r36628 = r36626 / r36627;
        float r36629 = r36624 + r36628;
        return r36629;
}

double f_id(double x, double y, double z) {
        double r36630 = x;
        double r36631 = y;
        double r36632 = r36631 - r36630;
        double r36633 = z;
        double r36634 = r36632 / r36633;
        double r36635 = r36630 + r36634;
        return r36635;
}


double f_of(float x, float y, float z) {
        float r36636 = x;
        float r36637 = y;
        float r36638 = r36637 - r36636;
        float r36639 = z;
        float r36640 = r36638 / r36639;
        float r36641 = r36636 + r36640;
        return r36641;
}

double f_od(double x, double y, double z) {
        double r36642 = x;
        double r36643 = y;
        double r36644 = r36643 - r36642;
        double r36645 = z;
        double r36646 = r36644 / r36645;
        double r36647 = r36642 + r36646;
        return r36647;
}

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 r36648, r36649, r36650, r36651, r36652, r36653;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r36648);
        mpfr_init(r36649);
        mpfr_init(r36650);
        mpfr_init(r36651);
        mpfr_init(r36652);
        mpfr_init(r36653);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r36648, x, MPFR_RNDN);
        mpfr_set_d(r36649, y, MPFR_RNDN);
        mpfr_sub(r36650, r36649, r36648, MPFR_RNDN);
        mpfr_set_d(r36651, z, MPFR_RNDN);
        mpfr_div(r36652, r36650, r36651, MPFR_RNDN);
        mpfr_add(r36653, r36648, r36652, MPFR_RNDN);
        return mpfr_get_d(r36653, MPFR_RNDN);
}

static mpfr_t r36654, r36655, r36656, r36657, r36658, r36659;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r36654);
        mpfr_init(r36655);
        mpfr_init(r36656);
        mpfr_init(r36657);
        mpfr_init(r36658);
        mpfr_init(r36659);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r36654, x, MPFR_RNDN);
        mpfr_set_d(r36655, y, MPFR_RNDN);
        mpfr_sub(r36656, r36655, r36654, MPFR_RNDN);
        mpfr_set_d(r36657, z, MPFR_RNDN);
        mpfr_div(r36658, r36656, r36657, MPFR_RNDN);
        mpfr_add(r36659, r36654, r36658, MPFR_RNDN);
        return mpfr_get_d(r36659, MPFR_RNDN);
}

static mpfr_t r36660, r36661, r36662, r36663, r36664, r36665;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r36660);
        mpfr_init(r36661);
        mpfr_init(r36662);
        mpfr_init(r36663);
        mpfr_init(r36664);
        mpfr_init(r36665);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r36660, x, MPFR_RNDN);
        mpfr_set_d(r36661, y, MPFR_RNDN);
        mpfr_sub(r36662, r36661, r36660, MPFR_RNDN);
        mpfr_set_d(r36663, z, MPFR_RNDN);
        mpfr_div(r36664, r36662, r36663, MPFR_RNDN);
        mpfr_add(r36665, r36660, r36664, MPFR_RNDN);
        return mpfr_get_d(r36665, MPFR_RNDN);
}

