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

char *name = "Graphics.Rasterific.Svg.PathConverter:segmentToBezier from rasterific-svg-0.2.3.1, A";

double f_if(float x) {
        float r50715 = 8.0;
        float r50716 = 3.0;
        float r50717 = r50715 / r50716;
        float r50718 = x;
        float r50719 = 0.5;
        float r50720 = r50718 * r50719;
        float r50721 = sin(r50720);
        float r50722 = r50717 * r50721;
        float r50723 = r50722 * r50721;
        float r50724 = sin(r50718);
        float r50725 = r50723 / r50724;
        return r50725;
}

double f_id(double x) {
        double r50726 = 8.0;
        double r50727 = 3.0;
        double r50728 = r50726 / r50727;
        double r50729 = x;
        double r50730 = 0.5;
        double r50731 = r50729 * r50730;
        double r50732 = sin(r50731);
        double r50733 = r50728 * r50732;
        double r50734 = r50733 * r50732;
        double r50735 = sin(r50729);
        double r50736 = r50734 / r50735;
        return r50736;
}


double f_of(float x) {
        float r50737 = x;
        float r50738 = 0.5;
        float r50739 = r50737 * r50738;
        float r50740 = sin(r50739);
        float r50741 = 3.0;
        float r50742 = 8.0;
        float r50743 = r50741 / r50742;
        float r50744 = r50740 / r50743;
        float r50745 = sin(r50737);
        float r50746 = r50740 / r50745;
        float r50747 = r50744 * r50746;
        return r50747;
}

double f_od(double x) {
        double r50748 = x;
        double r50749 = 0.5;
        double r50750 = r50748 * r50749;
        double r50751 = sin(r50750);
        double r50752 = 3.0;
        double r50753 = 8.0;
        double r50754 = r50752 / r50753;
        double r50755 = r50751 / r50754;
        double r50756 = sin(r50748);
        double r50757 = r50751 / r50756;
        double r50758 = r50755 * r50757;
        return r50758;
}

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 r50759, r50760, r50761, r50762, r50763, r50764, r50765, r50766, r50767, r50768, r50769;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r50759, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r50760, "3.0", 10, MPFR_RNDN);
        mpfr_init(r50761);
        mpfr_init(r50762);
        mpfr_init_set_str(r50763, "0.5", 10, MPFR_RNDN);
        mpfr_init(r50764);
        mpfr_init(r50765);
        mpfr_init(r50766);
        mpfr_init(r50767);
        mpfr_init(r50768);
        mpfr_init(r50769);
}

double f_im(double x) {
        ;
        ;
        mpfr_div(r50761, r50759, r50760, MPFR_RNDN);
        mpfr_set_d(r50762, x, MPFR_RNDN);
        ;
        mpfr_mul(r50764, r50762, r50763, MPFR_RNDN);
        mpfr_sin(r50765, r50764, MPFR_RNDN);
        mpfr_mul(r50766, r50761, r50765, MPFR_RNDN);
        mpfr_mul(r50767, r50766, r50765, MPFR_RNDN);
        mpfr_sin(r50768, r50762, MPFR_RNDN);
        mpfr_div(r50769, r50767, r50768, MPFR_RNDN);
        return mpfr_get_d(r50769, MPFR_RNDN);
}

static mpfr_t r50770, r50771, r50772, r50773, r50774, r50775, r50776, r50777, r50778, r50779, r50780;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r50770);
        mpfr_init_set_str(r50771, "0.5", 10, MPFR_RNDN);
        mpfr_init(r50772);
        mpfr_init(r50773);
        mpfr_init_set_str(r50774, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r50775, "8.0", 10, MPFR_RNDN);
        mpfr_init(r50776);
        mpfr_init(r50777);
        mpfr_init(r50778);
        mpfr_init(r50779);
        mpfr_init(r50780);
}

double f_fm(double x) {
        mpfr_set_d(r50770, x, MPFR_RNDN);
        ;
        mpfr_mul(r50772, r50770, r50771, MPFR_RNDN);
        mpfr_sin(r50773, r50772, MPFR_RNDN);
        ;
        ;
        mpfr_div(r50776, r50774, r50775, MPFR_RNDN);
        mpfr_div(r50777, r50773, r50776, MPFR_RNDN);
        mpfr_sin(r50778, r50770, MPFR_RNDN);
        mpfr_div(r50779, r50773, r50778, MPFR_RNDN);
        mpfr_mul(r50780, r50777, r50779, MPFR_RNDN);
        return mpfr_get_d(r50780, MPFR_RNDN);
}

static mpfr_t r50781, r50782, r50783, r50784, r50785, r50786, r50787, r50788, r50789, r50790, r50791;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r50781);
        mpfr_init_set_str(r50782, "0.5", 10, MPFR_RNDN);
        mpfr_init(r50783);
        mpfr_init(r50784);
        mpfr_init_set_str(r50785, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r50786, "8.0", 10, MPFR_RNDN);
        mpfr_init(r50787);
        mpfr_init(r50788);
        mpfr_init(r50789);
        mpfr_init(r50790);
        mpfr_init(r50791);
}

double f_dm(double x) {
        mpfr_set_d(r50781, x, MPFR_RNDN);
        ;
        mpfr_mul(r50783, r50781, r50782, MPFR_RNDN);
        mpfr_sin(r50784, r50783, MPFR_RNDN);
        ;
        ;
        mpfr_div(r50787, r50785, r50786, MPFR_RNDN);
        mpfr_div(r50788, r50784, r50787, MPFR_RNDN);
        mpfr_sin(r50789, r50781, MPFR_RNDN);
        mpfr_div(r50790, r50784, r50789, MPFR_RNDN);
        mpfr_mul(r50791, r50788, r50790, MPFR_RNDN);
        return mpfr_get_d(r50791, MPFR_RNDN);
}

