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

char *name = "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3";

double f_if(float x, float y) {
        float r52072 = 1.0;
        float r52073 = x;
        float r52074 = r52072 - r52073;
        float r52075 = 3.0;
        float r52076 = r52075 - r52073;
        float r52077 = r52074 * r52076;
        float r52078 = y;
        float r52079 = r52078 * r52075;
        float r52080 = r52077 / r52079;
        return r52080;
}

double f_id(double x, double y) {
        double r52081 = 1.0;
        double r52082 = x;
        double r52083 = r52081 - r52082;
        double r52084 = 3.0;
        double r52085 = r52084 - r52082;
        double r52086 = r52083 * r52085;
        double r52087 = y;
        double r52088 = r52087 * r52084;
        double r52089 = r52086 / r52088;
        return r52089;
}


double f_of(float x, float y) {
        float r52090 = 1.0;
        float r52091 = x;
        float r52092 = r52090 - r52091;
        float r52093 = y;
        float r52094 = r52092 / r52093;
        float r52095 = 3.0;
        float r52096 = r52095 - r52091;
        float r52097 = r52096 / r52095;
        float r52098 = r52094 * r52097;
        return r52098;
}

double f_od(double x, double y) {
        double r52099 = 1.0;
        double r52100 = x;
        double r52101 = r52099 - r52100;
        double r52102 = y;
        double r52103 = r52101 / r52102;
        double r52104 = 3.0;
        double r52105 = r52104 - r52100;
        double r52106 = r52105 / r52104;
        double r52107 = r52103 * r52106;
        return r52107;
}

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 r52108, r52109, r52110, r52111, r52112, r52113, r52114, r52115, r52116;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r52108, "1.0", 10, MPFR_RNDN);
        mpfr_init(r52109);
        mpfr_init(r52110);
        mpfr_init_set_str(r52111, "3.0", 10, MPFR_RNDN);
        mpfr_init(r52112);
        mpfr_init(r52113);
        mpfr_init(r52114);
        mpfr_init(r52115);
        mpfr_init(r52116);
}

double f_im(double x, double y) {
        ;
        mpfr_set_d(r52109, x, MPFR_RNDN);
        mpfr_sub(r52110, r52108, r52109, MPFR_RNDN);
        ;
        mpfr_sub(r52112, r52111, r52109, MPFR_RNDN);
        mpfr_mul(r52113, r52110, r52112, MPFR_RNDN);
        mpfr_set_d(r52114, y, MPFR_RNDN);
        mpfr_mul(r52115, r52114, r52111, MPFR_RNDN);
        mpfr_div(r52116, r52113, r52115, MPFR_RNDN);
        return mpfr_get_d(r52116, MPFR_RNDN);
}

static mpfr_t r52117, r52118, r52119, r52120, r52121, r52122, r52123, r52124, r52125;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r52117, "1.0", 10, MPFR_RNDN);
        mpfr_init(r52118);
        mpfr_init(r52119);
        mpfr_init(r52120);
        mpfr_init(r52121);
        mpfr_init_set_str(r52122, "3.0", 10, MPFR_RNDN);
        mpfr_init(r52123);
        mpfr_init(r52124);
        mpfr_init(r52125);
}

double f_fm(double x, double y) {
        ;
        mpfr_set_d(r52118, x, MPFR_RNDN);
        mpfr_sub(r52119, r52117, r52118, MPFR_RNDN);
        mpfr_set_d(r52120, y, MPFR_RNDN);
        mpfr_div(r52121, r52119, r52120, MPFR_RNDN);
        ;
        mpfr_sub(r52123, r52122, r52118, MPFR_RNDN);
        mpfr_div(r52124, r52123, r52122, MPFR_RNDN);
        mpfr_mul(r52125, r52121, r52124, MPFR_RNDN);
        return mpfr_get_d(r52125, MPFR_RNDN);
}

static mpfr_t r52126, r52127, r52128, r52129, r52130, r52131, r52132, r52133, r52134;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r52126, "1.0", 10, MPFR_RNDN);
        mpfr_init(r52127);
        mpfr_init(r52128);
        mpfr_init(r52129);
        mpfr_init(r52130);
        mpfr_init_set_str(r52131, "3.0", 10, MPFR_RNDN);
        mpfr_init(r52132);
        mpfr_init(r52133);
        mpfr_init(r52134);
}

double f_dm(double x, double y) {
        ;
        mpfr_set_d(r52127, x, MPFR_RNDN);
        mpfr_sub(r52128, r52126, r52127, MPFR_RNDN);
        mpfr_set_d(r52129, y, MPFR_RNDN);
        mpfr_div(r52130, r52128, r52129, MPFR_RNDN);
        ;
        mpfr_sub(r52132, r52131, r52127, MPFR_RNDN);
        mpfr_div(r52133, r52132, r52131, MPFR_RNDN);
        mpfr_mul(r52134, r52130, r52133, MPFR_RNDN);
        return mpfr_get_d(r52134, MPFR_RNDN);
}

