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

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

double f_if(float x, float y) {
        float r40010 = x;
        float r40011 = y;
        float r40012 = r40011 * r40011;
        float r40013 = r40010 / r40012;
        float r40014 = 3.0;
        float r40015 = r40013 - r40014;
        return r40015;
}

double f_id(double x, double y) {
        double r40016 = x;
        double r40017 = y;
        double r40018 = r40017 * r40017;
        double r40019 = r40016 / r40018;
        double r40020 = 3.0;
        double r40021 = r40019 - r40020;
        return r40021;
}


double f_of(float x, float y) {
        float r40022 = x;
        float r40023 = y;
        float r40024 = r40022 / r40023;
        float r40025 = r40024 / r40023;
        float r40026 = 3.0;
        float r40027 = r40025 - r40026;
        return r40027;
}

double f_od(double x, double y) {
        double r40028 = x;
        double r40029 = y;
        double r40030 = r40028 / r40029;
        double r40031 = r40030 / r40029;
        double r40032 = 3.0;
        double r40033 = r40031 - r40032;
        return r40033;
}

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 r40034, r40035, r40036, r40037, r40038, r40039;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r40034);
        mpfr_init(r40035);
        mpfr_init(r40036);
        mpfr_init(r40037);
        mpfr_init_set_str(r40038, "3.0", 10, MPFR_RNDN);
        mpfr_init(r40039);
}

double f_im(double x, double y) {
        mpfr_set_d(r40034, x, MPFR_RNDN);
        mpfr_set_d(r40035, y, MPFR_RNDN);
        mpfr_mul(r40036, r40035, r40035, MPFR_RNDN);
        mpfr_div(r40037, r40034, r40036, MPFR_RNDN);
        ;
        mpfr_sub(r40039, r40037, r40038, MPFR_RNDN);
        return mpfr_get_d(r40039, MPFR_RNDN);
}

static mpfr_t r40040, r40041, r40042, r40043, r40044, r40045;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40040);
        mpfr_init(r40041);
        mpfr_init(r40042);
        mpfr_init(r40043);
        mpfr_init_set_str(r40044, "3.0", 10, MPFR_RNDN);
        mpfr_init(r40045);
}

double f_fm(double x, double y) {
        mpfr_set_d(r40040, x, MPFR_RNDN);
        mpfr_set_d(r40041, y, MPFR_RNDN);
        mpfr_div(r40042, r40040, r40041, MPFR_RNDN);
        mpfr_div(r40043, r40042, r40041, MPFR_RNDN);
        ;
        mpfr_sub(r40045, r40043, r40044, MPFR_RNDN);
        return mpfr_get_d(r40045, MPFR_RNDN);
}

static mpfr_t r40046, r40047, r40048, r40049, r40050, r40051;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40046);
        mpfr_init(r40047);
        mpfr_init(r40048);
        mpfr_init(r40049);
        mpfr_init_set_str(r40050, "3.0", 10, MPFR_RNDN);
        mpfr_init(r40051);
}

double f_dm(double x, double y) {
        mpfr_set_d(r40046, x, MPFR_RNDN);
        mpfr_set_d(r40047, y, MPFR_RNDN);
        mpfr_div(r40048, r40046, r40047, MPFR_RNDN);
        mpfr_div(r40049, r40048, r40047, MPFR_RNDN);
        ;
        mpfr_sub(r40051, r40049, r40050, MPFR_RNDN);
        return mpfr_get_d(r40051, MPFR_RNDN);
}

