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

char *name = "Diagrams.TwoD.Ellipse:ellipse from diagrams-lib-1.3.0.3";

double f_if(float x) {
        float r33802 = 1.0;
        float r33803 = x;
        float r33804 = r33803 * r33803;
        float r33805 = r33802 - r33804;
        float r33806 = sqrt(r33805);
        return r33806;
}

double f_id(double x) {
        double r33807 = 1.0;
        double r33808 = x;
        double r33809 = r33808 * r33808;
        double r33810 = r33807 - r33809;
        double r33811 = sqrt(r33810);
        return r33811;
}


double f_of(float x) {
        float r33812 = 1.0;
        float r33813 = x;
        float r33814 = r33813 * r33813;
        float r33815 = r33812 - r33814;
        float r33816 = sqrt(r33815);
        return r33816;
}

double f_od(double x) {
        double r33817 = 1.0;
        double r33818 = x;
        double r33819 = r33818 * r33818;
        double r33820 = r33817 - r33819;
        double r33821 = sqrt(r33820);
        return r33821;
}

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 r33822, r33823, r33824, r33825, r33826;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33822, "1.0", 10, MPFR_RNDN);
        mpfr_init(r33823);
        mpfr_init(r33824);
        mpfr_init(r33825);
        mpfr_init(r33826);
}

double f_im(double x) {
        ;
        mpfr_set_d(r33823, x, MPFR_RNDN);
        mpfr_mul(r33824, r33823, r33823, MPFR_RNDN);
        mpfr_sub(r33825, r33822, r33824, MPFR_RNDN);
        mpfr_sqrt(r33826, r33825, MPFR_RNDN);
        return mpfr_get_d(r33826, MPFR_RNDN);
}

static mpfr_t r33827, r33828, r33829, r33830, r33831;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33827, "1.0", 10, MPFR_RNDN);
        mpfr_init(r33828);
        mpfr_init(r33829);
        mpfr_init(r33830);
        mpfr_init(r33831);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r33828, x, MPFR_RNDN);
        mpfr_mul(r33829, r33828, r33828, MPFR_RNDN);
        mpfr_sub(r33830, r33827, r33829, MPFR_RNDN);
        mpfr_sqrt(r33831, r33830, MPFR_RNDN);
        return mpfr_get_d(r33831, MPFR_RNDN);
}

static mpfr_t r33832, r33833, r33834, r33835, r33836;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33832, "1.0", 10, MPFR_RNDN);
        mpfr_init(r33833);
        mpfr_init(r33834);
        mpfr_init(r33835);
        mpfr_init(r33836);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r33833, x, MPFR_RNDN);
        mpfr_mul(r33834, r33833, r33833, MPFR_RNDN);
        mpfr_sub(r33835, r33832, r33834, MPFR_RNDN);
        mpfr_sqrt(r33836, r33835, MPFR_RNDN);
        return mpfr_get_d(r33836, MPFR_RNDN);
}

