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

char *name = "fabs fraction 2";

double f_if(float a, float b) {
        float r20679 = a;
        float r20680 = b;
        float r20681 = r20679 - r20680;
        float r20682 = fabs(r20681);
        float r20683 = 2.0f;
        float r20684 = r20682 / r20683;
        return r20684;
}

double f_id(double a, double b) {
        double r20685 = a;
        double r20686 = b;
        double r20687 = r20685 - r20686;
        double r20688 = fabs(r20687);
        double r20689 = 2.0;
        double r20690 = r20688 / r20689;
        return r20690;
}


double f_of(float a, float b) {
        float r20691 = a;
        float r20692 = b;
        float r20693 = r20691 - r20692;
        float r20694 = fabs(r20693);
        float r20695 = 2.0f;
        float r20696 = r20694 / r20695;
        return r20696;
}

double f_od(double a, double b) {
        double r20697 = a;
        double r20698 = b;
        double r20699 = r20697 - r20698;
        double r20700 = fabs(r20699);
        double r20701 = 2.0;
        double r20702 = r20700 / r20701;
        return r20702;
}

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 r20703, r20704, r20705, r20706, r20707, r20708;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r20703);
        mpfr_init(r20704);
        mpfr_init(r20705);
        mpfr_init(r20706);
        mpfr_init_set_str(r20707, "2", 10, MPFR_RNDN);
        mpfr_init(r20708);
}

double f_im(double a, double b) {
        mpfr_set_d(r20703, a, MPFR_RNDN);
        mpfr_set_d(r20704, b, MPFR_RNDN);
        mpfr_sub(r20705, r20703, r20704, MPFR_RNDN);
        mpfr_abs(r20706, r20705, MPFR_RNDN);
        ;
        mpfr_div(r20708, r20706, r20707, MPFR_RNDN);
        return mpfr_get_d(r20708, MPFR_RNDN);
}

static mpfr_t r20709, r20710, r20711, r20712, r20713, r20714;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r20709);
        mpfr_init(r20710);
        mpfr_init(r20711);
        mpfr_init(r20712);
        mpfr_init_set_str(r20713, "2", 10, MPFR_RNDN);
        mpfr_init(r20714);
}

double f_fm(double a, double b) {
        mpfr_set_d(r20709, a, MPFR_RNDN);
        mpfr_set_d(r20710, b, MPFR_RNDN);
        mpfr_sub(r20711, r20709, r20710, MPFR_RNDN);
        mpfr_abs(r20712, r20711, MPFR_RNDN);
        ;
        mpfr_div(r20714, r20712, r20713, MPFR_RNDN);
        return mpfr_get_d(r20714, MPFR_RNDN);
}

static mpfr_t r20715, r20716, r20717, r20718, r20719, r20720;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r20715);
        mpfr_init(r20716);
        mpfr_init(r20717);
        mpfr_init(r20718);
        mpfr_init_set_str(r20719, "2", 10, MPFR_RNDN);
        mpfr_init(r20720);
}

double f_dm(double a, double b) {
        mpfr_set_d(r20715, a, MPFR_RNDN);
        mpfr_set_d(r20716, b, MPFR_RNDN);
        mpfr_sub(r20717, r20715, r20716, MPFR_RNDN);
        mpfr_abs(r20718, r20717, MPFR_RNDN);
        ;
        mpfr_div(r20720, r20718, r20719, MPFR_RNDN);
        return mpfr_get_d(r20720, MPFR_RNDN);
}

