#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 r39968 = x;
        float r39969 = y;
        float r39970 = r39969 - r39968;
        float r39971 = z;
        float r39972 = r39970 / r39971;
        float r39973 = r39968 + r39972;
        return r39973;
}

double f_id(double x, double y, double z) {
        double r39974 = x;
        double r39975 = y;
        double r39976 = r39975 - r39974;
        double r39977 = z;
        double r39978 = r39976 / r39977;
        double r39979 = r39974 + r39978;
        return r39979;
}


double f_of(float x, float y, float z) {
        float r39980 = x;
        float r39981 = y;
        float r39982 = r39981 - r39980;
        float r39983 = z;
        float r39984 = r39982 / r39983;
        float r39985 = r39980 + r39984;
        return r39985;
}

double f_od(double x, double y, double z) {
        double r39986 = x;
        double r39987 = y;
        double r39988 = r39987 - r39986;
        double r39989 = z;
        double r39990 = r39988 / r39989;
        double r39991 = r39986 + r39990;
        return r39991;
}

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 r39992, r39993, r39994, r39995, r39996, r39997;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r39992);
        mpfr_init(r39993);
        mpfr_init(r39994);
        mpfr_init(r39995);
        mpfr_init(r39996);
        mpfr_init(r39997);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r39992, x, MPFR_RNDN);
        mpfr_set_d(r39993, y, MPFR_RNDN);
        mpfr_sub(r39994, r39993, r39992, MPFR_RNDN);
        mpfr_set_d(r39995, z, MPFR_RNDN);
        mpfr_div(r39996, r39994, r39995, MPFR_RNDN);
        mpfr_add(r39997, r39992, r39996, MPFR_RNDN);
        return mpfr_get_d(r39997, MPFR_RNDN);
}

static mpfr_t r39998, r39999, r40000, r40001, r40002, r40003;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r39998);
        mpfr_init(r39999);
        mpfr_init(r40000);
        mpfr_init(r40001);
        mpfr_init(r40002);
        mpfr_init(r40003);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r39998, x, MPFR_RNDN);
        mpfr_set_d(r39999, y, MPFR_RNDN);
        mpfr_sub(r40000, r39999, r39998, MPFR_RNDN);
        mpfr_set_d(r40001, z, MPFR_RNDN);
        mpfr_div(r40002, r40000, r40001, MPFR_RNDN);
        mpfr_add(r40003, r39998, r40002, MPFR_RNDN);
        return mpfr_get_d(r40003, MPFR_RNDN);
}

static mpfr_t r40004, r40005, r40006, r40007, r40008, r40009;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40004);
        mpfr_init(r40005);
        mpfr_init(r40006);
        mpfr_init(r40007);
        mpfr_init(r40008);
        mpfr_init(r40009);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r40004, x, MPFR_RNDN);
        mpfr_set_d(r40005, y, MPFR_RNDN);
        mpfr_sub(r40006, r40005, r40004, MPFR_RNDN);
        mpfr_set_d(r40007, z, MPFR_RNDN);
        mpfr_div(r40008, r40006, r40007, MPFR_RNDN);
        mpfr_add(r40009, r40004, r40008, MPFR_RNDN);
        return mpfr_get_d(r40009, MPFR_RNDN);
}

