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

char *name = "Statistics.Correlation.Kendall:numOfTiesBy from math-functions-0.1.5.2";

double f_if(float x) {
        float r37406 = x;
        float r37407 = 1.0f;
        float r37408 = r37406 - r37407;
        float r37409 = r37406 * r37408;
        return r37409;
}

double f_id(double x) {
        double r37410 = x;
        double r37411 = 1.0;
        double r37412 = r37410 - r37411;
        double r37413 = r37410 * r37412;
        return r37413;
}


double f_of(float x) {
        float r37414 = x;
        float r37415 = 1.0f;
        float r37416 = r37414 - r37415;
        float r37417 = r37414 * r37416;
        return r37417;
}

double f_od(double x) {
        double r37418 = x;
        double r37419 = 1.0;
        double r37420 = r37418 - r37419;
        double r37421 = r37418 * r37420;
        return r37421;
}

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 r37422, r37423, r37424, r37425;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r37422);
        mpfr_init_set_str(r37423, "1.0", 10, MPFR_RNDN);
        mpfr_init(r37424);
        mpfr_init(r37425);
}

double f_im(double x) {
        mpfr_set_d(r37422, x, MPFR_RNDN);
        ;
        mpfr_sub(r37424, r37422, r37423, MPFR_RNDN);
        mpfr_mul(r37425, r37422, r37424, MPFR_RNDN);
        return mpfr_get_d(r37425, MPFR_RNDN);
}

static mpfr_t r37426, r37427, r37428, r37429;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r37426);
        mpfr_init_set_str(r37427, "1.0", 10, MPFR_RNDN);
        mpfr_init(r37428);
        mpfr_init(r37429);
}

double f_fm(double x) {
        mpfr_set_d(r37426, x, MPFR_RNDN);
        ;
        mpfr_sub(r37428, r37426, r37427, MPFR_RNDN);
        mpfr_mul(r37429, r37426, r37428, MPFR_RNDN);
        return mpfr_get_d(r37429, MPFR_RNDN);
}

static mpfr_t r37430, r37431, r37432, r37433;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r37430);
        mpfr_init_set_str(r37431, "1.0", 10, MPFR_RNDN);
        mpfr_init(r37432);
        mpfr_init(r37433);
}

double f_dm(double x) {
        mpfr_set_d(r37430, x, MPFR_RNDN);
        ;
        mpfr_sub(r37432, r37430, r37431, MPFR_RNDN);
        mpfr_mul(r37433, r37430, r37432, MPFR_RNDN);
        return mpfr_get_d(r37433, MPFR_RNDN);
}

